pulumi-gcp 8.11.0a1734348982__py3-none-any.whl → 8.11.0a1734385115__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. pulumi_gcp/__init__.py +91 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +29 -0
  3. pulumi_gcp/accesscontextmanager/outputs.py +18 -0
  4. pulumi_gcp/accesscontextmanager/service_perimeter.py +36 -0
  5. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +6 -0
  6. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +6 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +6 -0
  8. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +6 -0
  9. pulumi_gcp/apigee/app_group.py +7 -7
  10. pulumi_gcp/applicationintegration/client.py +8 -6
  11. pulumi_gcp/artifactregistry/_inputs.py +24 -15
  12. pulumi_gcp/artifactregistry/outputs.py +32 -20
  13. pulumi_gcp/artifactregistry/repository.py +128 -0
  14. pulumi_gcp/assuredworkloads/workload.py +7 -7
  15. pulumi_gcp/backupdisasterrecovery/__init__.py +2 -0
  16. pulumi_gcp/backupdisasterrecovery/backup_plan.py +2 -2
  17. pulumi_gcp/backupdisasterrecovery/backup_vault.py +12 -8
  18. pulumi_gcp/backupdisasterrecovery/get_backup.py +153 -0
  19. pulumi_gcp/backupdisasterrecovery/get_backup_vault.py +415 -0
  20. pulumi_gcp/backupdisasterrecovery/outputs.py +63 -0
  21. pulumi_gcp/bigquery/app_profile.py +75 -0
  22. pulumi_gcp/billing/_inputs.py +6 -6
  23. pulumi_gcp/billing/outputs.py +4 -4
  24. pulumi_gcp/certificateauthority/_inputs.py +9 -9
  25. pulumi_gcp/certificateauthority/outputs.py +8 -8
  26. pulumi_gcp/cloudbuild/_inputs.py +53 -0
  27. pulumi_gcp/cloudbuild/outputs.py +50 -0
  28. pulumi_gcp/cloudbuild/worker_pool.py +47 -0
  29. pulumi_gcp/clouddeploy/_inputs.py +254 -0
  30. pulumi_gcp/clouddeploy/outputs.py +211 -0
  31. pulumi_gcp/clouddeploy/target.py +47 -0
  32. pulumi_gcp/cloudfunctionsv2/_inputs.py +6 -6
  33. pulumi_gcp/cloudfunctionsv2/outputs.py +8 -8
  34. pulumi_gcp/cloudrunv2/job.py +4 -4
  35. pulumi_gcp/cloudrunv2/service.py +4 -4
  36. pulumi_gcp/composer/get_user_workloads_config_map.py +4 -0
  37. pulumi_gcp/composer/get_user_workloads_secret.py +4 -0
  38. pulumi_gcp/composer/user_workloads_config_map.py +14 -0
  39. pulumi_gcp/composer/user_workloads_secret.py +6 -0
  40. pulumi_gcp/compute/_inputs.py +566 -25
  41. pulumi_gcp/compute/disk.py +21 -7
  42. pulumi_gcp/compute/firewall_policy_rule.py +12 -0
  43. pulumi_gcp/compute/get_forwarding_rules.py +2 -2
  44. pulumi_gcp/compute/get_global_forwarding_rule.py +12 -1
  45. pulumi_gcp/compute/get_instance_group_manager.py +12 -1
  46. pulumi_gcp/compute/get_network.py +35 -1
  47. pulumi_gcp/compute/get_region_instance_group_manager.py +12 -1
  48. pulumi_gcp/compute/get_region_network_endpoint_group.py +12 -1
  49. pulumi_gcp/compute/global_forwarding_rule.py +28 -0
  50. pulumi_gcp/compute/instance_group_manager.py +28 -0
  51. pulumi_gcp/compute/network.py +75 -0
  52. pulumi_gcp/compute/outputs.py +655 -26
  53. pulumi_gcp/compute/region_health_check.py +28 -0
  54. pulumi_gcp/compute/region_instance_group_manager.py +28 -0
  55. pulumi_gcp/compute/region_network_endpoint.py +28 -0
  56. pulumi_gcp/compute/region_network_endpoint_group.py +70 -2
  57. pulumi_gcp/compute/subnetwork.py +30 -2
  58. pulumi_gcp/compute/url_map.py +7 -7
  59. pulumi_gcp/config/__init__.pyi +2 -0
  60. pulumi_gcp/config/vars.py +4 -0
  61. pulumi_gcp/container/_inputs.py +201 -3
  62. pulumi_gcp/container/cluster.py +68 -14
  63. pulumi_gcp/container/get_cluster.py +12 -1
  64. pulumi_gcp/container/outputs.py +249 -3
  65. pulumi_gcp/dataproc/_inputs.py +209 -1
  66. pulumi_gcp/dataproc/batch.py +76 -0
  67. pulumi_gcp/dataproc/outputs.py +169 -3
  68. pulumi_gcp/diagflow/_inputs.py +3 -3
  69. pulumi_gcp/diagflow/outputs.py +2 -2
  70. pulumi_gcp/discoveryengine/search_engine.py +7 -7
  71. pulumi_gcp/firebaserules/release.py +76 -0
  72. pulumi_gcp/firestore/field.py +4 -4
  73. pulumi_gcp/gemini/__init__.py +15 -0
  74. pulumi_gcp/gemini/_inputs.py +183 -0
  75. pulumi_gcp/gemini/code_repository_index.py +659 -0
  76. pulumi_gcp/gemini/get_repository_group_iam_policy.py +171 -0
  77. pulumi_gcp/gemini/outputs.py +130 -0
  78. pulumi_gcp/gemini/repository_group.py +586 -0
  79. pulumi_gcp/gemini/repository_group_iam_binding.py +604 -0
  80. pulumi_gcp/gemini/repository_group_iam_member.py +604 -0
  81. pulumi_gcp/gemini/repository_group_iam_policy.py +443 -0
  82. pulumi_gcp/gkehub/_inputs.py +30 -10
  83. pulumi_gcp/gkehub/membership_binding.py +6 -6
  84. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  85. pulumi_gcp/gkehub/namespace.py +4 -4
  86. pulumi_gcp/gkehub/outputs.py +21 -7
  87. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  88. pulumi_gcp/iam/__init__.py +1 -0
  89. pulumi_gcp/iam/_inputs.py +137 -0
  90. pulumi_gcp/iam/folders_policy_binding.py +16 -0
  91. pulumi_gcp/iam/organizations_policy_binding.py +16 -0
  92. pulumi_gcp/iam/outputs.py +99 -0
  93. pulumi_gcp/iam/principal_access_boundary_policy.py +16 -0
  94. pulumi_gcp/iam/projects_policy_binding.py +917 -0
  95. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  96. pulumi_gcp/integrationconnectors/_inputs.py +15 -15
  97. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  98. pulumi_gcp/integrationconnectors/outputs.py +10 -10
  99. pulumi_gcp/monitoring/_inputs.py +13 -6
  100. pulumi_gcp/monitoring/outputs.py +10 -4
  101. pulumi_gcp/netapp/_inputs.py +3 -3
  102. pulumi_gcp/netapp/active_directory.py +7 -7
  103. pulumi_gcp/netapp/outputs.py +2 -2
  104. pulumi_gcp/netapp/volume.py +11 -11
  105. pulumi_gcp/networkconnectivity/spoke.py +10 -10
  106. pulumi_gcp/networksecurity/__init__.py +4 -0
  107. pulumi_gcp/networksecurity/_inputs.py +115 -0
  108. pulumi_gcp/networksecurity/mirroring_deployment.py +848 -0
  109. pulumi_gcp/networksecurity/mirroring_deployment_group.py +752 -0
  110. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +737 -0
  111. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +840 -0
  112. pulumi_gcp/networksecurity/outputs.py +70 -0
  113. pulumi_gcp/oracledatabase/autonomous_database.py +42 -4
  114. pulumi_gcp/oracledatabase/cloud_exadata_infrastructure.py +42 -4
  115. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +50 -8
  116. pulumi_gcp/oracledatabase/get_autonomous_database.py +12 -1
  117. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructure.py +12 -1
  118. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +12 -1
  119. pulumi_gcp/oracledatabase/outputs.py +21 -0
  120. pulumi_gcp/orgpolicy/policy.py +2 -2
  121. pulumi_gcp/parallelstore/instance.py +4 -0
  122. pulumi_gcp/provider.py +20 -0
  123. pulumi_gcp/pubsub/subscription.py +6 -6
  124. pulumi_gcp/pulumi-plugin.json +1 -1
  125. pulumi_gcp/redis/_inputs.py +435 -3
  126. pulumi_gcp/redis/cluster.py +287 -16
  127. pulumi_gcp/redis/outputs.py +304 -2
  128. pulumi_gcp/serviceaccount/get_account_id_token.py +2 -2
  129. pulumi_gcp/serviceaccount/get_account_key.py +2 -2
  130. pulumi_gcp/storage/get_bucket.py +2 -2
  131. pulumi_gcp/storage/get_bucket_object_content.py +2 -2
  132. pulumi_gcp/tpu/__init__.py +1 -0
  133. pulumi_gcp/tpu/_inputs.py +188 -6
  134. pulumi_gcp/tpu/outputs.py +164 -4
  135. pulumi_gcp/tpu/v2_queued_resource.py +434 -0
  136. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  137. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  138. pulumi_gcp/vertex/ai_index_endpoint.py +2 -2
  139. {pulumi_gcp-8.11.0a1734348982.dist-info → pulumi_gcp-8.11.0a1734385115.dist-info}/METADATA +1 -1
  140. {pulumi_gcp-8.11.0a1734348982.dist-info → pulumi_gcp-8.11.0a1734385115.dist-info}/RECORD +142 -125
  141. {pulumi_gcp-8.11.0a1734348982.dist-info → pulumi_gcp-8.11.0a1734385115.dist-info}/WHEEL +0 -0
  142. {pulumi_gcp-8.11.0a1734348982.dist-info → pulumi_gcp-8.11.0a1734385115.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,443 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+
17
+ __all__ = ['RepositoryGroupIamPolicyArgs', 'RepositoryGroupIamPolicy']
18
+
19
+ @pulumi.input_type
20
+ class RepositoryGroupIamPolicyArgs:
21
+ def __init__(__self__, *,
22
+ code_repository_index: pulumi.Input[str],
23
+ policy_data: pulumi.Input[str],
24
+ repository_group_id: pulumi.Input[str],
25
+ location: Optional[pulumi.Input[str]] = None,
26
+ project: Optional[pulumi.Input[str]] = None):
27
+ """
28
+ The set of arguments for constructing a RepositoryGroupIamPolicy resource.
29
+ :param pulumi.Input[str] policy_data: The policy data generated by
30
+ a `organizations_get_iam_policy` data source.
31
+ :param pulumi.Input[str] location: The location of the Code Repository Index, for example `us-central1`. Used to find the parent resource to bind the IAM policy to. If not specified,
32
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
33
+ location is specified, it is taken from the provider configuration.
34
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
35
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
36
+ """
37
+ pulumi.set(__self__, "code_repository_index", code_repository_index)
38
+ pulumi.set(__self__, "policy_data", policy_data)
39
+ pulumi.set(__self__, "repository_group_id", repository_group_id)
40
+ if location is not None:
41
+ pulumi.set(__self__, "location", location)
42
+ if project is not None:
43
+ pulumi.set(__self__, "project", project)
44
+
45
+ @property
46
+ @pulumi.getter(name="codeRepositoryIndex")
47
+ def code_repository_index(self) -> pulumi.Input[str]:
48
+ return pulumi.get(self, "code_repository_index")
49
+
50
+ @code_repository_index.setter
51
+ def code_repository_index(self, value: pulumi.Input[str]):
52
+ pulumi.set(self, "code_repository_index", value)
53
+
54
+ @property
55
+ @pulumi.getter(name="policyData")
56
+ def policy_data(self) -> pulumi.Input[str]:
57
+ """
58
+ The policy data generated by
59
+ a `organizations_get_iam_policy` data source.
60
+ """
61
+ return pulumi.get(self, "policy_data")
62
+
63
+ @policy_data.setter
64
+ def policy_data(self, value: pulumi.Input[str]):
65
+ pulumi.set(self, "policy_data", value)
66
+
67
+ @property
68
+ @pulumi.getter(name="repositoryGroupId")
69
+ def repository_group_id(self) -> pulumi.Input[str]:
70
+ return pulumi.get(self, "repository_group_id")
71
+
72
+ @repository_group_id.setter
73
+ def repository_group_id(self, value: pulumi.Input[str]):
74
+ pulumi.set(self, "repository_group_id", value)
75
+
76
+ @property
77
+ @pulumi.getter
78
+ def location(self) -> Optional[pulumi.Input[str]]:
79
+ """
80
+ The location of the Code Repository Index, for example `us-central1`. Used to find the parent resource to bind the IAM policy to. If not specified,
81
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
82
+ location is specified, it is taken from the provider configuration.
83
+ """
84
+ return pulumi.get(self, "location")
85
+
86
+ @location.setter
87
+ def location(self, value: Optional[pulumi.Input[str]]):
88
+ pulumi.set(self, "location", value)
89
+
90
+ @property
91
+ @pulumi.getter
92
+ def project(self) -> Optional[pulumi.Input[str]]:
93
+ """
94
+ The ID of the project in which the resource belongs.
95
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
96
+ """
97
+ return pulumi.get(self, "project")
98
+
99
+ @project.setter
100
+ def project(self, value: Optional[pulumi.Input[str]]):
101
+ pulumi.set(self, "project", value)
102
+
103
+
104
+ @pulumi.input_type
105
+ class _RepositoryGroupIamPolicyState:
106
+ def __init__(__self__, *,
107
+ code_repository_index: Optional[pulumi.Input[str]] = None,
108
+ etag: Optional[pulumi.Input[str]] = None,
109
+ location: Optional[pulumi.Input[str]] = None,
110
+ policy_data: Optional[pulumi.Input[str]] = None,
111
+ project: Optional[pulumi.Input[str]] = None,
112
+ repository_group_id: Optional[pulumi.Input[str]] = None):
113
+ """
114
+ Input properties used for looking up and filtering RepositoryGroupIamPolicy resources.
115
+ :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy.
116
+ :param pulumi.Input[str] location: The location of the Code Repository Index, for example `us-central1`. Used to find the parent resource to bind the IAM policy to. If not specified,
117
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
118
+ location is specified, it is taken from the provider configuration.
119
+ :param pulumi.Input[str] policy_data: The policy data generated by
120
+ a `organizations_get_iam_policy` data source.
121
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
122
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
123
+ """
124
+ if code_repository_index is not None:
125
+ pulumi.set(__self__, "code_repository_index", code_repository_index)
126
+ if etag is not None:
127
+ pulumi.set(__self__, "etag", etag)
128
+ if location is not None:
129
+ pulumi.set(__self__, "location", location)
130
+ if policy_data is not None:
131
+ pulumi.set(__self__, "policy_data", policy_data)
132
+ if project is not None:
133
+ pulumi.set(__self__, "project", project)
134
+ if repository_group_id is not None:
135
+ pulumi.set(__self__, "repository_group_id", repository_group_id)
136
+
137
+ @property
138
+ @pulumi.getter(name="codeRepositoryIndex")
139
+ def code_repository_index(self) -> Optional[pulumi.Input[str]]:
140
+ return pulumi.get(self, "code_repository_index")
141
+
142
+ @code_repository_index.setter
143
+ def code_repository_index(self, value: Optional[pulumi.Input[str]]):
144
+ pulumi.set(self, "code_repository_index", value)
145
+
146
+ @property
147
+ @pulumi.getter
148
+ def etag(self) -> Optional[pulumi.Input[str]]:
149
+ """
150
+ (Computed) The etag of the IAM policy.
151
+ """
152
+ return pulumi.get(self, "etag")
153
+
154
+ @etag.setter
155
+ def etag(self, value: Optional[pulumi.Input[str]]):
156
+ pulumi.set(self, "etag", value)
157
+
158
+ @property
159
+ @pulumi.getter
160
+ def location(self) -> Optional[pulumi.Input[str]]:
161
+ """
162
+ The location of the Code Repository Index, for example `us-central1`. Used to find the parent resource to bind the IAM policy to. If not specified,
163
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
164
+ location is specified, it is taken from the provider configuration.
165
+ """
166
+ return pulumi.get(self, "location")
167
+
168
+ @location.setter
169
+ def location(self, value: Optional[pulumi.Input[str]]):
170
+ pulumi.set(self, "location", value)
171
+
172
+ @property
173
+ @pulumi.getter(name="policyData")
174
+ def policy_data(self) -> Optional[pulumi.Input[str]]:
175
+ """
176
+ The policy data generated by
177
+ a `organizations_get_iam_policy` data source.
178
+ """
179
+ return pulumi.get(self, "policy_data")
180
+
181
+ @policy_data.setter
182
+ def policy_data(self, value: Optional[pulumi.Input[str]]):
183
+ pulumi.set(self, "policy_data", value)
184
+
185
+ @property
186
+ @pulumi.getter
187
+ def project(self) -> Optional[pulumi.Input[str]]:
188
+ """
189
+ The ID of the project in which the resource belongs.
190
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
191
+ """
192
+ return pulumi.get(self, "project")
193
+
194
+ @project.setter
195
+ def project(self, value: Optional[pulumi.Input[str]]):
196
+ pulumi.set(self, "project", value)
197
+
198
+ @property
199
+ @pulumi.getter(name="repositoryGroupId")
200
+ def repository_group_id(self) -> Optional[pulumi.Input[str]]:
201
+ return pulumi.get(self, "repository_group_id")
202
+
203
+ @repository_group_id.setter
204
+ def repository_group_id(self, value: Optional[pulumi.Input[str]]):
205
+ pulumi.set(self, "repository_group_id", value)
206
+
207
+
208
+ class RepositoryGroupIamPolicy(pulumi.CustomResource):
209
+ @overload
210
+ def __init__(__self__,
211
+ resource_name: str,
212
+ opts: Optional[pulumi.ResourceOptions] = None,
213
+ code_repository_index: Optional[pulumi.Input[str]] = None,
214
+ location: Optional[pulumi.Input[str]] = None,
215
+ policy_data: Optional[pulumi.Input[str]] = None,
216
+ project: Optional[pulumi.Input[str]] = None,
217
+ repository_group_id: Optional[pulumi.Input[str]] = None,
218
+ __props__=None):
219
+ """
220
+ ## Import
221
+
222
+ For all import syntaxes, the "resource in question" can take any of the following forms:
223
+
224
+ * projects/{{project}}/locations/{{location}}/codeRepositoryIndexes/{{code_repository_index}}/repositoryGroups/{{repository_group_id}}
225
+
226
+ * {{project}}/{{location}}/{{code_repository_index}}/{{repository_group_id}}
227
+
228
+ * {{location}}/{{code_repository_index}}/{{repository_group_id}}
229
+
230
+ * {{repository_group_id}}
231
+
232
+ Any variables not passed in the import command will be taken from the provider configuration.
233
+
234
+ Gemini for Google Cloud repositorygroup IAM resources can be imported using the resource identifiers, role, and member.
235
+
236
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
237
+
238
+ ```sh
239
+ $ pulumi import gcp:gemini/repositoryGroupIamPolicy:RepositoryGroupIamPolicy editor "projects/{{project}}/locations/{{location}}/codeRepositoryIndexes/{{code_repository_index}}/repositoryGroups/{{repository_group_id}} roles/cloudaicompanion.repositoryGroupsUser user:jane@example.com"
240
+ ```
241
+
242
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
243
+
244
+ ```sh
245
+ $ pulumi import gcp:gemini/repositoryGroupIamPolicy:RepositoryGroupIamPolicy editor "projects/{{project}}/locations/{{location}}/codeRepositoryIndexes/{{code_repository_index}}/repositoryGroups/{{repository_group_id}} roles/cloudaicompanion.repositoryGroupsUser"
246
+ ```
247
+
248
+ IAM policy imports use the identifier of the resource in question, e.g.
249
+
250
+ ```sh
251
+ $ pulumi import gcp:gemini/repositoryGroupIamPolicy:RepositoryGroupIamPolicy editor projects/{{project}}/locations/{{location}}/codeRepositoryIndexes/{{code_repository_index}}/repositoryGroups/{{repository_group_id}}
252
+ ```
253
+
254
+ -> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the
255
+
256
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
257
+
258
+ :param str resource_name: The name of the resource.
259
+ :param pulumi.ResourceOptions opts: Options for the resource.
260
+ :param pulumi.Input[str] location: The location of the Code Repository Index, for example `us-central1`. Used to find the parent resource to bind the IAM policy to. If not specified,
261
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
262
+ location is specified, it is taken from the provider configuration.
263
+ :param pulumi.Input[str] policy_data: The policy data generated by
264
+ a `organizations_get_iam_policy` data source.
265
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
266
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
267
+ """
268
+ ...
269
+ @overload
270
+ def __init__(__self__,
271
+ resource_name: str,
272
+ args: RepositoryGroupIamPolicyArgs,
273
+ opts: Optional[pulumi.ResourceOptions] = None):
274
+ """
275
+ ## Import
276
+
277
+ For all import syntaxes, the "resource in question" can take any of the following forms:
278
+
279
+ * projects/{{project}}/locations/{{location}}/codeRepositoryIndexes/{{code_repository_index}}/repositoryGroups/{{repository_group_id}}
280
+
281
+ * {{project}}/{{location}}/{{code_repository_index}}/{{repository_group_id}}
282
+
283
+ * {{location}}/{{code_repository_index}}/{{repository_group_id}}
284
+
285
+ * {{repository_group_id}}
286
+
287
+ Any variables not passed in the import command will be taken from the provider configuration.
288
+
289
+ Gemini for Google Cloud repositorygroup IAM resources can be imported using the resource identifiers, role, and member.
290
+
291
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
292
+
293
+ ```sh
294
+ $ pulumi import gcp:gemini/repositoryGroupIamPolicy:RepositoryGroupIamPolicy editor "projects/{{project}}/locations/{{location}}/codeRepositoryIndexes/{{code_repository_index}}/repositoryGroups/{{repository_group_id}} roles/cloudaicompanion.repositoryGroupsUser user:jane@example.com"
295
+ ```
296
+
297
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
298
+
299
+ ```sh
300
+ $ pulumi import gcp:gemini/repositoryGroupIamPolicy:RepositoryGroupIamPolicy editor "projects/{{project}}/locations/{{location}}/codeRepositoryIndexes/{{code_repository_index}}/repositoryGroups/{{repository_group_id}} roles/cloudaicompanion.repositoryGroupsUser"
301
+ ```
302
+
303
+ IAM policy imports use the identifier of the resource in question, e.g.
304
+
305
+ ```sh
306
+ $ pulumi import gcp:gemini/repositoryGroupIamPolicy:RepositoryGroupIamPolicy editor projects/{{project}}/locations/{{location}}/codeRepositoryIndexes/{{code_repository_index}}/repositoryGroups/{{repository_group_id}}
307
+ ```
308
+
309
+ -> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the
310
+
311
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
312
+
313
+ :param str resource_name: The name of the resource.
314
+ :param RepositoryGroupIamPolicyArgs args: The arguments to use to populate this resource's properties.
315
+ :param pulumi.ResourceOptions opts: Options for the resource.
316
+ """
317
+ ...
318
+ def __init__(__self__, resource_name: str, *args, **kwargs):
319
+ resource_args, opts = _utilities.get_resource_args_opts(RepositoryGroupIamPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
320
+ if resource_args is not None:
321
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
322
+ else:
323
+ __self__._internal_init(resource_name, *args, **kwargs)
324
+
325
+ def _internal_init(__self__,
326
+ resource_name: str,
327
+ opts: Optional[pulumi.ResourceOptions] = None,
328
+ code_repository_index: Optional[pulumi.Input[str]] = None,
329
+ location: Optional[pulumi.Input[str]] = None,
330
+ policy_data: Optional[pulumi.Input[str]] = None,
331
+ project: Optional[pulumi.Input[str]] = None,
332
+ repository_group_id: Optional[pulumi.Input[str]] = None,
333
+ __props__=None):
334
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
335
+ if not isinstance(opts, pulumi.ResourceOptions):
336
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
337
+ if opts.id is None:
338
+ if __props__ is not None:
339
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
340
+ __props__ = RepositoryGroupIamPolicyArgs.__new__(RepositoryGroupIamPolicyArgs)
341
+
342
+ if code_repository_index is None and not opts.urn:
343
+ raise TypeError("Missing required property 'code_repository_index'")
344
+ __props__.__dict__["code_repository_index"] = code_repository_index
345
+ __props__.__dict__["location"] = location
346
+ if policy_data is None and not opts.urn:
347
+ raise TypeError("Missing required property 'policy_data'")
348
+ __props__.__dict__["policy_data"] = policy_data
349
+ __props__.__dict__["project"] = project
350
+ if repository_group_id is None and not opts.urn:
351
+ raise TypeError("Missing required property 'repository_group_id'")
352
+ __props__.__dict__["repository_group_id"] = repository_group_id
353
+ __props__.__dict__["etag"] = None
354
+ super(RepositoryGroupIamPolicy, __self__).__init__(
355
+ 'gcp:gemini/repositoryGroupIamPolicy:RepositoryGroupIamPolicy',
356
+ resource_name,
357
+ __props__,
358
+ opts)
359
+
360
+ @staticmethod
361
+ def get(resource_name: str,
362
+ id: pulumi.Input[str],
363
+ opts: Optional[pulumi.ResourceOptions] = None,
364
+ code_repository_index: Optional[pulumi.Input[str]] = None,
365
+ etag: Optional[pulumi.Input[str]] = None,
366
+ location: Optional[pulumi.Input[str]] = None,
367
+ policy_data: Optional[pulumi.Input[str]] = None,
368
+ project: Optional[pulumi.Input[str]] = None,
369
+ repository_group_id: Optional[pulumi.Input[str]] = None) -> 'RepositoryGroupIamPolicy':
370
+ """
371
+ Get an existing RepositoryGroupIamPolicy resource's state with the given name, id, and optional extra
372
+ properties used to qualify the lookup.
373
+
374
+ :param str resource_name: The unique name of the resulting resource.
375
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
376
+ :param pulumi.ResourceOptions opts: Options for the resource.
377
+ :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy.
378
+ :param pulumi.Input[str] location: The location of the Code Repository Index, for example `us-central1`. Used to find the parent resource to bind the IAM policy to. If not specified,
379
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
380
+ location is specified, it is taken from the provider configuration.
381
+ :param pulumi.Input[str] policy_data: The policy data generated by
382
+ a `organizations_get_iam_policy` data source.
383
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
384
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
385
+ """
386
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
387
+
388
+ __props__ = _RepositoryGroupIamPolicyState.__new__(_RepositoryGroupIamPolicyState)
389
+
390
+ __props__.__dict__["code_repository_index"] = code_repository_index
391
+ __props__.__dict__["etag"] = etag
392
+ __props__.__dict__["location"] = location
393
+ __props__.__dict__["policy_data"] = policy_data
394
+ __props__.__dict__["project"] = project
395
+ __props__.__dict__["repository_group_id"] = repository_group_id
396
+ return RepositoryGroupIamPolicy(resource_name, opts=opts, __props__=__props__)
397
+
398
+ @property
399
+ @pulumi.getter(name="codeRepositoryIndex")
400
+ def code_repository_index(self) -> pulumi.Output[str]:
401
+ return pulumi.get(self, "code_repository_index")
402
+
403
+ @property
404
+ @pulumi.getter
405
+ def etag(self) -> pulumi.Output[str]:
406
+ """
407
+ (Computed) The etag of the IAM policy.
408
+ """
409
+ return pulumi.get(self, "etag")
410
+
411
+ @property
412
+ @pulumi.getter
413
+ def location(self) -> pulumi.Output[str]:
414
+ """
415
+ The location of the Code Repository Index, for example `us-central1`. Used to find the parent resource to bind the IAM policy to. If not specified,
416
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
417
+ location is specified, it is taken from the provider configuration.
418
+ """
419
+ return pulumi.get(self, "location")
420
+
421
+ @property
422
+ @pulumi.getter(name="policyData")
423
+ def policy_data(self) -> pulumi.Output[str]:
424
+ """
425
+ The policy data generated by
426
+ a `organizations_get_iam_policy` data source.
427
+ """
428
+ return pulumi.get(self, "policy_data")
429
+
430
+ @property
431
+ @pulumi.getter
432
+ def project(self) -> pulumi.Output[str]:
433
+ """
434
+ The ID of the project in which the resource belongs.
435
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
436
+ """
437
+ return pulumi.get(self, "project")
438
+
439
+ @property
440
+ @pulumi.getter(name="repositoryGroupId")
441
+ def repository_group_id(self) -> pulumi.Output[str]:
442
+ return pulumi.get(self, "repository_group_id")
443
+
@@ -1589,7 +1589,7 @@ if not MYPY:
1589
1589
  installation: NotRequired[pulumi.Input[str]]
1590
1590
  """
1591
1591
  Configures the manner in which the template library is installed on the cluster.
1592
- Possible values are: `INSTALATION_UNSPECIFIED`, `NOT_INSTALLED`, `ALL`.
1592
+ Possible values are: `INSTALLATION_UNSPECIFIED`, `NOT_INSTALLED`, `ALL`.
1593
1593
  """
1594
1594
  elif False:
1595
1595
  FeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryArgsDict: TypeAlias = Mapping[str, Any]
@@ -1600,7 +1600,7 @@ class FeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPo
1600
1600
  installation: Optional[pulumi.Input[str]] = None):
1601
1601
  """
1602
1602
  :param pulumi.Input[str] installation: Configures the manner in which the template library is installed on the cluster.
1603
- Possible values are: `INSTALATION_UNSPECIFIED`, `NOT_INSTALLED`, `ALL`.
1603
+ Possible values are: `INSTALLATION_UNSPECIFIED`, `NOT_INSTALLED`, `ALL`.
1604
1604
  """
1605
1605
  if installation is not None:
1606
1606
  pulumi.set(__self__, "installation", installation)
@@ -1610,7 +1610,7 @@ class FeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPo
1610
1610
  def installation(self) -> Optional[pulumi.Input[str]]:
1611
1611
  """
1612
1612
  Configures the manner in which the template library is installed on the cluster.
1613
- Possible values are: `INSTALATION_UNSPECIFIED`, `NOT_INSTALLED`, `ALL`.
1613
+ Possible values are: `INSTALLATION_UNSPECIFIED`, `NOT_INSTALLED`, `ALL`.
1614
1614
  """
1615
1615
  return pulumi.get(self, "installation")
1616
1616
 
@@ -1913,7 +1913,7 @@ if not MYPY:
1913
1913
  """
1914
1914
  metrics_gcp_service_account_email: NotRequired[pulumi.Input[str]]
1915
1915
  """
1916
- The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
1916
+ Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
1917
1917
  """
1918
1918
  oci: NotRequired[pulumi.Input['FeatureMembershipConfigmanagementConfigSyncOciArgsDict']]
1919
1919
  """
@@ -1923,12 +1923,16 @@ if not MYPY:
1923
1923
  """
1924
1924
  prevent_drift: NotRequired[pulumi.Input[bool]]
1925
1925
  """
1926
- Supported from Config Sync versions 1.10.0 onwards. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to "false", disables the Config Sync admission webhook and does not prevent drifts.
1926
+ Supported from Config Sync versions 1.10.0 onwards. Set to `true` to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
1927
1927
  """
1928
1928
  source_format: NotRequired[pulumi.Input[str]]
1929
1929
  """
1930
1930
  Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode.
1931
1931
  """
1932
+ stop_syncing: NotRequired[pulumi.Input[bool]]
1933
+ """
1934
+ Set to `true` to stop syncing configurations for a single cluster. This field is only available on clusters using Config Sync [auto-upgrades](http://cloud/kubernetes-engine/enterprise/config-sync/docs/how-to/upgrade-config-sync#auto-upgrade-config) or on Config Sync version 1.20.0 or later. Defaults: `false`.
1935
+ """
1932
1936
  elif False:
1933
1937
  FeatureMembershipConfigmanagementConfigSyncArgsDict: TypeAlias = Mapping[str, Any]
1934
1938
 
@@ -1940,16 +1944,18 @@ class FeatureMembershipConfigmanagementConfigSyncArgs:
1940
1944
  metrics_gcp_service_account_email: Optional[pulumi.Input[str]] = None,
1941
1945
  oci: Optional[pulumi.Input['FeatureMembershipConfigmanagementConfigSyncOciArgs']] = None,
1942
1946
  prevent_drift: Optional[pulumi.Input[bool]] = None,
1943
- source_format: Optional[pulumi.Input[str]] = None):
1947
+ source_format: Optional[pulumi.Input[str]] = None,
1948
+ stop_syncing: Optional[pulumi.Input[bool]] = None):
1944
1949
  """
1945
1950
  :param pulumi.Input[bool] enabled: Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
1946
1951
  :param pulumi.Input['FeatureMembershipConfigmanagementConfigSyncGitArgs'] git: (Optional) Structure is documented below.
1947
- :param pulumi.Input[str] metrics_gcp_service_account_email: The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
1952
+ :param pulumi.Input[str] metrics_gcp_service_account_email: Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
1948
1953
  :param pulumi.Input['FeatureMembershipConfigmanagementConfigSyncOciArgs'] oci: (Optional) Supported from Config Sync versions 1.12.0 onwards. Structure is documented below.
1949
1954
 
1950
1955
  Use either `git` or `oci` config option.
1951
- :param pulumi.Input[bool] prevent_drift: Supported from Config Sync versions 1.10.0 onwards. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to "false", disables the Config Sync admission webhook and does not prevent drifts.
1956
+ :param pulumi.Input[bool] prevent_drift: Supported from Config Sync versions 1.10.0 onwards. Set to `true` to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
1952
1957
  :param pulumi.Input[str] source_format: Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode.
1958
+ :param pulumi.Input[bool] stop_syncing: Set to `true` to stop syncing configurations for a single cluster. This field is only available on clusters using Config Sync [auto-upgrades](http://cloud/kubernetes-engine/enterprise/config-sync/docs/how-to/upgrade-config-sync#auto-upgrade-config) or on Config Sync version 1.20.0 or later. Defaults: `false`.
1953
1959
  """
1954
1960
  if enabled is not None:
1955
1961
  pulumi.set(__self__, "enabled", enabled)
@@ -1963,6 +1969,8 @@ class FeatureMembershipConfigmanagementConfigSyncArgs:
1963
1969
  pulumi.set(__self__, "prevent_drift", prevent_drift)
1964
1970
  if source_format is not None:
1965
1971
  pulumi.set(__self__, "source_format", source_format)
1972
+ if stop_syncing is not None:
1973
+ pulumi.set(__self__, "stop_syncing", stop_syncing)
1966
1974
 
1967
1975
  @property
1968
1976
  @pulumi.getter
@@ -1992,7 +2000,7 @@ class FeatureMembershipConfigmanagementConfigSyncArgs:
1992
2000
  @pulumi.getter(name="metricsGcpServiceAccountEmail")
1993
2001
  def metrics_gcp_service_account_email(self) -> Optional[pulumi.Input[str]]:
1994
2002
  """
1995
- The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
2003
+ Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
1996
2004
  """
1997
2005
  return pulumi.get(self, "metrics_gcp_service_account_email")
1998
2006
 
@@ -2018,7 +2026,7 @@ class FeatureMembershipConfigmanagementConfigSyncArgs:
2018
2026
  @pulumi.getter(name="preventDrift")
2019
2027
  def prevent_drift(self) -> Optional[pulumi.Input[bool]]:
2020
2028
  """
2021
- Supported from Config Sync versions 1.10.0 onwards. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to "false", disables the Config Sync admission webhook and does not prevent drifts.
2029
+ Supported from Config Sync versions 1.10.0 onwards. Set to `true` to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
2022
2030
  """
2023
2031
  return pulumi.get(self, "prevent_drift")
2024
2032
 
@@ -2038,6 +2046,18 @@ class FeatureMembershipConfigmanagementConfigSyncArgs:
2038
2046
  def source_format(self, value: Optional[pulumi.Input[str]]):
2039
2047
  pulumi.set(self, "source_format", value)
2040
2048
 
2049
+ @property
2050
+ @pulumi.getter(name="stopSyncing")
2051
+ def stop_syncing(self) -> Optional[pulumi.Input[bool]]:
2052
+ """
2053
+ Set to `true` to stop syncing configurations for a single cluster. This field is only available on clusters using Config Sync [auto-upgrades](http://cloud/kubernetes-engine/enterprise/config-sync/docs/how-to/upgrade-config-sync#auto-upgrade-config) or on Config Sync version 1.20.0 or later. Defaults: `false`.
2054
+ """
2055
+ return pulumi.get(self, "stop_syncing")
2056
+
2057
+ @stop_syncing.setter
2058
+ def stop_syncing(self, value: Optional[pulumi.Input[bool]]):
2059
+ pulumi.set(self, "stop_syncing", value)
2060
+
2041
2061
 
2042
2062
  if not MYPY:
2043
2063
  class FeatureMembershipConfigmanagementConfigSyncGitArgsDict(TypedDict):
@@ -423,16 +423,16 @@ class MembershipBinding(pulumi.CustomResource):
423
423
  network="default",
424
424
  subnetwork="default")
425
425
  membership = gcp.gkehub.Membership("membership",
426
- membership_id="tf-test-membership_9106",
426
+ membership_id="tf-test-membership_27169",
427
427
  endpoint={
428
428
  "gke_cluster": {
429
429
  "resource_link": primary.id.apply(lambda id: f"//container.googleapis.com/{id}"),
430
430
  },
431
431
  },
432
432
  opts = pulumi.ResourceOptions(depends_on=[primary]))
433
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_27169")
433
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_75223")
434
434
  membership_binding = gcp.gkehub.MembershipBinding("membership_binding",
435
- membership_binding_id="tf-test-membership-binding_75223",
435
+ membership_binding_id="tf-test-membership-binding_41819",
436
436
  scope=scope.name,
437
437
  membership_id=membership.membership_id,
438
438
  location="global",
@@ -519,16 +519,16 @@ class MembershipBinding(pulumi.CustomResource):
519
519
  network="default",
520
520
  subnetwork="default")
521
521
  membership = gcp.gkehub.Membership("membership",
522
- membership_id="tf-test-membership_9106",
522
+ membership_id="tf-test-membership_27169",
523
523
  endpoint={
524
524
  "gke_cluster": {
525
525
  "resource_link": primary.id.apply(lambda id: f"//container.googleapis.com/{id}"),
526
526
  },
527
527
  },
528
528
  opts = pulumi.ResourceOptions(depends_on=[primary]))
529
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_27169")
529
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_75223")
530
530
  membership_binding = gcp.gkehub.MembershipBinding("membership_binding",
531
- membership_binding_id="tf-test-membership-binding_75223",
531
+ membership_binding_id="tf-test-membership-binding_41819",
532
532
  scope=scope.name,
533
533
  membership_id=membership.membership_id,
534
534
  location="global",
@@ -356,7 +356,7 @@ class MembershipRbacRoleBinding(pulumi.CustomResource):
356
356
  network="default",
357
357
  subnetwork="default")
358
358
  membership = gcp.gkehub.Membership("membership",
359
- membership_id="tf-test-membership_41819",
359
+ membership_id="tf-test-membership_75092",
360
360
  endpoint={
361
361
  "gke_cluster": {
362
362
  "resource_link": primary.id.apply(lambda id: f"//container.googleapis.com/{id}"),
@@ -365,7 +365,7 @@ class MembershipRbacRoleBinding(pulumi.CustomResource):
365
365
  opts = pulumi.ResourceOptions(depends_on=[primary]))
366
366
  project = gcp.organizations.get_project()
367
367
  membership_rbac_role_binding = gcp.gkehub.MembershipRbacRoleBinding("membership_rbac_role_binding",
368
- membership_rbac_role_binding_id="tf-test-membership-rbac-role-binding_75092",
368
+ membership_rbac_role_binding_id="tf-test-membership-rbac-role-binding_2605",
369
369
  membership_id=membership.membership_id,
370
370
  user=f"service-{project.number}@gcp-sa-anthossupport.iam.gserviceaccount.com",
371
371
  role={
@@ -434,7 +434,7 @@ class MembershipRbacRoleBinding(pulumi.CustomResource):
434
434
  network="default",
435
435
  subnetwork="default")
436
436
  membership = gcp.gkehub.Membership("membership",
437
- membership_id="tf-test-membership_41819",
437
+ membership_id="tf-test-membership_75092",
438
438
  endpoint={
439
439
  "gke_cluster": {
440
440
  "resource_link": primary.id.apply(lambda id: f"//container.googleapis.com/{id}"),
@@ -443,7 +443,7 @@ class MembershipRbacRoleBinding(pulumi.CustomResource):
443
443
  opts = pulumi.ResourceOptions(depends_on=[primary]))
444
444
  project = gcp.organizations.get_project()
445
445
  membership_rbac_role_binding = gcp.gkehub.MembershipRbacRoleBinding("membership_rbac_role_binding",
446
- membership_rbac_role_binding_id="tf-test-membership-rbac-role-binding_75092",
446
+ membership_rbac_role_binding_id="tf-test-membership-rbac-role-binding_2605",
447
447
  membership_id=membership.membership_id,
448
448
  user=f"service-{project.number}@gcp-sa-anthossupport.iam.gserviceaccount.com",
449
449
  role={