pulumi-gcp 7.30.2__py3-none-any.whl → 7.31.0__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 (86) hide show
  1. pulumi_gcp/__init__.py +40 -0
  2. pulumi_gcp/applicationintegration/auth_config.py +2 -2
  3. pulumi_gcp/bigquery/reservation_assignment.py +48 -30
  4. pulumi_gcp/certificateauthority/certificate_template.py +2 -2
  5. pulumi_gcp/certificatemanager/_inputs.py +33 -0
  6. pulumi_gcp/certificatemanager/outputs.py +36 -0
  7. pulumi_gcp/certificatemanager/trust_config.py +107 -0
  8. pulumi_gcp/compute/_inputs.py +3 -6
  9. pulumi_gcp/compute/ca_external_account_key.py +2 -2
  10. pulumi_gcp/compute/get_health_check.py +11 -1
  11. pulumi_gcp/compute/global_forwarding_rule.py +2 -4
  12. pulumi_gcp/compute/health_check.py +124 -0
  13. pulumi_gcp/compute/instance.py +14 -14
  14. pulumi_gcp/compute/instance_group_membership.py +2 -2
  15. pulumi_gcp/compute/outputs.py +4 -8
  16. pulumi_gcp/compute/region_network_endpoint.py +2 -2
  17. pulumi_gcp/compute/region_network_endpoint_group.py +2 -2
  18. pulumi_gcp/compute/subnetwork.py +2 -2
  19. pulumi_gcp/config/__init__.pyi +2 -0
  20. pulumi_gcp/config/vars.py +4 -0
  21. pulumi_gcp/container/_inputs.py +3 -3
  22. pulumi_gcp/container/outputs.py +4 -4
  23. pulumi_gcp/containeranalysis/note.py +2 -2
  24. pulumi_gcp/dataloss/_inputs.py +3 -0
  25. pulumi_gcp/dataloss/outputs.py +2 -0
  26. pulumi_gcp/dataloss/prevention_job_trigger.py +90 -0
  27. pulumi_gcp/dataplex/_inputs.py +56 -0
  28. pulumi_gcp/dataplex/datascan.py +12 -0
  29. pulumi_gcp/dataplex/outputs.py +52 -0
  30. pulumi_gcp/filestore/backup.py +2 -2
  31. pulumi_gcp/filestore/instance.py +2 -2
  32. pulumi_gcp/filestore/snapshot.py +2 -2
  33. pulumi_gcp/gkehub/_inputs.py +20 -0
  34. pulumi_gcp/gkehub/outputs.py +12 -0
  35. pulumi_gcp/kms/__init__.py +2 -0
  36. pulumi_gcp/kms/crypto_key.py +7 -7
  37. pulumi_gcp/kms/get_crypto_keys.py +143 -0
  38. pulumi_gcp/kms/get_key_rings.py +119 -0
  39. pulumi_gcp/kms/outputs.py +270 -0
  40. pulumi_gcp/logging/_inputs.py +12 -12
  41. pulumi_gcp/logging/folder_bucket_config.py +6 -6
  42. pulumi_gcp/logging/organization_bucket_config.py +6 -6
  43. pulumi_gcp/logging/outputs.py +8 -8
  44. pulumi_gcp/logging/project_bucket_config.py +6 -6
  45. pulumi_gcp/looker/instance.py +2 -2
  46. pulumi_gcp/monitoring/custom_service.py +2 -2
  47. pulumi_gcp/monitoring/generic_service.py +2 -2
  48. pulumi_gcp/monitoring/notification_channel.py +2 -2
  49. pulumi_gcp/monitoring/slo.py +2 -2
  50. pulumi_gcp/netapp/storage_pool.py +132 -53
  51. pulumi_gcp/netapp/volume.py +60 -4
  52. pulumi_gcp/networksecurity/address_group.py +85 -1
  53. pulumi_gcp/networksecurity/firewall_endpoint.py +2 -2
  54. pulumi_gcp/networksecurity/firewall_endpoint_association.py +2 -2
  55. pulumi_gcp/networksecurity/security_profile_group.py +2 -2
  56. pulumi_gcp/orgpolicy/_inputs.py +40 -10
  57. pulumi_gcp/orgpolicy/outputs.py +28 -8
  58. pulumi_gcp/orgpolicy/policy.py +52 -35
  59. pulumi_gcp/provider.py +20 -0
  60. pulumi_gcp/pubsub/_inputs.py +3 -3
  61. pulumi_gcp/pubsub/outputs.py +4 -4
  62. pulumi_gcp/pulumi-plugin.json +1 -1
  63. pulumi_gcp/securesourcemanager/__init__.py +5 -0
  64. pulumi_gcp/securesourcemanager/_inputs.py +284 -0
  65. pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +177 -0
  66. pulumi_gcp/securesourcemanager/outputs.py +202 -0
  67. pulumi_gcp/securesourcemanager/repository.py +715 -0
  68. pulumi_gcp/securesourcemanager/repository_iam_binding.py +804 -0
  69. pulumi_gcp/securesourcemanager/repository_iam_member.py +804 -0
  70. pulumi_gcp/securesourcemanager/repository_iam_policy.py +643 -0
  71. pulumi_gcp/securitycenter/__init__.py +1 -0
  72. pulumi_gcp/securitycenter/_inputs.py +93 -0
  73. pulumi_gcp/securitycenter/outputs.py +59 -0
  74. pulumi_gcp/securitycenter/v2_organization_notification_config.py +576 -0
  75. pulumi_gcp/securityposture/posture_deployment.py +0 -78
  76. pulumi_gcp/servicenetworking/vpc_service_controls.py +2 -2
  77. pulumi_gcp/vertex/_inputs.py +21 -1
  78. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +222 -0
  79. pulumi_gcp/vertex/outputs.py +15 -1
  80. pulumi_gcp/workstations/_inputs.py +33 -1
  81. pulumi_gcp/workstations/outputs.py +23 -1
  82. pulumi_gcp/workstations/workstation_config.py +18 -0
  83. {pulumi_gcp-7.30.2.dist-info → pulumi_gcp-7.31.0.dist-info}/METADATA +1 -1
  84. {pulumi_gcp-7.30.2.dist-info → pulumi_gcp-7.31.0.dist-info}/RECORD +86 -78
  85. {pulumi_gcp-7.30.2.dist-info → pulumi_gcp-7.31.0.dist-info}/WHEEL +0 -0
  86. {pulumi_gcp-7.30.2.dist-info → pulumi_gcp-7.31.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,643 @@
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__ = ['RepositoryIamPolicyArgs', 'RepositoryIamPolicy']
18
+
19
+ @pulumi.input_type
20
+ class RepositoryIamPolicyArgs:
21
+ def __init__(__self__, *,
22
+ policy_data: pulumi.Input[str],
23
+ repository_id: pulumi.Input[str],
24
+ location: Optional[pulumi.Input[str]] = None,
25
+ project: Optional[pulumi.Input[str]] = None):
26
+ """
27
+ The set of arguments for constructing a RepositoryIamPolicy resource.
28
+ :param pulumi.Input[str] policy_data: The policy data generated by
29
+ a `organizations_get_iam_policy` data source.
30
+ :param pulumi.Input[str] repository_id: The ID for the Repository.
31
+ Used to find the parent resource to bind the IAM policy to
32
+ :param pulumi.Input[str] location: The location for the Repository.
33
+ Used to find the parent resource to bind the IAM policy to. If not specified,
34
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
35
+ location is specified, it is taken from the provider configuration.
36
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
37
+ 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.
38
+ """
39
+ pulumi.set(__self__, "policy_data", policy_data)
40
+ pulumi.set(__self__, "repository_id", repository_id)
41
+ if location is not None:
42
+ pulumi.set(__self__, "location", location)
43
+ if project is not None:
44
+ pulumi.set(__self__, "project", project)
45
+
46
+ @property
47
+ @pulumi.getter(name="policyData")
48
+ def policy_data(self) -> pulumi.Input[str]:
49
+ """
50
+ The policy data generated by
51
+ a `organizations_get_iam_policy` data source.
52
+ """
53
+ return pulumi.get(self, "policy_data")
54
+
55
+ @policy_data.setter
56
+ def policy_data(self, value: pulumi.Input[str]):
57
+ pulumi.set(self, "policy_data", value)
58
+
59
+ @property
60
+ @pulumi.getter(name="repositoryId")
61
+ def repository_id(self) -> pulumi.Input[str]:
62
+ """
63
+ The ID for the Repository.
64
+ Used to find the parent resource to bind the IAM policy to
65
+ """
66
+ return pulumi.get(self, "repository_id")
67
+
68
+ @repository_id.setter
69
+ def repository_id(self, value: pulumi.Input[str]):
70
+ pulumi.set(self, "repository_id", value)
71
+
72
+ @property
73
+ @pulumi.getter
74
+ def location(self) -> Optional[pulumi.Input[str]]:
75
+ """
76
+ The location for the Repository.
77
+ Used to find the parent resource to bind the IAM policy to. If not specified,
78
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
79
+ location is specified, it is taken from the provider configuration.
80
+ """
81
+ return pulumi.get(self, "location")
82
+
83
+ @location.setter
84
+ def location(self, value: Optional[pulumi.Input[str]]):
85
+ pulumi.set(self, "location", value)
86
+
87
+ @property
88
+ @pulumi.getter
89
+ def project(self) -> Optional[pulumi.Input[str]]:
90
+ """
91
+ The ID of the project in which the resource belongs.
92
+ 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.
93
+ """
94
+ return pulumi.get(self, "project")
95
+
96
+ @project.setter
97
+ def project(self, value: Optional[pulumi.Input[str]]):
98
+ pulumi.set(self, "project", value)
99
+
100
+
101
+ @pulumi.input_type
102
+ class _RepositoryIamPolicyState:
103
+ def __init__(__self__, *,
104
+ etag: Optional[pulumi.Input[str]] = None,
105
+ location: Optional[pulumi.Input[str]] = None,
106
+ policy_data: Optional[pulumi.Input[str]] = None,
107
+ project: Optional[pulumi.Input[str]] = None,
108
+ repository_id: Optional[pulumi.Input[str]] = None):
109
+ """
110
+ Input properties used for looking up and filtering RepositoryIamPolicy resources.
111
+ :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy.
112
+ :param pulumi.Input[str] location: The location for the Repository.
113
+ Used to find the parent resource to bind the IAM policy to. If not specified,
114
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
115
+ location is specified, it is taken from the provider configuration.
116
+ :param pulumi.Input[str] policy_data: The policy data generated by
117
+ a `organizations_get_iam_policy` data source.
118
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
119
+ 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.
120
+ :param pulumi.Input[str] repository_id: The ID for the Repository.
121
+ Used to find the parent resource to bind the IAM policy to
122
+ """
123
+ if etag is not None:
124
+ pulumi.set(__self__, "etag", etag)
125
+ if location is not None:
126
+ pulumi.set(__self__, "location", location)
127
+ if policy_data is not None:
128
+ pulumi.set(__self__, "policy_data", policy_data)
129
+ if project is not None:
130
+ pulumi.set(__self__, "project", project)
131
+ if repository_id is not None:
132
+ pulumi.set(__self__, "repository_id", repository_id)
133
+
134
+ @property
135
+ @pulumi.getter
136
+ def etag(self) -> Optional[pulumi.Input[str]]:
137
+ """
138
+ (Computed) The etag of the IAM policy.
139
+ """
140
+ return pulumi.get(self, "etag")
141
+
142
+ @etag.setter
143
+ def etag(self, value: Optional[pulumi.Input[str]]):
144
+ pulumi.set(self, "etag", value)
145
+
146
+ @property
147
+ @pulumi.getter
148
+ def location(self) -> Optional[pulumi.Input[str]]:
149
+ """
150
+ The location for the Repository.
151
+ Used to find the parent resource to bind the IAM policy to. If not specified,
152
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
153
+ location is specified, it is taken from the provider configuration.
154
+ """
155
+ return pulumi.get(self, "location")
156
+
157
+ @location.setter
158
+ def location(self, value: Optional[pulumi.Input[str]]):
159
+ pulumi.set(self, "location", value)
160
+
161
+ @property
162
+ @pulumi.getter(name="policyData")
163
+ def policy_data(self) -> Optional[pulumi.Input[str]]:
164
+ """
165
+ The policy data generated by
166
+ a `organizations_get_iam_policy` data source.
167
+ """
168
+ return pulumi.get(self, "policy_data")
169
+
170
+ @policy_data.setter
171
+ def policy_data(self, value: Optional[pulumi.Input[str]]):
172
+ pulumi.set(self, "policy_data", value)
173
+
174
+ @property
175
+ @pulumi.getter
176
+ def project(self) -> Optional[pulumi.Input[str]]:
177
+ """
178
+ The ID of the project in which the resource belongs.
179
+ 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.
180
+ """
181
+ return pulumi.get(self, "project")
182
+
183
+ @project.setter
184
+ def project(self, value: Optional[pulumi.Input[str]]):
185
+ pulumi.set(self, "project", value)
186
+
187
+ @property
188
+ @pulumi.getter(name="repositoryId")
189
+ def repository_id(self) -> Optional[pulumi.Input[str]]:
190
+ """
191
+ The ID for the Repository.
192
+ Used to find the parent resource to bind the IAM policy to
193
+ """
194
+ return pulumi.get(self, "repository_id")
195
+
196
+ @repository_id.setter
197
+ def repository_id(self, value: Optional[pulumi.Input[str]]):
198
+ pulumi.set(self, "repository_id", value)
199
+
200
+
201
+ class RepositoryIamPolicy(pulumi.CustomResource):
202
+ @overload
203
+ def __init__(__self__,
204
+ resource_name: str,
205
+ opts: Optional[pulumi.ResourceOptions] = None,
206
+ location: Optional[pulumi.Input[str]] = None,
207
+ policy_data: Optional[pulumi.Input[str]] = None,
208
+ project: Optional[pulumi.Input[str]] = None,
209
+ repository_id: Optional[pulumi.Input[str]] = None,
210
+ __props__=None):
211
+ """
212
+ Three different resources help you manage your IAM policy for Secure Source Manager Repository. Each of these resources serves a different use case:
213
+
214
+ * `securesourcemanager.RepositoryIamPolicy`: Authoritative. Sets the IAM policy for the repository and replaces any existing policy already attached.
215
+ * `securesourcemanager.RepositoryIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the repository are preserved.
216
+ * `securesourcemanager.RepositoryIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the repository are preserved.
217
+
218
+ A data source can be used to retrieve policy data in advent you do not need creation
219
+
220
+ * `securesourcemanager.RepositoryIamPolicy`: Retrieves the IAM policy for the repository
221
+
222
+ > **Note:** `securesourcemanager.RepositoryIamPolicy` **cannot** be used in conjunction with `securesourcemanager.RepositoryIamBinding` and `securesourcemanager.RepositoryIamMember` or they will fight over what your policy should be.
223
+
224
+ > **Note:** `securesourcemanager.RepositoryIamBinding` resources **can be** used in conjunction with `securesourcemanager.RepositoryIamMember` resources **only if** they do not grant privilege to the same role.
225
+
226
+ ## securesourcemanager.RepositoryIamPolicy
227
+
228
+ ```python
229
+ import pulumi
230
+ import pulumi_gcp as gcp
231
+
232
+ admin = gcp.organizations.get_iam_policy(bindings=[{
233
+ "role": "roles/securesourcemanager.repoAdmin",
234
+ "members": ["user:jane@example.com"],
235
+ }])
236
+ policy = gcp.securesourcemanager.RepositoryIamPolicy("policy",
237
+ project=default["project"],
238
+ location=default["location"],
239
+ repository_id=default["repositoryId"],
240
+ policy_data=admin.policy_data)
241
+ ```
242
+
243
+ ## securesourcemanager.RepositoryIamBinding
244
+
245
+ ```python
246
+ import pulumi
247
+ import pulumi_gcp as gcp
248
+
249
+ binding = gcp.securesourcemanager.RepositoryIamBinding("binding",
250
+ project=default["project"],
251
+ location=default["location"],
252
+ repository_id=default["repositoryId"],
253
+ role="roles/securesourcemanager.repoAdmin",
254
+ members=["user:jane@example.com"])
255
+ ```
256
+
257
+ ## securesourcemanager.RepositoryIamMember
258
+
259
+ ```python
260
+ import pulumi
261
+ import pulumi_gcp as gcp
262
+
263
+ member = gcp.securesourcemanager.RepositoryIamMember("member",
264
+ project=default["project"],
265
+ location=default["location"],
266
+ repository_id=default["repositoryId"],
267
+ role="roles/securesourcemanager.repoAdmin",
268
+ member="user:jane@example.com")
269
+ ```
270
+
271
+ ## securesourcemanager.RepositoryIamPolicy
272
+
273
+ ```python
274
+ import pulumi
275
+ import pulumi_gcp as gcp
276
+
277
+ admin = gcp.organizations.get_iam_policy(bindings=[{
278
+ "role": "roles/securesourcemanager.repoAdmin",
279
+ "members": ["user:jane@example.com"],
280
+ }])
281
+ policy = gcp.securesourcemanager.RepositoryIamPolicy("policy",
282
+ project=default["project"],
283
+ location=default["location"],
284
+ repository_id=default["repositoryId"],
285
+ policy_data=admin.policy_data)
286
+ ```
287
+
288
+ ## securesourcemanager.RepositoryIamBinding
289
+
290
+ ```python
291
+ import pulumi
292
+ import pulumi_gcp as gcp
293
+
294
+ binding = gcp.securesourcemanager.RepositoryIamBinding("binding",
295
+ project=default["project"],
296
+ location=default["location"],
297
+ repository_id=default["repositoryId"],
298
+ role="roles/securesourcemanager.repoAdmin",
299
+ members=["user:jane@example.com"])
300
+ ```
301
+
302
+ ## securesourcemanager.RepositoryIamMember
303
+
304
+ ```python
305
+ import pulumi
306
+ import pulumi_gcp as gcp
307
+
308
+ member = gcp.securesourcemanager.RepositoryIamMember("member",
309
+ project=default["project"],
310
+ location=default["location"],
311
+ repository_id=default["repositoryId"],
312
+ role="roles/securesourcemanager.repoAdmin",
313
+ member="user:jane@example.com")
314
+ ```
315
+
316
+ ## Import
317
+
318
+ For all import syntaxes, the "resource in question" can take any of the following forms:
319
+
320
+ * projects/{{project}}/locations/{{location}}/repositories/{{repository_id}}
321
+
322
+ * {{project}}/{{location}}/{{repository_id}}
323
+
324
+ * {{location}}/{{repository_id}}
325
+
326
+ * {{repository_id}}
327
+
328
+ Any variables not passed in the import command will be taken from the provider configuration.
329
+
330
+ Secure Source Manager repository IAM resources can be imported using the resource identifiers, role, and member.
331
+
332
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
333
+
334
+ ```sh
335
+ $ pulumi import gcp:securesourcemanager/repositoryIamPolicy:RepositoryIamPolicy editor "projects/{{project}}/locations/{{location}}/repositories/{{repository_id}} roles/securesourcemanager.repoAdmin user:jane@example.com"
336
+ ```
337
+
338
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
339
+
340
+ ```sh
341
+ $ pulumi import gcp:securesourcemanager/repositoryIamPolicy:RepositoryIamPolicy editor "projects/{{project}}/locations/{{location}}/repositories/{{repository_id}} roles/securesourcemanager.repoAdmin"
342
+ ```
343
+
344
+ IAM policy imports use the identifier of the resource in question, e.g.
345
+
346
+ ```sh
347
+ $ pulumi import gcp:securesourcemanager/repositoryIamPolicy:RepositoryIamPolicy editor projects/{{project}}/locations/{{location}}/repositories/{{repository_id}}
348
+ ```
349
+
350
+ -> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the
351
+
352
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
353
+
354
+ :param str resource_name: The name of the resource.
355
+ :param pulumi.ResourceOptions opts: Options for the resource.
356
+ :param pulumi.Input[str] location: The location for the Repository.
357
+ Used to find the parent resource to bind the IAM policy to. If not specified,
358
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
359
+ location is specified, it is taken from the provider configuration.
360
+ :param pulumi.Input[str] policy_data: The policy data generated by
361
+ a `organizations_get_iam_policy` data source.
362
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
363
+ 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.
364
+ :param pulumi.Input[str] repository_id: The ID for the Repository.
365
+ Used to find the parent resource to bind the IAM policy to
366
+ """
367
+ ...
368
+ @overload
369
+ def __init__(__self__,
370
+ resource_name: str,
371
+ args: RepositoryIamPolicyArgs,
372
+ opts: Optional[pulumi.ResourceOptions] = None):
373
+ """
374
+ Three different resources help you manage your IAM policy for Secure Source Manager Repository. Each of these resources serves a different use case:
375
+
376
+ * `securesourcemanager.RepositoryIamPolicy`: Authoritative. Sets the IAM policy for the repository and replaces any existing policy already attached.
377
+ * `securesourcemanager.RepositoryIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the repository are preserved.
378
+ * `securesourcemanager.RepositoryIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the repository are preserved.
379
+
380
+ A data source can be used to retrieve policy data in advent you do not need creation
381
+
382
+ * `securesourcemanager.RepositoryIamPolicy`: Retrieves the IAM policy for the repository
383
+
384
+ > **Note:** `securesourcemanager.RepositoryIamPolicy` **cannot** be used in conjunction with `securesourcemanager.RepositoryIamBinding` and `securesourcemanager.RepositoryIamMember` or they will fight over what your policy should be.
385
+
386
+ > **Note:** `securesourcemanager.RepositoryIamBinding` resources **can be** used in conjunction with `securesourcemanager.RepositoryIamMember` resources **only if** they do not grant privilege to the same role.
387
+
388
+ ## securesourcemanager.RepositoryIamPolicy
389
+
390
+ ```python
391
+ import pulumi
392
+ import pulumi_gcp as gcp
393
+
394
+ admin = gcp.organizations.get_iam_policy(bindings=[{
395
+ "role": "roles/securesourcemanager.repoAdmin",
396
+ "members": ["user:jane@example.com"],
397
+ }])
398
+ policy = gcp.securesourcemanager.RepositoryIamPolicy("policy",
399
+ project=default["project"],
400
+ location=default["location"],
401
+ repository_id=default["repositoryId"],
402
+ policy_data=admin.policy_data)
403
+ ```
404
+
405
+ ## securesourcemanager.RepositoryIamBinding
406
+
407
+ ```python
408
+ import pulumi
409
+ import pulumi_gcp as gcp
410
+
411
+ binding = gcp.securesourcemanager.RepositoryIamBinding("binding",
412
+ project=default["project"],
413
+ location=default["location"],
414
+ repository_id=default["repositoryId"],
415
+ role="roles/securesourcemanager.repoAdmin",
416
+ members=["user:jane@example.com"])
417
+ ```
418
+
419
+ ## securesourcemanager.RepositoryIamMember
420
+
421
+ ```python
422
+ import pulumi
423
+ import pulumi_gcp as gcp
424
+
425
+ member = gcp.securesourcemanager.RepositoryIamMember("member",
426
+ project=default["project"],
427
+ location=default["location"],
428
+ repository_id=default["repositoryId"],
429
+ role="roles/securesourcemanager.repoAdmin",
430
+ member="user:jane@example.com")
431
+ ```
432
+
433
+ ## securesourcemanager.RepositoryIamPolicy
434
+
435
+ ```python
436
+ import pulumi
437
+ import pulumi_gcp as gcp
438
+
439
+ admin = gcp.organizations.get_iam_policy(bindings=[{
440
+ "role": "roles/securesourcemanager.repoAdmin",
441
+ "members": ["user:jane@example.com"],
442
+ }])
443
+ policy = gcp.securesourcemanager.RepositoryIamPolicy("policy",
444
+ project=default["project"],
445
+ location=default["location"],
446
+ repository_id=default["repositoryId"],
447
+ policy_data=admin.policy_data)
448
+ ```
449
+
450
+ ## securesourcemanager.RepositoryIamBinding
451
+
452
+ ```python
453
+ import pulumi
454
+ import pulumi_gcp as gcp
455
+
456
+ binding = gcp.securesourcemanager.RepositoryIamBinding("binding",
457
+ project=default["project"],
458
+ location=default["location"],
459
+ repository_id=default["repositoryId"],
460
+ role="roles/securesourcemanager.repoAdmin",
461
+ members=["user:jane@example.com"])
462
+ ```
463
+
464
+ ## securesourcemanager.RepositoryIamMember
465
+
466
+ ```python
467
+ import pulumi
468
+ import pulumi_gcp as gcp
469
+
470
+ member = gcp.securesourcemanager.RepositoryIamMember("member",
471
+ project=default["project"],
472
+ location=default["location"],
473
+ repository_id=default["repositoryId"],
474
+ role="roles/securesourcemanager.repoAdmin",
475
+ member="user:jane@example.com")
476
+ ```
477
+
478
+ ## Import
479
+
480
+ For all import syntaxes, the "resource in question" can take any of the following forms:
481
+
482
+ * projects/{{project}}/locations/{{location}}/repositories/{{repository_id}}
483
+
484
+ * {{project}}/{{location}}/{{repository_id}}
485
+
486
+ * {{location}}/{{repository_id}}
487
+
488
+ * {{repository_id}}
489
+
490
+ Any variables not passed in the import command will be taken from the provider configuration.
491
+
492
+ Secure Source Manager repository IAM resources can be imported using the resource identifiers, role, and member.
493
+
494
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
495
+
496
+ ```sh
497
+ $ pulumi import gcp:securesourcemanager/repositoryIamPolicy:RepositoryIamPolicy editor "projects/{{project}}/locations/{{location}}/repositories/{{repository_id}} roles/securesourcemanager.repoAdmin user:jane@example.com"
498
+ ```
499
+
500
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
501
+
502
+ ```sh
503
+ $ pulumi import gcp:securesourcemanager/repositoryIamPolicy:RepositoryIamPolicy editor "projects/{{project}}/locations/{{location}}/repositories/{{repository_id}} roles/securesourcemanager.repoAdmin"
504
+ ```
505
+
506
+ IAM policy imports use the identifier of the resource in question, e.g.
507
+
508
+ ```sh
509
+ $ pulumi import gcp:securesourcemanager/repositoryIamPolicy:RepositoryIamPolicy editor projects/{{project}}/locations/{{location}}/repositories/{{repository_id}}
510
+ ```
511
+
512
+ -> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the
513
+
514
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
515
+
516
+ :param str resource_name: The name of the resource.
517
+ :param RepositoryIamPolicyArgs args: The arguments to use to populate this resource's properties.
518
+ :param pulumi.ResourceOptions opts: Options for the resource.
519
+ """
520
+ ...
521
+ def __init__(__self__, resource_name: str, *args, **kwargs):
522
+ resource_args, opts = _utilities.get_resource_args_opts(RepositoryIamPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
523
+ if resource_args is not None:
524
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
525
+ else:
526
+ __self__._internal_init(resource_name, *args, **kwargs)
527
+
528
+ def _internal_init(__self__,
529
+ resource_name: str,
530
+ opts: Optional[pulumi.ResourceOptions] = None,
531
+ location: Optional[pulumi.Input[str]] = None,
532
+ policy_data: Optional[pulumi.Input[str]] = None,
533
+ project: Optional[pulumi.Input[str]] = None,
534
+ repository_id: Optional[pulumi.Input[str]] = None,
535
+ __props__=None):
536
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
537
+ if not isinstance(opts, pulumi.ResourceOptions):
538
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
539
+ if opts.id is None:
540
+ if __props__ is not None:
541
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
542
+ __props__ = RepositoryIamPolicyArgs.__new__(RepositoryIamPolicyArgs)
543
+
544
+ __props__.__dict__["location"] = location
545
+ if policy_data is None and not opts.urn:
546
+ raise TypeError("Missing required property 'policy_data'")
547
+ __props__.__dict__["policy_data"] = policy_data
548
+ __props__.__dict__["project"] = project
549
+ if repository_id is None and not opts.urn:
550
+ raise TypeError("Missing required property 'repository_id'")
551
+ __props__.__dict__["repository_id"] = repository_id
552
+ __props__.__dict__["etag"] = None
553
+ super(RepositoryIamPolicy, __self__).__init__(
554
+ 'gcp:securesourcemanager/repositoryIamPolicy:RepositoryIamPolicy',
555
+ resource_name,
556
+ __props__,
557
+ opts)
558
+
559
+ @staticmethod
560
+ def get(resource_name: str,
561
+ id: pulumi.Input[str],
562
+ opts: Optional[pulumi.ResourceOptions] = None,
563
+ etag: Optional[pulumi.Input[str]] = None,
564
+ location: Optional[pulumi.Input[str]] = None,
565
+ policy_data: Optional[pulumi.Input[str]] = None,
566
+ project: Optional[pulumi.Input[str]] = None,
567
+ repository_id: Optional[pulumi.Input[str]] = None) -> 'RepositoryIamPolicy':
568
+ """
569
+ Get an existing RepositoryIamPolicy resource's state with the given name, id, and optional extra
570
+ properties used to qualify the lookup.
571
+
572
+ :param str resource_name: The unique name of the resulting resource.
573
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
574
+ :param pulumi.ResourceOptions opts: Options for the resource.
575
+ :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy.
576
+ :param pulumi.Input[str] location: The location for the Repository.
577
+ Used to find the parent resource to bind the IAM policy to. If not specified,
578
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
579
+ location is specified, it is taken from the provider configuration.
580
+ :param pulumi.Input[str] policy_data: The policy data generated by
581
+ a `organizations_get_iam_policy` data source.
582
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
583
+ 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.
584
+ :param pulumi.Input[str] repository_id: The ID for the Repository.
585
+ Used to find the parent resource to bind the IAM policy to
586
+ """
587
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
588
+
589
+ __props__ = _RepositoryIamPolicyState.__new__(_RepositoryIamPolicyState)
590
+
591
+ __props__.__dict__["etag"] = etag
592
+ __props__.__dict__["location"] = location
593
+ __props__.__dict__["policy_data"] = policy_data
594
+ __props__.__dict__["project"] = project
595
+ __props__.__dict__["repository_id"] = repository_id
596
+ return RepositoryIamPolicy(resource_name, opts=opts, __props__=__props__)
597
+
598
+ @property
599
+ @pulumi.getter
600
+ def etag(self) -> pulumi.Output[str]:
601
+ """
602
+ (Computed) The etag of the IAM policy.
603
+ """
604
+ return pulumi.get(self, "etag")
605
+
606
+ @property
607
+ @pulumi.getter
608
+ def location(self) -> pulumi.Output[str]:
609
+ """
610
+ The location for the Repository.
611
+ Used to find the parent resource to bind the IAM policy to. If not specified,
612
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
613
+ location is specified, it is taken from the provider configuration.
614
+ """
615
+ return pulumi.get(self, "location")
616
+
617
+ @property
618
+ @pulumi.getter(name="policyData")
619
+ def policy_data(self) -> pulumi.Output[str]:
620
+ """
621
+ The policy data generated by
622
+ a `organizations_get_iam_policy` data source.
623
+ """
624
+ return pulumi.get(self, "policy_data")
625
+
626
+ @property
627
+ @pulumi.getter
628
+ def project(self) -> pulumi.Output[str]:
629
+ """
630
+ The ID of the project in which the resource belongs.
631
+ 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.
632
+ """
633
+ return pulumi.get(self, "project")
634
+
635
+ @property
636
+ @pulumi.getter(name="repositoryId")
637
+ def repository_id(self) -> pulumi.Output[str]:
638
+ """
639
+ The ID for the Repository.
640
+ Used to find the parent resource to bind the IAM policy to
641
+ """
642
+ return pulumi.get(self, "repository_id")
643
+
@@ -23,5 +23,6 @@ from .source import *
23
23
  from .source_iam_binding import *
24
24
  from .source_iam_member import *
25
25
  from .source_iam_policy import *
26
+ from .v2_organization_notification_config import *
26
27
  from ._inputs import *
27
28
  from . import outputs