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,576 @@
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
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['V2OrganizationNotificationConfigArgs', 'V2OrganizationNotificationConfig']
20
+
21
+ @pulumi.input_type
22
+ class V2OrganizationNotificationConfigArgs:
23
+ def __init__(__self__, *,
24
+ config_id: pulumi.Input[str],
25
+ organization: pulumi.Input[str],
26
+ pubsub_topic: pulumi.Input[str],
27
+ streaming_config: pulumi.Input['V2OrganizationNotificationConfigStreamingConfigArgs'],
28
+ description: Optional[pulumi.Input[str]] = None,
29
+ location: Optional[pulumi.Input[str]] = None):
30
+ """
31
+ The set of arguments for constructing a V2OrganizationNotificationConfig resource.
32
+ :param pulumi.Input[str] config_id: This must be unique within the organization.
33
+ :param pulumi.Input[str] organization: The organization whose Cloud Security Command Center the Notification
34
+ Config lives in.
35
+ :param pulumi.Input[str] pubsub_topic: The Pub/Sub topic to send notifications to. Its format is
36
+ "projects/[project_id]/topics/[topic]".
37
+ :param pulumi.Input['V2OrganizationNotificationConfigStreamingConfigArgs'] streaming_config: The config for triggering streaming-based notifications.
38
+ Structure is documented below.
39
+ :param pulumi.Input[str] description: The description of the notification config (max of 1024 characters).
40
+ :param pulumi.Input[str] location: location Id is provided by organization. If not provided, Use global as default.
41
+ """
42
+ pulumi.set(__self__, "config_id", config_id)
43
+ pulumi.set(__self__, "organization", organization)
44
+ pulumi.set(__self__, "pubsub_topic", pubsub_topic)
45
+ pulumi.set(__self__, "streaming_config", streaming_config)
46
+ if description is not None:
47
+ pulumi.set(__self__, "description", description)
48
+ if location is not None:
49
+ pulumi.set(__self__, "location", location)
50
+
51
+ @property
52
+ @pulumi.getter(name="configId")
53
+ def config_id(self) -> pulumi.Input[str]:
54
+ """
55
+ This must be unique within the organization.
56
+ """
57
+ return pulumi.get(self, "config_id")
58
+
59
+ @config_id.setter
60
+ def config_id(self, value: pulumi.Input[str]):
61
+ pulumi.set(self, "config_id", value)
62
+
63
+ @property
64
+ @pulumi.getter
65
+ def organization(self) -> pulumi.Input[str]:
66
+ """
67
+ The organization whose Cloud Security Command Center the Notification
68
+ Config lives in.
69
+ """
70
+ return pulumi.get(self, "organization")
71
+
72
+ @organization.setter
73
+ def organization(self, value: pulumi.Input[str]):
74
+ pulumi.set(self, "organization", value)
75
+
76
+ @property
77
+ @pulumi.getter(name="pubsubTopic")
78
+ def pubsub_topic(self) -> pulumi.Input[str]:
79
+ """
80
+ The Pub/Sub topic to send notifications to. Its format is
81
+ "projects/[project_id]/topics/[topic]".
82
+ """
83
+ return pulumi.get(self, "pubsub_topic")
84
+
85
+ @pubsub_topic.setter
86
+ def pubsub_topic(self, value: pulumi.Input[str]):
87
+ pulumi.set(self, "pubsub_topic", value)
88
+
89
+ @property
90
+ @pulumi.getter(name="streamingConfig")
91
+ def streaming_config(self) -> pulumi.Input['V2OrganizationNotificationConfigStreamingConfigArgs']:
92
+ """
93
+ The config for triggering streaming-based notifications.
94
+ Structure is documented below.
95
+ """
96
+ return pulumi.get(self, "streaming_config")
97
+
98
+ @streaming_config.setter
99
+ def streaming_config(self, value: pulumi.Input['V2OrganizationNotificationConfigStreamingConfigArgs']):
100
+ pulumi.set(self, "streaming_config", value)
101
+
102
+ @property
103
+ @pulumi.getter
104
+ def description(self) -> Optional[pulumi.Input[str]]:
105
+ """
106
+ The description of the notification config (max of 1024 characters).
107
+ """
108
+ return pulumi.get(self, "description")
109
+
110
+ @description.setter
111
+ def description(self, value: Optional[pulumi.Input[str]]):
112
+ pulumi.set(self, "description", value)
113
+
114
+ @property
115
+ @pulumi.getter
116
+ def location(self) -> Optional[pulumi.Input[str]]:
117
+ """
118
+ location Id is provided by organization. If not provided, Use global as default.
119
+ """
120
+ return pulumi.get(self, "location")
121
+
122
+ @location.setter
123
+ def location(self, value: Optional[pulumi.Input[str]]):
124
+ pulumi.set(self, "location", value)
125
+
126
+
127
+ @pulumi.input_type
128
+ class _V2OrganizationNotificationConfigState:
129
+ def __init__(__self__, *,
130
+ config_id: Optional[pulumi.Input[str]] = None,
131
+ description: Optional[pulumi.Input[str]] = None,
132
+ location: Optional[pulumi.Input[str]] = None,
133
+ name: Optional[pulumi.Input[str]] = None,
134
+ organization: Optional[pulumi.Input[str]] = None,
135
+ pubsub_topic: Optional[pulumi.Input[str]] = None,
136
+ service_account: Optional[pulumi.Input[str]] = None,
137
+ streaming_config: Optional[pulumi.Input['V2OrganizationNotificationConfigStreamingConfigArgs']] = None):
138
+ """
139
+ Input properties used for looking up and filtering V2OrganizationNotificationConfig resources.
140
+ :param pulumi.Input[str] config_id: This must be unique within the organization.
141
+ :param pulumi.Input[str] description: The description of the notification config (max of 1024 characters).
142
+ :param pulumi.Input[str] location: location Id is provided by organization. If not provided, Use global as default.
143
+ :param pulumi.Input[str] name: The resource name of this notification config, in the format
144
+ `organizations/{{organization}}/notificationConfigs/{{config_id}}`.
145
+ :param pulumi.Input[str] organization: The organization whose Cloud Security Command Center the Notification
146
+ Config lives in.
147
+ :param pulumi.Input[str] pubsub_topic: The Pub/Sub topic to send notifications to. Its format is
148
+ "projects/[project_id]/topics/[topic]".
149
+ :param pulumi.Input[str] service_account: The service account that needs "pubsub.topics.publish" permission to
150
+ publish to the Pub/Sub topic.
151
+ :param pulumi.Input['V2OrganizationNotificationConfigStreamingConfigArgs'] streaming_config: The config for triggering streaming-based notifications.
152
+ Structure is documented below.
153
+ """
154
+ if config_id is not None:
155
+ pulumi.set(__self__, "config_id", config_id)
156
+ if description is not None:
157
+ pulumi.set(__self__, "description", description)
158
+ if location is not None:
159
+ pulumi.set(__self__, "location", location)
160
+ if name is not None:
161
+ pulumi.set(__self__, "name", name)
162
+ if organization is not None:
163
+ pulumi.set(__self__, "organization", organization)
164
+ if pubsub_topic is not None:
165
+ pulumi.set(__self__, "pubsub_topic", pubsub_topic)
166
+ if service_account is not None:
167
+ pulumi.set(__self__, "service_account", service_account)
168
+ if streaming_config is not None:
169
+ pulumi.set(__self__, "streaming_config", streaming_config)
170
+
171
+ @property
172
+ @pulumi.getter(name="configId")
173
+ def config_id(self) -> Optional[pulumi.Input[str]]:
174
+ """
175
+ This must be unique within the organization.
176
+ """
177
+ return pulumi.get(self, "config_id")
178
+
179
+ @config_id.setter
180
+ def config_id(self, value: Optional[pulumi.Input[str]]):
181
+ pulumi.set(self, "config_id", value)
182
+
183
+ @property
184
+ @pulumi.getter
185
+ def description(self) -> Optional[pulumi.Input[str]]:
186
+ """
187
+ The description of the notification config (max of 1024 characters).
188
+ """
189
+ return pulumi.get(self, "description")
190
+
191
+ @description.setter
192
+ def description(self, value: Optional[pulumi.Input[str]]):
193
+ pulumi.set(self, "description", value)
194
+
195
+ @property
196
+ @pulumi.getter
197
+ def location(self) -> Optional[pulumi.Input[str]]:
198
+ """
199
+ location Id is provided by organization. If not provided, Use global as default.
200
+ """
201
+ return pulumi.get(self, "location")
202
+
203
+ @location.setter
204
+ def location(self, value: Optional[pulumi.Input[str]]):
205
+ pulumi.set(self, "location", value)
206
+
207
+ @property
208
+ @pulumi.getter
209
+ def name(self) -> Optional[pulumi.Input[str]]:
210
+ """
211
+ The resource name of this notification config, in the format
212
+ `organizations/{{organization}}/notificationConfigs/{{config_id}}`.
213
+ """
214
+ return pulumi.get(self, "name")
215
+
216
+ @name.setter
217
+ def name(self, value: Optional[pulumi.Input[str]]):
218
+ pulumi.set(self, "name", value)
219
+
220
+ @property
221
+ @pulumi.getter
222
+ def organization(self) -> Optional[pulumi.Input[str]]:
223
+ """
224
+ The organization whose Cloud Security Command Center the Notification
225
+ Config lives in.
226
+ """
227
+ return pulumi.get(self, "organization")
228
+
229
+ @organization.setter
230
+ def organization(self, value: Optional[pulumi.Input[str]]):
231
+ pulumi.set(self, "organization", value)
232
+
233
+ @property
234
+ @pulumi.getter(name="pubsubTopic")
235
+ def pubsub_topic(self) -> Optional[pulumi.Input[str]]:
236
+ """
237
+ The Pub/Sub topic to send notifications to. Its format is
238
+ "projects/[project_id]/topics/[topic]".
239
+ """
240
+ return pulumi.get(self, "pubsub_topic")
241
+
242
+ @pubsub_topic.setter
243
+ def pubsub_topic(self, value: Optional[pulumi.Input[str]]):
244
+ pulumi.set(self, "pubsub_topic", value)
245
+
246
+ @property
247
+ @pulumi.getter(name="serviceAccount")
248
+ def service_account(self) -> Optional[pulumi.Input[str]]:
249
+ """
250
+ The service account that needs "pubsub.topics.publish" permission to
251
+ publish to the Pub/Sub topic.
252
+ """
253
+ return pulumi.get(self, "service_account")
254
+
255
+ @service_account.setter
256
+ def service_account(self, value: Optional[pulumi.Input[str]]):
257
+ pulumi.set(self, "service_account", value)
258
+
259
+ @property
260
+ @pulumi.getter(name="streamingConfig")
261
+ def streaming_config(self) -> Optional[pulumi.Input['V2OrganizationNotificationConfigStreamingConfigArgs']]:
262
+ """
263
+ The config for triggering streaming-based notifications.
264
+ Structure is documented below.
265
+ """
266
+ return pulumi.get(self, "streaming_config")
267
+
268
+ @streaming_config.setter
269
+ def streaming_config(self, value: Optional[pulumi.Input['V2OrganizationNotificationConfigStreamingConfigArgs']]):
270
+ pulumi.set(self, "streaming_config", value)
271
+
272
+
273
+ class V2OrganizationNotificationConfig(pulumi.CustomResource):
274
+ @overload
275
+ def __init__(__self__,
276
+ resource_name: str,
277
+ opts: Optional[pulumi.ResourceOptions] = None,
278
+ config_id: Optional[pulumi.Input[str]] = None,
279
+ description: Optional[pulumi.Input[str]] = None,
280
+ location: Optional[pulumi.Input[str]] = None,
281
+ organization: Optional[pulumi.Input[str]] = None,
282
+ pubsub_topic: Optional[pulumi.Input[str]] = None,
283
+ streaming_config: Optional[pulumi.Input[Union['V2OrganizationNotificationConfigStreamingConfigArgs', 'V2OrganizationNotificationConfigStreamingConfigArgsDict']]] = None,
284
+ __props__=None):
285
+ """
286
+ A Cloud Security Command Center (Cloud SCC) notification configs. A
287
+ notification config is a Cloud SCC resource that contains the
288
+ configuration to send notifications for create/update events of
289
+ findings, assets and etc.
290
+ > **Note:** In order to use Cloud SCC resources, your organization must be enrolled
291
+ in [SCC Standard/Premium](https://cloud.google.com/security-command-center/docs/quickstart-security-command-center).
292
+ Without doing so, you may run into errors during resource creation.
293
+
294
+ To get more information about OrganizationNotificationConfig, see:
295
+
296
+ * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/organizations.locations.notificationConfigs)
297
+ * How-to Guides
298
+ * [Official Documentation](https://cloud.google.com/security-command-center/docs)
299
+
300
+ ## Example Usage
301
+
302
+ ### Scc V2 Organization Notification Config Basic
303
+
304
+ ```python
305
+ import pulumi
306
+ import pulumi_gcp as gcp
307
+
308
+ scc_v2_organization_notification_config = gcp.pubsub.Topic("scc_v2_organization_notification_config", name="my-topic")
309
+ custom_organization_notification_config = gcp.securitycenter.V2OrganizationNotificationConfig("custom_organization_notification_config",
310
+ config_id="my-config",
311
+ organization="123456789",
312
+ location="global",
313
+ description="My custom Cloud Security Command Center Finding Organization Notification Configuration",
314
+ pubsub_topic=scc_v2_organization_notification_config.id,
315
+ streaming_config={
316
+ "filter": "category = \\"OPEN_FIREWALL\\" AND state = \\"ACTIVE\\"",
317
+ })
318
+ ```
319
+
320
+ ## Import
321
+
322
+ OrganizationNotificationConfig can be imported using any of these accepted formats:
323
+
324
+ * `organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}}`
325
+
326
+ * `{{organization}}/{{location}}/{{name}}`
327
+
328
+ When using the `pulumi import` command, OrganizationNotificationConfig can be imported using one of the formats above. For example:
329
+
330
+ ```sh
331
+ $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}}
332
+ ```
333
+
334
+ ```sh
335
+ $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{organization}}/{{location}}/{{name}}
336
+ ```
337
+
338
+ :param str resource_name: The name of the resource.
339
+ :param pulumi.ResourceOptions opts: Options for the resource.
340
+ :param pulumi.Input[str] config_id: This must be unique within the organization.
341
+ :param pulumi.Input[str] description: The description of the notification config (max of 1024 characters).
342
+ :param pulumi.Input[str] location: location Id is provided by organization. If not provided, Use global as default.
343
+ :param pulumi.Input[str] organization: The organization whose Cloud Security Command Center the Notification
344
+ Config lives in.
345
+ :param pulumi.Input[str] pubsub_topic: The Pub/Sub topic to send notifications to. Its format is
346
+ "projects/[project_id]/topics/[topic]".
347
+ :param pulumi.Input[Union['V2OrganizationNotificationConfigStreamingConfigArgs', 'V2OrganizationNotificationConfigStreamingConfigArgsDict']] streaming_config: The config for triggering streaming-based notifications.
348
+ Structure is documented below.
349
+ """
350
+ ...
351
+ @overload
352
+ def __init__(__self__,
353
+ resource_name: str,
354
+ args: V2OrganizationNotificationConfigArgs,
355
+ opts: Optional[pulumi.ResourceOptions] = None):
356
+ """
357
+ A Cloud Security Command Center (Cloud SCC) notification configs. A
358
+ notification config is a Cloud SCC resource that contains the
359
+ configuration to send notifications for create/update events of
360
+ findings, assets and etc.
361
+ > **Note:** In order to use Cloud SCC resources, your organization must be enrolled
362
+ in [SCC Standard/Premium](https://cloud.google.com/security-command-center/docs/quickstart-security-command-center).
363
+ Without doing so, you may run into errors during resource creation.
364
+
365
+ To get more information about OrganizationNotificationConfig, see:
366
+
367
+ * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/organizations.locations.notificationConfigs)
368
+ * How-to Guides
369
+ * [Official Documentation](https://cloud.google.com/security-command-center/docs)
370
+
371
+ ## Example Usage
372
+
373
+ ### Scc V2 Organization Notification Config Basic
374
+
375
+ ```python
376
+ import pulumi
377
+ import pulumi_gcp as gcp
378
+
379
+ scc_v2_organization_notification_config = gcp.pubsub.Topic("scc_v2_organization_notification_config", name="my-topic")
380
+ custom_organization_notification_config = gcp.securitycenter.V2OrganizationNotificationConfig("custom_organization_notification_config",
381
+ config_id="my-config",
382
+ organization="123456789",
383
+ location="global",
384
+ description="My custom Cloud Security Command Center Finding Organization Notification Configuration",
385
+ pubsub_topic=scc_v2_organization_notification_config.id,
386
+ streaming_config={
387
+ "filter": "category = \\"OPEN_FIREWALL\\" AND state = \\"ACTIVE\\"",
388
+ })
389
+ ```
390
+
391
+ ## Import
392
+
393
+ OrganizationNotificationConfig can be imported using any of these accepted formats:
394
+
395
+ * `organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}}`
396
+
397
+ * `{{organization}}/{{location}}/{{name}}`
398
+
399
+ When using the `pulumi import` command, OrganizationNotificationConfig can be imported using one of the formats above. For example:
400
+
401
+ ```sh
402
+ $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}}
403
+ ```
404
+
405
+ ```sh
406
+ $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{organization}}/{{location}}/{{name}}
407
+ ```
408
+
409
+ :param str resource_name: The name of the resource.
410
+ :param V2OrganizationNotificationConfigArgs args: The arguments to use to populate this resource's properties.
411
+ :param pulumi.ResourceOptions opts: Options for the resource.
412
+ """
413
+ ...
414
+ def __init__(__self__, resource_name: str, *args, **kwargs):
415
+ resource_args, opts = _utilities.get_resource_args_opts(V2OrganizationNotificationConfigArgs, pulumi.ResourceOptions, *args, **kwargs)
416
+ if resource_args is not None:
417
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
418
+ else:
419
+ __self__._internal_init(resource_name, *args, **kwargs)
420
+
421
+ def _internal_init(__self__,
422
+ resource_name: str,
423
+ opts: Optional[pulumi.ResourceOptions] = None,
424
+ config_id: Optional[pulumi.Input[str]] = None,
425
+ description: Optional[pulumi.Input[str]] = None,
426
+ location: Optional[pulumi.Input[str]] = None,
427
+ organization: Optional[pulumi.Input[str]] = None,
428
+ pubsub_topic: Optional[pulumi.Input[str]] = None,
429
+ streaming_config: Optional[pulumi.Input[Union['V2OrganizationNotificationConfigStreamingConfigArgs', 'V2OrganizationNotificationConfigStreamingConfigArgsDict']]] = None,
430
+ __props__=None):
431
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
432
+ if not isinstance(opts, pulumi.ResourceOptions):
433
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
434
+ if opts.id is None:
435
+ if __props__ is not None:
436
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
437
+ __props__ = V2OrganizationNotificationConfigArgs.__new__(V2OrganizationNotificationConfigArgs)
438
+
439
+ if config_id is None and not opts.urn:
440
+ raise TypeError("Missing required property 'config_id'")
441
+ __props__.__dict__["config_id"] = config_id
442
+ __props__.__dict__["description"] = description
443
+ __props__.__dict__["location"] = location
444
+ if organization is None and not opts.urn:
445
+ raise TypeError("Missing required property 'organization'")
446
+ __props__.__dict__["organization"] = organization
447
+ if pubsub_topic is None and not opts.urn:
448
+ raise TypeError("Missing required property 'pubsub_topic'")
449
+ __props__.__dict__["pubsub_topic"] = pubsub_topic
450
+ if streaming_config is None and not opts.urn:
451
+ raise TypeError("Missing required property 'streaming_config'")
452
+ __props__.__dict__["streaming_config"] = streaming_config
453
+ __props__.__dict__["name"] = None
454
+ __props__.__dict__["service_account"] = None
455
+ super(V2OrganizationNotificationConfig, __self__).__init__(
456
+ 'gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig',
457
+ resource_name,
458
+ __props__,
459
+ opts)
460
+
461
+ @staticmethod
462
+ def get(resource_name: str,
463
+ id: pulumi.Input[str],
464
+ opts: Optional[pulumi.ResourceOptions] = None,
465
+ config_id: Optional[pulumi.Input[str]] = None,
466
+ description: Optional[pulumi.Input[str]] = None,
467
+ location: Optional[pulumi.Input[str]] = None,
468
+ name: Optional[pulumi.Input[str]] = None,
469
+ organization: Optional[pulumi.Input[str]] = None,
470
+ pubsub_topic: Optional[pulumi.Input[str]] = None,
471
+ service_account: Optional[pulumi.Input[str]] = None,
472
+ streaming_config: Optional[pulumi.Input[Union['V2OrganizationNotificationConfigStreamingConfigArgs', 'V2OrganizationNotificationConfigStreamingConfigArgsDict']]] = None) -> 'V2OrganizationNotificationConfig':
473
+ """
474
+ Get an existing V2OrganizationNotificationConfig resource's state with the given name, id, and optional extra
475
+ properties used to qualify the lookup.
476
+
477
+ :param str resource_name: The unique name of the resulting resource.
478
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
479
+ :param pulumi.ResourceOptions opts: Options for the resource.
480
+ :param pulumi.Input[str] config_id: This must be unique within the organization.
481
+ :param pulumi.Input[str] description: The description of the notification config (max of 1024 characters).
482
+ :param pulumi.Input[str] location: location Id is provided by organization. If not provided, Use global as default.
483
+ :param pulumi.Input[str] name: The resource name of this notification config, in the format
484
+ `organizations/{{organization}}/notificationConfigs/{{config_id}}`.
485
+ :param pulumi.Input[str] organization: The organization whose Cloud Security Command Center the Notification
486
+ Config lives in.
487
+ :param pulumi.Input[str] pubsub_topic: The Pub/Sub topic to send notifications to. Its format is
488
+ "projects/[project_id]/topics/[topic]".
489
+ :param pulumi.Input[str] service_account: The service account that needs "pubsub.topics.publish" permission to
490
+ publish to the Pub/Sub topic.
491
+ :param pulumi.Input[Union['V2OrganizationNotificationConfigStreamingConfigArgs', 'V2OrganizationNotificationConfigStreamingConfigArgsDict']] streaming_config: The config for triggering streaming-based notifications.
492
+ Structure is documented below.
493
+ """
494
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
495
+
496
+ __props__ = _V2OrganizationNotificationConfigState.__new__(_V2OrganizationNotificationConfigState)
497
+
498
+ __props__.__dict__["config_id"] = config_id
499
+ __props__.__dict__["description"] = description
500
+ __props__.__dict__["location"] = location
501
+ __props__.__dict__["name"] = name
502
+ __props__.__dict__["organization"] = organization
503
+ __props__.__dict__["pubsub_topic"] = pubsub_topic
504
+ __props__.__dict__["service_account"] = service_account
505
+ __props__.__dict__["streaming_config"] = streaming_config
506
+ return V2OrganizationNotificationConfig(resource_name, opts=opts, __props__=__props__)
507
+
508
+ @property
509
+ @pulumi.getter(name="configId")
510
+ def config_id(self) -> pulumi.Output[str]:
511
+ """
512
+ This must be unique within the organization.
513
+ """
514
+ return pulumi.get(self, "config_id")
515
+
516
+ @property
517
+ @pulumi.getter
518
+ def description(self) -> pulumi.Output[Optional[str]]:
519
+ """
520
+ The description of the notification config (max of 1024 characters).
521
+ """
522
+ return pulumi.get(self, "description")
523
+
524
+ @property
525
+ @pulumi.getter
526
+ def location(self) -> pulumi.Output[Optional[str]]:
527
+ """
528
+ location Id is provided by organization. If not provided, Use global as default.
529
+ """
530
+ return pulumi.get(self, "location")
531
+
532
+ @property
533
+ @pulumi.getter
534
+ def name(self) -> pulumi.Output[str]:
535
+ """
536
+ The resource name of this notification config, in the format
537
+ `organizations/{{organization}}/notificationConfigs/{{config_id}}`.
538
+ """
539
+ return pulumi.get(self, "name")
540
+
541
+ @property
542
+ @pulumi.getter
543
+ def organization(self) -> pulumi.Output[str]:
544
+ """
545
+ The organization whose Cloud Security Command Center the Notification
546
+ Config lives in.
547
+ """
548
+ return pulumi.get(self, "organization")
549
+
550
+ @property
551
+ @pulumi.getter(name="pubsubTopic")
552
+ def pubsub_topic(self) -> pulumi.Output[str]:
553
+ """
554
+ The Pub/Sub topic to send notifications to. Its format is
555
+ "projects/[project_id]/topics/[topic]".
556
+ """
557
+ return pulumi.get(self, "pubsub_topic")
558
+
559
+ @property
560
+ @pulumi.getter(name="serviceAccount")
561
+ def service_account(self) -> pulumi.Output[str]:
562
+ """
563
+ The service account that needs "pubsub.topics.publish" permission to
564
+ publish to the Pub/Sub topic.
565
+ """
566
+ return pulumi.get(self, "service_account")
567
+
568
+ @property
569
+ @pulumi.getter(name="streamingConfig")
570
+ def streaming_config(self) -> pulumi.Output['outputs.V2OrganizationNotificationConfigStreamingConfig']:
571
+ """
572
+ The config for triggering streaming-based notifications.
573
+ Structure is documented below.
574
+ """
575
+ return pulumi.get(self, "streaming_config")
576
+
@@ -463,45 +463,6 @@ class PostureDeployment(pulumi.CustomResource):
463
463
  * How-to Guides
