Skip to content

Commit 31d8af1

Browse files
modular-magiciankotatut
authored andcommitted
Add Managed Kafka ConnectCluster and Connector resources and tests (#13310) (GoogleCloudPlatform#3609)
[upstream:069a0fb390a0610836eff8549faa523555a1db03] Signed-off-by: Modular Magician <[email protected]>
1 parent 3d4c245 commit 31d8af1

File tree

4 files changed

+341
-3
lines changed

4 files changed

+341
-3
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ require (
1313
github.com/hashicorp/hcl/v2 v2.23.0
1414
github.com/hashicorp/terraform-json v0.24.0
1515
github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.0
16-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250313212649-a5514197399d
16+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250313224415-f032e801e810
1717
github.com/mitchellh/go-homedir v1.1.0 // indirect
1818
github.com/pkg/errors v0.9.1
1919
github.com/stretchr/testify v1.10.0

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,8 @@ github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.0 h1:7/iejAPyCRBhqAg3jOx+4UcA
173173
github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.0/go.mod h1:TiQwXAjFrgBf5tg5rvBRz8/ubPULpU0HjSaVi5UoJf8=
174174
github.com/hashicorp/terraform-plugin-testing v1.5.1 h1:T4aQh9JAhmWo4+t1A7x+rnxAJHCDIYW9kXyo4sVO92c=
175175
github.com/hashicorp/terraform-plugin-testing v1.5.1/go.mod h1:dg8clO6K59rZ8w9EshBmDp1CxTIPu3yA4iaDpX1h5u0=
176-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250313212649-a5514197399d h1:9HlaWFAiI5Y9DjBVKD0hdXLVgfxhY5i+Jh0VAbjIll8=
177-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250313212649-a5514197399d/go.mod h1:M159odRzEocUtKaG8sl4KMTBFE/dC3ChJjOuY4T/JwU=
176+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250313224415-f032e801e810 h1:R2YPShPGYxHziPjs4PleErZTAn8BhUuWmgkpCDO3qPA=
177+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250313224415-f032e801e810/go.mod h1:M159odRzEocUtKaG8sl4KMTBFE/dC3ChJjOuY4T/JwU=
178178
github.com/hashicorp/terraform-registry-address v0.2.4 h1:JXu/zHB2Ymg/TGVCRu10XqNa4Sh2bWcqCNyKWjnCPJA=
179179
github.com/hashicorp/terraform-registry-address v0.2.4/go.mod h1:tUNYTVyCtU4OIGXXMDp7WNcJ+0W1B4nmstVDgHMjfAU=
180180
github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ=
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
// ----------------------------------------------------------------------------
2+
//
3+
// *** AUTO GENERATED CODE *** Type: MMv1 ***
4+
//
5+
// ----------------------------------------------------------------------------
6+
//
7+
// This code is generated by Magic Modules using the following:
8+
//
9+
// Configuration: https://github.com/GoogleCloudPlatform/magic-modules/tree/main/mmv1/products/managedkafka/ConnectCluster.yaml
10+
// Template: https://github.com/GoogleCloudPlatform/magic-modules/tree/main/mmv1/templates/tgc/resource_converter.go.tmpl
11+
//
12+
// DO NOT EDIT this file directly. Any changes made to this file will be
13+
// overwritten during the next generation cycle.
14+
//
15+
// ----------------------------------------------------------------------------
16+
17+
package managedkafka
18+
19+
import (
20+
"reflect"
21+
22+
"github.com/GoogleCloudPlatform/terraform-google-conversion/v6/tfplan2cai/converters/google/resources/cai"
23+
"github.com/hashicorp/terraform-provider-google-beta/google-beta/tpgresource"
24+
transport_tpg "github.com/hashicorp/terraform-provider-google-beta/google-beta/transport"
25+
)
26+
27+
const ManagedKafkaConnectClusterAssetType string = "managedkafka.googleapis.com/ConnectCluster"
28+
29+
func ResourceConverterManagedKafkaConnectCluster() cai.ResourceConverter {
30+
return cai.ResourceConverter{
31+
AssetType: ManagedKafkaConnectClusterAssetType,
32+
Convert: GetManagedKafkaConnectClusterCaiObject,
33+
}
34+
}
35+
36+
func GetManagedKafkaConnectClusterCaiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) ([]cai.Asset, error) {
37+
name, err := cai.AssetName(d, config, "//managedkafka.googleapis.com/projects/{{project}}/locations/{{location}}/connectClusters/{{connect_cluster_id}}")
38+
if err != nil {
39+
return []cai.Asset{}, err
40+
}
41+
if obj, err := GetManagedKafkaConnectClusterApiObject(d, config); err == nil {
42+
return []cai.Asset{{
43+
Name: name,
44+
Type: ManagedKafkaConnectClusterAssetType,
45+
Resource: &cai.AssetResource{
46+
Version: "v1",
47+
DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/managedkafka/v1/rest",
48+
DiscoveryName: "ConnectCluster",
49+
Data: obj,
50+
},
51+
}}, nil
52+
} else {
53+
return []cai.Asset{}, err
54+
}
55+
}
56+
57+
func GetManagedKafkaConnectClusterApiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]interface{}, error) {
58+
obj := make(map[string]interface{})
59+
kafkaClusterProp, err := expandManagedKafkaConnectClusterKafkaCluster(d.Get("kafka_cluster"), d, config)
60+
if err != nil {
61+
return nil, err
62+
} else if v, ok := d.GetOkExists("kafka_cluster"); !tpgresource.IsEmptyValue(reflect.ValueOf(kafkaClusterProp)) && (ok || !reflect.DeepEqual(v, kafkaClusterProp)) {
63+
obj["kafkaCluster"] = kafkaClusterProp
64+
}
65+
capacityConfigProp, err := expandManagedKafkaConnectClusterCapacityConfig(d.Get("capacity_config"), d, config)
66+
if err != nil {
67+
return nil, err
68+
} else if v, ok := d.GetOkExists("capacity_config"); !tpgresource.IsEmptyValue(reflect.ValueOf(capacityConfigProp)) && (ok || !reflect.DeepEqual(v, capacityConfigProp)) {
69+
obj["capacityConfig"] = capacityConfigProp
70+
}
71+
gcpConfigProp, err := expandManagedKafkaConnectClusterGcpConfig(d.Get("gcp_config"), d, config)
72+
if err != nil {
73+
return nil, err
74+
} else if v, ok := d.GetOkExists("gcp_config"); !tpgresource.IsEmptyValue(reflect.ValueOf(gcpConfigProp)) && (ok || !reflect.DeepEqual(v, gcpConfigProp)) {
75+
obj["gcpConfig"] = gcpConfigProp
76+
}
77+
labelsProp, err := expandManagedKafkaConnectClusterEffectiveLabels(d.Get("effective_labels"), d, config)
78+
if err != nil {
79+
return nil, err
80+
} else if v, ok := d.GetOkExists("effective_labels"); !tpgresource.IsEmptyValue(reflect.ValueOf(labelsProp)) && (ok || !reflect.DeepEqual(v, labelsProp)) {
81+
obj["labels"] = labelsProp
82+
}
83+
84+
return obj, nil
85+
}
86+
87+
func expandManagedKafkaConnectClusterKafkaCluster(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
88+
return v, nil
89+
}
90+
91+
func expandManagedKafkaConnectClusterCapacityConfig(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
92+
l := v.([]interface{})
93+
if len(l) == 0 || l[0] == nil {
94+
return nil, nil
95+
}
96+
raw := l[0]
97+
original := raw.(map[string]interface{})
98+
transformed := make(map[string]interface{})
99+
100+
transformedVcpuCount, err := expandManagedKafkaConnectClusterCapacityConfigVcpuCount(original["vcpu_count"], d, config)
101+
if err != nil {
102+
return nil, err
103+
} else if val := reflect.ValueOf(transformedVcpuCount); val.IsValid() && !tpgresource.IsEmptyValue(val) {
104+
transformed["vcpuCount"] = transformedVcpuCount
105+
}
106+
107+
transformedMemoryBytes, err := expandManagedKafkaConnectClusterCapacityConfigMemoryBytes(original["memory_bytes"], d, config)
108+
if err != nil {
109+
return nil, err
110+
} else if val := reflect.ValueOf(transformedMemoryBytes); val.IsValid() && !tpgresource.IsEmptyValue(val) {
111+
transformed["memoryBytes"] = transformedMemoryBytes
112+
}
113+
114+
return transformed, nil
115+
}
116+
117+
func expandManagedKafkaConnectClusterCapacityConfigVcpuCount(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
118+
return v, nil
119+
}
120+
121+
func expandManagedKafkaConnectClusterCapacityConfigMemoryBytes(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
122+
return v, nil
123+
}
124+
125+
func expandManagedKafkaConnectClusterGcpConfig(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
126+
l := v.([]interface{})
127+
if len(l) == 0 || l[0] == nil {
128+
return nil, nil
129+
}
130+
raw := l[0]
131+
original := raw.(map[string]interface{})
132+
transformed := make(map[string]interface{})
133+
134+
transformedAccessConfig, err := expandManagedKafkaConnectClusterGcpConfigAccessConfig(original["access_config"], d, config)
135+
if err != nil {
136+
return nil, err
137+
} else if val := reflect.ValueOf(transformedAccessConfig); val.IsValid() && !tpgresource.IsEmptyValue(val) {
138+
transformed["accessConfig"] = transformedAccessConfig
139+
}
140+
141+
return transformed, nil
142+
}
143+
144+
func expandManagedKafkaConnectClusterGcpConfigAccessConfig(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
145+
l := v.([]interface{})
146+
if len(l) == 0 || l[0] == nil {
147+
return nil, nil
148+
}
149+
raw := l[0]
150+
original := raw.(map[string]interface{})
151+
transformed := make(map[string]interface{})
152+
153+
transformedNetworkConfigs, err := expandManagedKafkaConnectClusterGcpConfigAccessConfigNetworkConfigs(original["network_configs"], d, config)
154+
if err != nil {
155+
return nil, err
156+
} else if val := reflect.ValueOf(transformedNetworkConfigs); val.IsValid() && !tpgresource.IsEmptyValue(val) {
157+
transformed["networkConfigs"] = transformedNetworkConfigs
158+
}
159+
160+
return transformed, nil
161+
}
162+
163+
func expandManagedKafkaConnectClusterGcpConfigAccessConfigNetworkConfigs(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
164+
l := v.([]interface{})
165+
req := make([]interface{}, 0, len(l))
166+
for _, raw := range l {
167+
if raw == nil {
168+
continue
169+
}
170+
original := raw.(map[string]interface{})
171+
transformed := make(map[string]interface{})
172+
173+
transformedPrimarySubnet, err := expandManagedKafkaConnectClusterGcpConfigAccessConfigNetworkConfigsPrimarySubnet(original["primary_subnet"], d, config)
174+
if err != nil {
175+
return nil, err
176+
} else if val := reflect.ValueOf(transformedPrimarySubnet); val.IsValid() && !tpgresource.IsEmptyValue(val) {
177+
transformed["primarySubnet"] = transformedPrimarySubnet
178+
}
179+
180+
transformedAdditionalSubnets, err := expandManagedKafkaConnectClusterGcpConfigAccessConfigNetworkConfigsAdditionalSubnets(original["additional_subnets"], d, config)
181+
if err != nil {
182+
return nil, err
183+
} else if val := reflect.ValueOf(transformedAdditionalSubnets); val.IsValid() && !tpgresource.IsEmptyValue(val) {
184+
transformed["additionalSubnets"] = transformedAdditionalSubnets
185+
}
186+
187+
transformedDnsDomainNames, err := expandManagedKafkaConnectClusterGcpConfigAccessConfigNetworkConfigsDnsDomainNames(original["dns_domain_names"], d, config)
188+
if err != nil {
189+
return nil, err
190+
} else if val := reflect.ValueOf(transformedDnsDomainNames); val.IsValid() && !tpgresource.IsEmptyValue(val) {
191+
transformed["dnsDomainNames"] = transformedDnsDomainNames
192+
}
193+
194+
req = append(req, transformed)
195+
}
196+
return req, nil
197+
}
198+
199+
func expandManagedKafkaConnectClusterGcpConfigAccessConfigNetworkConfigsPrimarySubnet(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
200+
return v, nil
201+
}
202+
203+
func expandManagedKafkaConnectClusterGcpConfigAccessConfigNetworkConfigsAdditionalSubnets(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
204+
return v, nil
205+
}
206+
207+
func expandManagedKafkaConnectClusterGcpConfigAccessConfigNetworkConfigsDnsDomainNames(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
208+
return v, nil
209+
}
210+
211+
func expandManagedKafkaConnectClusterEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
212+
if v == nil {
213+
return map[string]string{}, nil
214+
}
215+
m := make(map[string]string)
216+
for k, val := range v.(map[string]interface{}) {
217+
m[k] = val.(string)
218+
}
219+
return m, nil
220+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
// ----------------------------------------------------------------------------
2+
//
3+
// *** AUTO GENERATED CODE *** Type: MMv1 ***
4+
//
5+
// ----------------------------------------------------------------------------
6+
//
7+
// This code is generated by Magic Modules using the following:
8+
//
9+
// Configuration: https://github.com/GoogleCloudPlatform/magic-modules/tree/main/mmv1/products/managedkafka/Connector.yaml
10+
// Template: https://github.com/GoogleCloudPlatform/magic-modules/tree/main/mmv1/templates/tgc/resource_converter.go.tmpl
11+
//
12+
// DO NOT EDIT this file directly. Any changes made to this file will be
13+
// overwritten during the next generation cycle.
14+
//
15+
// ----------------------------------------------------------------------------
16+
17+
package managedkafka
18+
19+
import (
20+
"reflect"
21+
22+
"github.com/GoogleCloudPlatform/terraform-google-conversion/v6/tfplan2cai/converters/google/resources/cai"
23+
"github.com/hashicorp/terraform-provider-google-beta/google-beta/tpgresource"
24+
transport_tpg "github.com/hashicorp/terraform-provider-google-beta/google-beta/transport"
25+
)
26+
27+
const ManagedKafkaConnectorAssetType string = "managedkafka.googleapis.com/Connector"
28+
29+
func ResourceConverterManagedKafkaConnector() cai.ResourceConverter {
30+
return cai.ResourceConverter{
31+
AssetType: ManagedKafkaConnectorAssetType,
32+
Convert: GetManagedKafkaConnectorCaiObject,
33+
}
34+
}
35+
36+
func GetManagedKafkaConnectorCaiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) ([]cai.Asset, error) {
37+
name, err := cai.AssetName(d, config, "//managedkafka.googleapis.com/projects/{{project}}/locations/{{location}}/connectClusters/{{connect_cluster}}/connectors/{{connector_id}}")
38+
if err != nil {
39+
return []cai.Asset{}, err
40+
}
41+
if obj, err := GetManagedKafkaConnectorApiObject(d, config); err == nil {
42+
return []cai.Asset{{
43+
Name: name,
44+
Type: ManagedKafkaConnectorAssetType,
45+
Resource: &cai.AssetResource{
46+
Version: "v1",
47+
DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/managedkafka/v1/rest",
48+
DiscoveryName: "Connector",
49+
Data: obj,
50+
},
51+
}}, nil
52+
} else {
53+
return []cai.Asset{}, err
54+
}
55+
}
56+
57+
func GetManagedKafkaConnectorApiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]interface{}, error) {
58+
obj := make(map[string]interface{})
59+
configsProp, err := expandManagedKafkaConnectorConfigs(d.Get("configs"), d, config)
60+
if err != nil {
61+
return nil, err
62+
} else if v, ok := d.GetOkExists("configs"); !tpgresource.IsEmptyValue(reflect.ValueOf(configsProp)) && (ok || !reflect.DeepEqual(v, configsProp)) {
63+
obj["configs"] = configsProp
64+
}
65+
taskRestartPolicyProp, err := expandManagedKafkaConnectorTaskRestartPolicy(d.Get("task_restart_policy"), d, config)
66+
if err != nil {
67+
return nil, err
68+
} else if v, ok := d.GetOkExists("task_restart_policy"); !tpgresource.IsEmptyValue(reflect.ValueOf(taskRestartPolicyProp)) && (ok || !reflect.DeepEqual(v, taskRestartPolicyProp)) {
69+
obj["taskRestartPolicy"] = taskRestartPolicyProp
70+
}
71+
72+
return obj, nil
73+
}
74+
75+
func expandManagedKafkaConnectorConfigs(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
76+
if v == nil {
77+
return map[string]string{}, nil
78+
}
79+
m := make(map[string]string)
80+
for k, val := range v.(map[string]interface{}) {
81+
m[k] = val.(string)
82+
}
83+
return m, nil
84+
}
85+
86+
func expandManagedKafkaConnectorTaskRestartPolicy(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
87+
l := v.([]interface{})
88+
if len(l) == 0 || l[0] == nil {
89+
return nil, nil
90+
}
91+
raw := l[0]
92+
original := raw.(map[string]interface{})
93+
transformed := make(map[string]interface{})
94+
95+
transformedMinimumBackoff, err := expandManagedKafkaConnectorTaskRestartPolicyMinimumBackoff(original["minimum_backoff"], d, config)
96+
if err != nil {
97+
return nil, err
98+
} else if val := reflect.ValueOf(transformedMinimumBackoff); val.IsValid() && !tpgresource.IsEmptyValue(val) {
99+
transformed["minimumBackoff"] = transformedMinimumBackoff
100+
}
101+
102+
transformedMaximumBackoff, err := expandManagedKafkaConnectorTaskRestartPolicyMaximumBackoff(original["maximum_backoff"], d, config)
103+
if err != nil {
104+
return nil, err
105+
} else if val := reflect.ValueOf(transformedMaximumBackoff); val.IsValid() && !tpgresource.IsEmptyValue(val) {
106+
transformed["maximumBackoff"] = transformedMaximumBackoff
107+
}
108+
109+
return transformed, nil
110+
}
111+
112+
func expandManagedKafkaConnectorTaskRestartPolicyMinimumBackoff(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
113+
return v, nil
114+
}
115+
116+
func expandManagedKafkaConnectorTaskRestartPolicyMaximumBackoff(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
117+
return v, nil
118+
}

0 commit comments

Comments
 (0)