...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package resourceoverrides
16
17 import (
18 "context"
19 "fmt"
20
21 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/resourceoverrides/operations"
22 )
23
24 func GetIAMCustomRoleResourceOverrides() ResourceOverrides {
25 ro := ResourceOverrides{
26 Kind: "IAMCustomRole",
27 }
28 ro.Overrides = append(ro.Overrides, buildIAMCustomRole())
29 return ro
30 }
31
32 func buildIAMCustomRole() ResourceOverride {
33 h := &IAMCustomRole{}
34 o := ResourceOverride{
35 PreTerraformExport: h.PreTerraformExport,
36 }
37 return o
38 }
39
40 type IAMCustomRole struct {
41 }
42
43 func (h *IAMCustomRole) PreTerraformExport(ctx context.Context, op *operations.TerraformExport) error {
44 projectID := op.TerraformState.Attributes["project"]
45 orgID := op.TerraformState.Attributes["org_id"]
46
47 if projectID != "" && orgID != "" {
48 return fmt.Errorf("project=%q and org_id=%q were both set", projectID, orgID)
49 }
50
51 if projectID != "" {
52 op.TerraformInfo.Type = "google_project_iam_custom_role"
53 } else if orgID != "" {
54 op.TerraformInfo.Type = "google_organization_iam_custom_role"
55 } else {
56 return fmt.Errorf("unable to determine whether IAMCustomRole is org or project scoped")
57 }
58
59 return nil
60 }
61
View as plain text