464
464
  * [Create and deploy a posture](https://cloud.google.com/security-command-center/docs/how-to-use-security-posture)
465
465
 
466
- ## Example Usage
467
-
468
- ### Securityposture Posture Deployment Basic
469
-
470
- ```python
471
- import pulumi
472
- import pulumi_gcp as gcp
473
-
474
- posture1 = gcp.securityposture.Posture("posture_1",
475
- posture_id="posture_1",
476
- parent="organizations/123456789",
477
- location="global",
478
- state="ACTIVE",
479
- description="a new posture",
480
- policy_sets=[{
481
- "policySetId": "org_policy_set",
482
- "description": "set of org policies",
483
- "policies": [{
484
- "policyId": "policy_1",
485
- "constraint": {
486
- "orgPolicyConstraint": {
487
- "cannedConstraintId": "storage.uniformBucketLevelAccess",
488
- "policyRules": [{
489
- "enforce": True,
490
- }],
491
- },
492
- },
493
- }],
494
- }])
495
- posture_deployment = gcp.securityposture.PostureDeployment("postureDeployment",
496
- posture_deployment_id="posture_deployment_1",
497
- parent="organizations/123456789",
498
- location="global",
499
- description="a new posture deployment",
500
- target_resource="projects/1111111111111",
501
- posture_id=posture1.name,
502
- posture_revision_id=posture1.revision_id)
503
- ```
504
-
505
466
  ## Import
506
467
 
507
468
  PostureDeployment can be imported using any of these accepted formats:
@@ -549,45 +510,6 @@ class PostureDeployment(pulumi.CustomResource):
549
510
  * How-to Guides
550
511
  * [Create and deploy a posture](https://cloud.google.com/security-command-center/docs/how-to-use-security-posture)
551
512
 
552
- ## Example Usage
553
-
554
- ### Securityposture Posture Deployment Basic
555
-
556
- ```python
557
- import pulumi
558
- import pulumi_gcp as gcp
559
-
560
- posture1 = gcp.securityposture.Posture("posture_1",
561
- posture_id="posture_1",
562
- parent="organizations/123456789",
563
- location="global",
564
- state="ACTIVE",
565
- description="a new posture",
566
- policy_sets=[{
567
- "policySetId": "org_policy_set",
568
- "description": "set of org policies",
569
- "policies": [{
570
- "policyId": "policy_1",
571
- "constraint": {
572
- "orgPolicyConstraint": {
573
- "cannedConstraintId": "storage.uniformBucketLevelAccess",
574
- "policyRules": [{
575
- "enforce": True,
576
- }],
577
- },
578
- },
579
- }],
580
- }])
581
- posture_deployment = gcp.securityposture.PostureDeployment("postureDeployment",
582
- posture_deployment_id="posture_deployment_1",
583
- parent="organizations/123456789",
584
- location="global",
585
- description="a new posture deployment",
586
- target_resource="projects/1111111111111",
587
- posture_id=posture1.name,
588
- posture_revision_id=posture1.revision_id)
589
- ```
590
-
591
513
  ## Import
592
514
 
593
515
  PostureDeployment can be imported using any of these accepted formats: