pulumi-gcp 7.37.0a1723638212__py3-none-any.whl → 7.38.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 (107) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/appengine/application_url_dispatch_rules.py +10 -2
  3. pulumi_gcp/appengine/engine_split_traffic.py +32 -8
  4. pulumi_gcp/appengine/flexible_app_version.py +18 -2
  5. pulumi_gcp/appengine/service_network_settings.py +10 -2
  6. pulumi_gcp/appengine/standard_app_version.py +20 -4
  7. pulumi_gcp/applicationintegration/client.py +2 -2
  8. pulumi_gcp/artifactregistry/__init__.py +1 -0
  9. pulumi_gcp/artifactregistry/get_locations.py +167 -0
  10. pulumi_gcp/assuredworkloads/workload.py +14 -14
  11. pulumi_gcp/biglake/database.py +10 -2
  12. pulumi_gcp/biglake/table.py +20 -4
  13. pulumi_gcp/bigquery/connection.py +12 -0
  14. pulumi_gcp/bigquery/job.py +20 -4
  15. pulumi_gcp/cloudbuild/worker_pool.py +5 -5
  16. pulumi_gcp/clouddeploy/_inputs.py +41 -1
  17. pulumi_gcp/clouddeploy/delivery_pipeline.py +19 -19
  18. pulumi_gcp/clouddeploy/outputs.py +29 -1
  19. pulumi_gcp/clouddeploy/target.py +19 -19
  20. pulumi_gcp/cloudfunctions/function.py +42 -42
  21. pulumi_gcp/cloudfunctions/get_function.py +3 -3
  22. pulumi_gcp/cloudfunctionsv2/function.py +2 -0
  23. pulumi_gcp/cloudidentity/__init__.py +1 -0
  24. pulumi_gcp/cloudidentity/get_group_memberships.py +12 -0
  25. pulumi_gcp/cloudidentity/get_group_transitive_memberships.py +93 -0
  26. pulumi_gcp/cloudidentity/outputs.py +131 -0
  27. pulumi_gcp/cloudquota/outputs.py +6 -6
  28. pulumi_gcp/composer/get_user_workloads_secret.py +1 -1
  29. pulumi_gcp/composer/user_workloads_secret.py +14 -14
  30. pulumi_gcp/compute/_inputs.py +91 -85
  31. pulumi_gcp/compute/get_instance_serial_port.py +12 -4
  32. pulumi_gcp/compute/get_instance_template.py +1 -1
  33. pulumi_gcp/compute/get_region_instance_template.py +1 -1
  34. pulumi_gcp/compute/instance_template.py +14 -14
  35. pulumi_gcp/compute/outputs.py +93 -83
  36. pulumi_gcp/compute/region_instance_template.py +14 -14
  37. pulumi_gcp/compute/region_network_endpoint_group.py +18 -2
  38. pulumi_gcp/compute/subnetwork.py +82 -0
  39. pulumi_gcp/container/_inputs.py +35 -38
  40. pulumi_gcp/container/attached_cluster.py +14 -7
  41. pulumi_gcp/container/aws_cluster.py +5 -5
  42. pulumi_gcp/container/aws_node_pool.py +5 -5
  43. pulumi_gcp/container/azure_cluster.py +5 -5
  44. pulumi_gcp/container/azure_node_pool.py +5 -5
  45. pulumi_gcp/container/outputs.py +31 -33
  46. pulumi_gcp/databasemigrationservice/_inputs.py +5 -5
  47. pulumi_gcp/databasemigrationservice/outputs.py +3 -3
  48. pulumi_gcp/dataflow/flex_template_job.py +42 -42
  49. pulumi_gcp/dataflow/job.py +42 -42
  50. pulumi_gcp/datafusion/instance.py +10 -2
  51. pulumi_gcp/dataloss/_inputs.py +5 -5
  52. pulumi_gcp/dataloss/outputs.py +3 -3
  53. pulumi_gcp/dataloss/prevention_stored_info_type.py +10 -2
  54. pulumi_gcp/dataplex/asset.py +14 -14
  55. pulumi_gcp/dataplex/lake.py +14 -14
  56. pulumi_gcp/dataplex/zone.py +14 -14
  57. pulumi_gcp/dataproc/_inputs.py +10 -10
  58. pulumi_gcp/dataproc/outputs.py +6 -6
  59. pulumi_gcp/dataproc/workflow_template.py +12 -12
  60. pulumi_gcp/discoveryengine/__init__.py +1 -0
  61. pulumi_gcp/discoveryengine/schema.py +524 -0
  62. pulumi_gcp/dns/_inputs.py +80 -76
  63. pulumi_gcp/dns/outputs.py +56 -52
  64. pulumi_gcp/eventarc/trigger.py +14 -14
  65. pulumi_gcp/firebase/_inputs.py +5 -5
  66. pulumi_gcp/firebase/outputs.py +3 -3
  67. pulumi_gcp/healthcare/dicom_store.py +12 -2
  68. pulumi_gcp/healthcare/fhir_store.py +10 -2
  69. pulumi_gcp/iam/access_boundary_policy.py +10 -2
  70. pulumi_gcp/managedkafka/_inputs.py +6 -6
  71. pulumi_gcp/managedkafka/cluster.py +7 -7
  72. pulumi_gcp/managedkafka/outputs.py +4 -4
  73. pulumi_gcp/managedkafka/topic.py +7 -7
  74. pulumi_gcp/monitoring/get_app_engine_service.py +10 -2
  75. pulumi_gcp/networkconnectivity/_inputs.py +5 -5
  76. pulumi_gcp/networkconnectivity/outputs.py +3 -3
  77. pulumi_gcp/parallelstore/instance.py +215 -15
  78. pulumi_gcp/projects/default_service_accounts.py +7 -7
  79. pulumi_gcp/pubsub/subscription.py +36 -6
  80. pulumi_gcp/pulumi-plugin.json +1 -1
  81. pulumi_gcp/recaptcha/enterprise_key.py +14 -14
  82. pulumi_gcp/securitycenter/__init__.py +2 -0
  83. pulumi_gcp/securitycenter/_inputs.py +186 -0
  84. pulumi_gcp/securitycenter/folder_notification_config.py +486 -0
  85. pulumi_gcp/securitycenter/instance_iam_binding.py +10 -2
  86. pulumi_gcp/securitycenter/instance_iam_member.py +10 -2
  87. pulumi_gcp/securitycenter/instance_iam_policy.py +10 -2
  88. pulumi_gcp/securitycenter/outputs.py +118 -0
  89. pulumi_gcp/securitycenter/v2_folder_notification_config.py +575 -0
  90. pulumi_gcp/serviceaccount/key.py +14 -14
  91. pulumi_gcp/servicenetworking/connection.py +50 -3
  92. pulumi_gcp/sql/_inputs.py +20 -0
  93. pulumi_gcp/sql/outputs.py +36 -0
  94. pulumi_gcp/vertex/__init__.py +1 -0
  95. pulumi_gcp/vertex/_inputs.py +438 -0
  96. pulumi_gcp/vertex/ai_feature_group.py +12 -2
  97. pulumi_gcp/vertex/ai_feature_group_feature.py +12 -2
  98. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +48 -8
  99. pulumi_gcp/vertex/ai_index_endpoint_deployed_index.py +1170 -0
  100. pulumi_gcp/vertex/outputs.py +393 -0
  101. pulumi_gcp/workstations/_inputs.py +10 -10
  102. pulumi_gcp/workstations/outputs.py +6 -6
  103. pulumi_gcp/workstations/workstation_config.py +14 -6
  104. {pulumi_gcp-7.37.0a1723638212.dist-info → pulumi_gcp-7.38.0.dist-info}/METADATA +1 -1
  105. {pulumi_gcp-7.37.0a1723638212.dist-info → pulumi_gcp-7.38.0.dist-info}/RECORD +107 -101
  106. {pulumi_gcp-7.37.0a1723638212.dist-info → pulumi_gcp-7.38.0.dist-info}/WHEEL +1 -1
  107. {pulumi_gcp-7.37.0a1723638212.dist-info → pulumi_gcp-7.38.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,575 @@
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__ = ['V2FolderNotificationConfigArgs', 'V2FolderNotificationConfig']
20
+
21
+ @pulumi.input_type
22
+ class V2FolderNotificationConfigArgs:
23
+ def __init__(__self__, *,
24
+ config_id: pulumi.Input[str],
25
+ folder: pulumi.Input[str],
26
+ pubsub_topic: pulumi.Input[str],
27
+ streaming_config: pulumi.Input['V2FolderNotificationConfigStreamingConfigArgs'],
28
+ description: Optional[pulumi.Input[str]] = None,
29
+ location: Optional[pulumi.Input[str]] = None):
30
+ """
31
+ The set of arguments for constructing a V2FolderNotificationConfig resource.
32
+ :param pulumi.Input[str] config_id: This must be unique within the organization.
33
+ :param pulumi.Input[str] folder: Numerical ID of the parent folder.
34
+ :param pulumi.Input[str] pubsub_topic: The Pub/Sub topic to send notifications to. Its format is
35
+ "projects/[project_id]/topics/[topic]".
36
+ :param pulumi.Input['V2FolderNotificationConfigStreamingConfigArgs'] streaming_config: The config for triggering streaming-based notifications.
37
+ Structure is documented below.
38
+ :param pulumi.Input[str] description: The description of the notification config (max of 1024 characters).
39
+ :param pulumi.Input[str] location: Location ID of the parent organization. If not provided, 'global' will be used as the default location.
40
+ """
41
+ pulumi.set(__self__, "config_id", config_id)
42
+ pulumi.set(__self__, "folder", folder)
43
+ pulumi.set(__self__, "pubsub_topic", pubsub_topic)
44
+ pulumi.set(__self__, "streaming_config", streaming_config)
45
+ if description is not None:
46
+ pulumi.set(__self__, "description", description)
47
+ if location is not None:
48
+ pulumi.set(__self__, "location", location)
49
+
50
+ @property
51
+ @pulumi.getter(name="configId")
52
+ def config_id(self) -> pulumi.Input[str]:
53
+ """
54
+ This must be unique within the organization.
55
+ """
56
+ return pulumi.get(self, "config_id")
57
+
58
+ @config_id.setter
59
+ def config_id(self, value: pulumi.Input[str]):
60
+ pulumi.set(self, "config_id", value)
61
+
62
+ @property
63
+ @pulumi.getter
64
+ def folder(self) -> pulumi.Input[str]:
65
+ """
66
+ Numerical ID of the parent folder.
67
+ """
68
+ return pulumi.get(self, "folder")
69
+
70
+ @folder.setter
71
+ def folder(self, value: pulumi.Input[str]):
72
+ pulumi.set(self, "folder", value)
73
+
74
+ @property
75
+ @pulumi.getter(name="pubsubTopic")
76
+ def pubsub_topic(self) -> pulumi.Input[str]:
77
+ """
78
+ The Pub/Sub topic to send notifications to. Its format is
79
+ "projects/[project_id]/topics/[topic]".
80
+ """
81
+ return pulumi.get(self, "pubsub_topic")
82
+
83
+ @pubsub_topic.setter
84
+ def pubsub_topic(self, value: pulumi.Input[str]):
85
+ pulumi.set(self, "pubsub_topic", value)
86
+
87
+ @property
88
+ @pulumi.getter(name="streamingConfig")
89
+ def streaming_config(self) -> pulumi.Input['V2FolderNotificationConfigStreamingConfigArgs']:
90
+ """
91
+ The config for triggering streaming-based notifications.
92
+ Structure is documented below.
93
+ """
94
+ return pulumi.get(self, "streaming_config")
95
+
96
+ @streaming_config.setter
97
+ def streaming_config(self, value: pulumi.Input['V2FolderNotificationConfigStreamingConfigArgs']):
98
+ pulumi.set(self, "streaming_config", value)
99
+
100
+ @property
101
+ @pulumi.getter
102
+ def description(self) -> Optional[pulumi.Input[str]]:
103
+ """
104
+ The description of the notification config (max of 1024 characters).
105
+ """
106
+ return pulumi.get(self, "description")
107
+
108
+ @description.setter
109
+ def description(self, value: Optional[pulumi.Input[str]]):
110
+ pulumi.set(self, "description", value)
111
+
112
+ @property
113
+ @pulumi.getter
114
+ def location(self) -> Optional[pulumi.Input[str]]:
115
+ """
116
+ Location ID of the parent organization. If not provided, 'global' will be used as the default location.
117
+ """
118
+ return pulumi.get(self, "location")
119
+
120
+ @location.setter
121
+ def location(self, value: Optional[pulumi.Input[str]]):
122
+ pulumi.set(self, "location", value)
123
+
124
+
125
+ @pulumi.input_type
126
+ class _V2FolderNotificationConfigState:
127
+ def __init__(__self__, *,
128
+ config_id: Optional[pulumi.Input[str]] = None,
129
+ description: Optional[pulumi.Input[str]] = None,
130
+ folder: Optional[pulumi.Input[str]] = None,
131
+ location: Optional[pulumi.Input[str]] = None,
132
+ name: Optional[pulumi.Input[str]] = None,
133
+ pubsub_topic: Optional[pulumi.Input[str]] = None,
134
+ service_account: Optional[pulumi.Input[str]] = None,
135
+ streaming_config: Optional[pulumi.Input['V2FolderNotificationConfigStreamingConfigArgs']] = None):
136
+ """
137
+ Input properties used for looking up and filtering V2FolderNotificationConfig resources.
138
+ :param pulumi.Input[str] config_id: This must be unique within the organization.
139
+ :param pulumi.Input[str] description: The description of the notification config (max of 1024 characters).
140
+ :param pulumi.Input[str] folder: Numerical ID of the parent folder.
141
+ :param pulumi.Input[str] location: Location ID of the parent organization. If not provided, 'global' will be used as the default location.
142
+ :param pulumi.Input[str] name: The resource name of this notification config, in the format
143
+ `folders/{{folder}}/locations/{{location}}/notificationConfigs/{{config_id}}`.
144
+ :param pulumi.Input[str] pubsub_topic: The Pub/Sub topic to send notifications to. Its format is
145
+ "projects/[project_id]/topics/[topic]".
146
+ :param pulumi.Input[str] service_account: The service account that needs "pubsub.topics.publish" permission to
147
+ publish to the Pub/Sub topic.
148
+ :param pulumi.Input['V2FolderNotificationConfigStreamingConfigArgs'] streaming_config: The config for triggering streaming-based notifications.
149
+ Structure is documented below.
150
+ """
151
+ if config_id is not None:
152
+ pulumi.set(__self__, "config_id", config_id)
153
+ if description is not None:
154
+ pulumi.set(__self__, "description", description)
155
+ if folder is not None:
156
+ pulumi.set(__self__, "folder", folder)
157
+ if location is not None:
158
+ pulumi.set(__self__, "location", location)
159
+ if name is not None:
160
+ pulumi.set(__self__, "name", name)
161
+ if pubsub_topic is not None:
162
+ pulumi.set(__self__, "pubsub_topic", pubsub_topic)
163
+ if service_account is not None:
164
+ pulumi.set(__self__, "service_account", service_account)
165
+ if streaming_config is not None:
166
+ pulumi.set(__self__, "streaming_config", streaming_config)
167
+
168
+ @property
169
+ @pulumi.getter(name="configId")
170
+ def config_id(self) -> Optional[pulumi.Input[str]]:
171
+ """
172
+ This must be unique within the organization.
173
+ """
174
+ return pulumi.get(self, "config_id")
175
+
176
+ @config_id.setter
177
+ def config_id(self, value: Optional[pulumi.Input[str]]):
178
+ pulumi.set(self, "config_id", value)
179
+
180
+ @property
181
+ @pulumi.getter
182
+ def description(self) -> Optional[pulumi.Input[str]]:
183
+ """
184
+ The description of the notification config (max of 1024 characters).
185
+ """
186
+ return pulumi.get(self, "description")
187
+
188
+ @description.setter
189
+ def description(self, value: Optional[pulumi.Input[str]]):
190
+ pulumi.set(self, "description", value)
191
+
192
+ @property
193
+ @pulumi.getter
194
+ def folder(self) -> Optional[pulumi.Input[str]]:
195
+ """
196
+ Numerical ID of the parent folder.
197
+ """
198
+ return pulumi.get(self, "folder")
199
+
200
+ @folder.setter
201
+ def folder(self, value: Optional[pulumi.Input[str]]):
202
+ pulumi.set(self, "folder", value)
203
+
204
+ @property
205
+ @pulumi.getter
206
+ def location(self) -> Optional[pulumi.Input[str]]:
207
+ """
208
+ Location ID of the parent organization. If not provided, 'global' will be used as the default location.
209
+ """
210
+ return pulumi.get(self, "location")
211
+
212
+ @location.setter
213
+ def location(self, value: Optional[pulumi.Input[str]]):
214
+ pulumi.set(self, "location", value)
215
+
216
+ @property
217
+ @pulumi.getter
218
+ def name(self) -> Optional[pulumi.Input[str]]:
219
+ """
220
+ The resource name of this notification config, in the format
221
+ `folders/{{folder}}/locations/{{location}}/notificationConfigs/{{config_id}}`.
222
+ """
223
+ return pulumi.get(self, "name")
224
+
225
+ @name.setter
226
+ def name(self, value: Optional[pulumi.Input[str]]):
227
+ pulumi.set(self, "name", value)
228
+
229
+ @property
230
+ @pulumi.getter(name="pubsubTopic")
231
+ def pubsub_topic(self) -> Optional[pulumi.Input[str]]:
232
+ """
233
+ The Pub/Sub topic to send notifications to. Its format is
234
+ "projects/[project_id]/topics/[topic]".
235
+ """
236
+ return pulumi.get(self, "pubsub_topic")
237
+
238
+ @pubsub_topic.setter
239
+ def pubsub_topic(self, value: Optional[pulumi.Input[str]]):
240
+ pulumi.set(self, "pubsub_topic", value)
241
+
242
+ @property
243
+ @pulumi.getter(name="serviceAccount")
244
+ def service_account(self) -> Optional[pulumi.Input[str]]:
245
+ """
246
+ The service account that needs "pubsub.topics.publish" permission to
247
+ publish to the Pub/Sub topic.
248
+ """
249
+ return pulumi.get(self, "service_account")
250
+
251
+ @service_account.setter
252
+ def service_account(self, value: Optional[pulumi.Input[str]]):
253
+ pulumi.set(self, "service_account", value)
254
+
255
+ @property
256
+ @pulumi.getter(name="streamingConfig")
257
+ def streaming_config(self) -> Optional[pulumi.Input['V2FolderNotificationConfigStreamingConfigArgs']]:
258
+ """
259
+ The config for triggering streaming-based notifications.
260
+ Structure is documented below.
261
+ """
262
+ return pulumi.get(self, "streaming_config")
263
+
264
+ @streaming_config.setter
265
+ def streaming_config(self, value: Optional[pulumi.Input['V2FolderNotificationConfigStreamingConfigArgs']]):
266
+ pulumi.set(self, "streaming_config", value)
267
+
268
+
269
+ class V2FolderNotificationConfig(pulumi.CustomResource):
270
+ @overload
271
+ def __init__(__self__,
272
+ resource_name: str,
273
+ opts: Optional[pulumi.ResourceOptions] = None,
274
+ config_id: Optional[pulumi.Input[str]] = None,
275
+ description: Optional[pulumi.Input[str]] = None,
276
+ folder: Optional[pulumi.Input[str]] = None,
277
+ location: Optional[pulumi.Input[str]] = None,
278
+ pubsub_topic: Optional[pulumi.Input[str]] = None,
279
+ streaming_config: Optional[pulumi.Input[Union['V2FolderNotificationConfigStreamingConfigArgs', 'V2FolderNotificationConfigStreamingConfigArgsDict']]] = None,
280
+ __props__=None):
281
+ """
282
+ A Cloud Security Command Center (Cloud SCC) notification configs. A
283
+ notification config is a Cloud SCC resource that contains the
284
+ configuration to send notifications for create/update events of
285
+ findings, assets and etc.
286
+ > **Note:** In order to use Cloud SCC resources, your organization must be enrolled
287
+ in [SCC Standard/Premium](https://cloud.google.com/security-command-center/docs/quickstart-security-command-center).
288
+ Without doing so, you may run into errors during resource creation.
289
+
290
+ To get more information about FolderNotificationConfig, see:
291
+
292
+ * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/folders.locations.notificationConfigs)
293
+ * How-to Guides
294
+ * [Official Documentation](https://cloud.google.com/security-command-center/docs)
295
+
296
+ ## Example Usage
297
+
298
+ ### Scc V2 Folder Notification Config Basic
299
+
300
+ ```python
301
+ import pulumi
302
+ import pulumi_gcp as gcp
303
+
304
+ folder = gcp.organizations.Folder("folder",
305
+ parent="organizations/123456789",
306
+ display_name="folder-name")
307
+ scc_v2_folder_notification_config = gcp.pubsub.Topic("scc_v2_folder_notification_config", name="my-topic")
308
+ custom_notification_config = gcp.securitycenter.V2FolderNotificationConfig("custom_notification_config",
309
+ config_id="my-config",
310
+ folder=folder.folder_id,
311
+ location="global",
312
+ description="My custom Cloud Security Command Center Finding Notification Configuration",
313
+ pubsub_topic=scc_v2_folder_notification_config.id,
314
+ streaming_config={
315
+ "filter": "category = \\"OPEN_FIREWALL\\" AND state = \\"ACTIVE\\"",
316
+ })
317
+ ```
318
+
319
+ ## Import
320
+
321
+ FolderNotificationConfig can be imported using any of these accepted formats:
322
+
323
+ * `folders/{{folder}}/locations/{{location}}/notificationConfigs/{{config_id}}`
324
+
325
+ * `{{folder}}/{{location}}/{{config_id}}`
326
+
327
+ When using the `pulumi import` command, FolderNotificationConfig can be imported using one of the formats above. For example:
328
+
329
+ ```sh
330
+ $ pulumi import gcp:securitycenter/v2FolderNotificationConfig:V2FolderNotificationConfig default folders/{{folder}}/locations/{{location}}/notificationConfigs/{{config_id}}
331
+ ```
332
+
333
+ ```sh
334
+ $ pulumi import gcp:securitycenter/v2FolderNotificationConfig:V2FolderNotificationConfig default {{folder}}/{{location}}/{{config_id}}
335
+ ```
336
+
337
+ :param str resource_name: The name of the resource.
338
+ :param pulumi.ResourceOptions opts: Options for the resource.
339
+ :param pulumi.Input[str] config_id: This must be unique within the organization.
340
+ :param pulumi.Input[str] description: The description of the notification config (max of 1024 characters).
341
+ :param pulumi.Input[str] folder: Numerical ID of the parent folder.
342
+ :param pulumi.Input[str] location: Location ID of the parent organization. If not provided, 'global' will be used as the default location.
343
+ :param pulumi.Input[str] pubsub_topic: The Pub/Sub topic to send notifications to. Its format is
344
+ "projects/[project_id]/topics/[topic]".
345
+ :param pulumi.Input[Union['V2FolderNotificationConfigStreamingConfigArgs', 'V2FolderNotificationConfigStreamingConfigArgsDict']] streaming_config: The config for triggering streaming-based notifications.
346
+ Structure is documented below.
347
+ """
348
+ ...
349
+ @overload
350
+ def __init__(__self__,
351
+ resource_name: str,
352
+ args: V2FolderNotificationConfigArgs,
353
+ opts: Optional[pulumi.ResourceOptions] = None):
354
+ """
355
+ A Cloud Security Command Center (Cloud SCC) notification configs. A
356
+ notification config is a Cloud SCC resource that contains the
357
+ configuration to send notifications for create/update events of
358
+ findings, assets and etc.
359
+ > **Note:** In order to use Cloud SCC resources, your organization must be enrolled
360
+ in [SCC Standard/Premium](https://cloud.google.com/security-command-center/docs/quickstart-security-command-center).
361
+ Without doing so, you may run into errors during resource creation.
362
+
363
+ To get more information about FolderNotificationConfig, see:
364
+
365
+ * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/folders.locations.notificationConfigs)
366
+ * How-to Guides
367
+ * [Official Documentation](https://cloud.google.com/security-command-center/docs)
368
+
369
+ ## Example Usage
370
+
371
+ ### Scc V2 Folder Notification Config Basic
372
+
373
+ ```python
374
+ import pulumi
375
+ import pulumi_gcp as gcp
376
+
377
+ folder = gcp.organizations.Folder("folder",
378
+ parent="organizations/123456789",
379
+ display_name="folder-name")
380
+ scc_v2_folder_notification_config = gcp.pubsub.Topic("scc_v2_folder_notification_config", name="my-topic")
381
+ custom_notification_config = gcp.securitycenter.V2FolderNotificationConfig("custom_notification_config",
382
+ config_id="my-config",
383
+ folder=folder.folder_id,
384
+ location="global",
385
+ description="My custom Cloud Security Command Center Finding Notification Configuration",
386
+ pubsub_topic=scc_v2_folder_notification_config.id,
387
+ streaming_config={
388
+ "filter": "category = \\"OPEN_FIREWALL\\" AND state = \\"ACTIVE\\"",
389
+ })
390
+ ```
391
+
392
+ ## Import
393
+
394
+ FolderNotificationConfig can be imported using any of these accepted formats:
395
+
396
+ * `folders/{{folder}}/locations/{{location}}/notificationConfigs/{{config_id}}`
397
+
398
+ * `{{folder}}/{{location}}/{{config_id}}`
399
+
400
+ When using the `pulumi import` command, FolderNotificationConfig can be imported using one of the formats above. For example:
401
+
402
+ ```sh
403
+ $ pulumi import gcp:securitycenter/v2FolderNotificationConfig:V2FolderNotificationConfig default folders/{{folder}}/locations/{{location}}/notificationConfigs/{{config_id}}
404
+ ```
405
+
406
+ ```sh
407
+ $ pulumi import gcp:securitycenter/v2FolderNotificationConfig:V2FolderNotificationConfig default {{folder}}/{{location}}/{{config_id}}
408
+ ```
409
+
410
+ :param str resource_name: The name of the resource.
411
+ :param V2FolderNotificationConfigArgs args: The arguments to use to populate this resource's properties.
412
+ :param pulumi.ResourceOptions opts: Options for the resource.
413
+ """
414
+ ...
415
+ def __init__(__self__, resource_name: str, *args, **kwargs):
416
+ resource_args, opts = _utilities.get_resource_args_opts(V2FolderNotificationConfigArgs, pulumi.ResourceOptions, *args, **kwargs)
417
+ if resource_args is not None:
418
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
419
+ else:
420
+ __self__._internal_init(resource_name, *args, **kwargs)
421
+
422
+ def _internal_init(__self__,
423
+ resource_name: str,
424
+ opts: Optional[pulumi.ResourceOptions] = None,
425
+ config_id: Optional[pulumi.Input[str]] = None,
426
+ description: Optional[pulumi.Input[str]] = None,
427
+ folder: Optional[pulumi.Input[str]] = None,
428
+ location: Optional[pulumi.Input[str]] = None,
429
+ pubsub_topic: Optional[pulumi.Input[str]] = None,
430
+ streaming_config: Optional[pulumi.Input[Union['V2FolderNotificationConfigStreamingConfigArgs', 'V2FolderNotificationConfigStreamingConfigArgsDict']]] = None,
431
+ __props__=None):
432
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
433
+ if not isinstance(opts, pulumi.ResourceOptions):
434
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
435
+ if opts.id is None:
436
+ if __props__ is not None:
437
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
438
+ __props__ = V2FolderNotificationConfigArgs.__new__(V2FolderNotificationConfigArgs)
439
+
440
+ if config_id is None and not opts.urn:
441
+ raise TypeError("Missing required property 'config_id'")
442
+ __props__.__dict__["config_id"] = config_id
443
+ __props__.__dict__["description"] = description
444
+ if folder is None and not opts.urn:
445
+ raise TypeError("Missing required property 'folder'")
446
+ __props__.__dict__["folder"] = folder
447
+ __props__.__dict__["location"] = location
448
+ if pubsub_topic is None and not opts.urn:
449
+ raise TypeError("Missing required property 'pubsub_topic'")
450
+ __props__.__dict__["pubsub_topic"] = pubsub_topic
451
+ if streaming_config is None and not opts.urn:
452
+ raise TypeError("Missing required property 'streaming_config'")
453
+ __props__.__dict__["streaming_config"] = streaming_config
454
+ __props__.__dict__["name"] = None
455
+ __props__.__dict__["service_account"] = None
456
+ super(V2FolderNotificationConfig, __self__).__init__(
457
+ 'gcp:securitycenter/v2FolderNotificationConfig:V2FolderNotificationConfig',
458
+ resource_name,
459
+ __props__,
460
+ opts)
461
+
462
+ @staticmethod
463
+ def get(resource_name: str,
464
+ id: pulumi.Input[str],
465
+ opts: Optional[pulumi.ResourceOptions] = None,
466
+ config_id: Optional[pulumi.Input[str]] = None,
467
+ description: Optional[pulumi.Input[str]] = None,
468
+ folder: Optional[pulumi.Input[str]] = None,
469
+ location: Optional[pulumi.Input[str]] = None,
470
+ name: Optional[pulumi.Input[str]] = None,
471
+ pubsub_topic: Optional[pulumi.Input[str]] = None,
472
+ service_account: Optional[pulumi.Input[str]] = None,
473
+ streaming_config: Optional[pulumi.Input[Union['V2FolderNotificationConfigStreamingConfigArgs', 'V2FolderNotificationConfigStreamingConfigArgsDict']]] = None) -> 'V2FolderNotificationConfig':
474
+ """
475
+ Get an existing V2FolderNotificationConfig resource's state with the given name, id, and optional extra
476
+ properties used to qualify the lookup.
477
+
478
+ :param str resource_name: The unique name of the resulting resource.
479
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
480
+ :param pulumi.ResourceOptions opts: Options for the resource.
481
+ :param pulumi.Input[str] config_id: This must be unique within the organization.
482
+ :param pulumi.Input[str] description: The description of the notification config (max of 1024 characters).
483
+ :param pulumi.Input[str] folder: Numerical ID of the parent folder.
484
+ :param pulumi.Input[str] location: Location ID of the parent organization. If not provided, 'global' will be used as the default location.
485
+ :param pulumi.Input[str] name: The resource name of this notification config, in the format
486
+ `folders/{{folder}}/locations/{{location}}/notificationConfigs/{{config_id}}`.
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['V2FolderNotificationConfigStreamingConfigArgs', 'V2FolderNotificationConfigStreamingConfigArgsDict']] 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__ = _V2FolderNotificationConfigState.__new__(_V2FolderNotificationConfigState)
497
+
498
+ __props__.__dict__["config_id"] = config_id
499
+ __props__.__dict__["description"] = description
500
+ __props__.__dict__["folder"] = folder
501
+ __props__.__dict__["location"] = location
502
+ __props__.__dict__["name"] = name
503
+ __props__.__dict__["pubsub_topic"] = pubsub_topic
504
+ __props__.__dict__["service_account"] = service_account
505
+ __props__.__dict__["streaming_config"] = streaming_config
506
+ return V2FolderNotificationConfig(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 folder(self) -> pulumi.Output[str]:
527
+ """
528
+ Numerical ID of the parent folder.
529
+ """
530
+ return pulumi.get(self, "folder")
531
+
532
+ @property
533
+ @pulumi.getter
534
+ def location(self) -> pulumi.Output[Optional[str]]:
535
+ """
536
+ Location ID of the parent organization. If not provided, 'global' will be used as the default location.
537
+ """
538
+ return pulumi.get(self, "location")
539
+
540
+ @property
541
+ @pulumi.getter
542
+ def name(self) -> pulumi.Output[str]:
543
+ """
544
+ The resource name of this notification config, in the format
545
+ `folders/{{folder}}/locations/{{location}}/notificationConfigs/{{config_id}}`.
546
+ """
547
+ return pulumi.get(self, "name")
548
+
549
+ @property
550
+ @pulumi.getter(name="pubsubTopic")
551
+ def pubsub_topic(self) -> pulumi.Output[str]:
552
+ """
553
+ The Pub/Sub topic to send notifications to. Its format is
554
+ "projects/[project_id]/topics/[topic]".
555
+ """
556
+ return pulumi.get(self, "pubsub_topic")
557
+
558
+ @property
559
+ @pulumi.getter(name="serviceAccount")
560
+ def service_account(self) -> pulumi.Output[str]:
561
+ """
562
+ The service account that needs "pubsub.topics.publish" permission to
563
+ publish to the Pub/Sub topic.
564
+ """
565
+ return pulumi.get(self, "service_account")
566
+
567
+ @property
568
+ @pulumi.getter(name="streamingConfig")
569
+ def streaming_config(self) -> pulumi.Output['outputs.V2FolderNotificationConfigStreamingConfig']:
570
+ """
571
+ The config for triggering streaming-based notifications.
572
+ Structure is documented below.
573
+ """
574
+ return pulumi.get(self, "streaming_config")
575
+