pulumi-gcp 7.38.0a1724479203__py3-none-any.whl → 7.39.0a1724911478__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 (46) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/appengine/flexible_app_version.py +8 -0
  3. pulumi_gcp/applicationintegration/client.py +2 -2
  4. pulumi_gcp/artifactregistry/__init__.py +1 -0
  5. pulumi_gcp/artifactregistry/get_locations.py +167 -0
  6. pulumi_gcp/bigquery/connection.py +12 -0
  7. pulumi_gcp/clouddeploy/_inputs.py +41 -1
  8. pulumi_gcp/clouddeploy/outputs.py +29 -1
  9. pulumi_gcp/cloudfunctionsv2/function.py +2 -0
  10. pulumi_gcp/cloudidentity/__init__.py +1 -0
  11. pulumi_gcp/cloudidentity/get_group_memberships.py +12 -0
  12. pulumi_gcp/cloudidentity/get_group_transitive_memberships.py +93 -0
  13. pulumi_gcp/cloudidentity/outputs.py +131 -0
  14. pulumi_gcp/compute/_inputs.py +36 -30
  15. pulumi_gcp/compute/outputs.py +48 -38
  16. pulumi_gcp/compute/region_network_endpoint_group.py +8 -0
  17. pulumi_gcp/compute/subnetwork.py +82 -0
  18. pulumi_gcp/container/_inputs.py +15 -18
  19. pulumi_gcp/container/attached_cluster.py +14 -7
  20. pulumi_gcp/container/outputs.py +10 -12
  21. pulumi_gcp/discoveryengine/__init__.py +1 -0
  22. pulumi_gcp/discoveryengine/schema.py +524 -0
  23. pulumi_gcp/dns/_inputs.py +80 -76
  24. pulumi_gcp/dns/outputs.py +56 -52
  25. pulumi_gcp/managedkafka/_inputs.py +6 -6
  26. pulumi_gcp/managedkafka/cluster.py +7 -7
  27. pulumi_gcp/managedkafka/outputs.py +4 -4
  28. pulumi_gcp/managedkafka/topic.py +7 -7
  29. pulumi_gcp/parallelstore/instance.py +215 -15
  30. pulumi_gcp/pulumi-plugin.json +1 -1
  31. pulumi_gcp/securitycenter/__init__.py +2 -0
  32. pulumi_gcp/securitycenter/_inputs.py +186 -0
  33. pulumi_gcp/securitycenter/folder_notification_config.py +486 -0
  34. pulumi_gcp/securitycenter/outputs.py +118 -0
  35. pulumi_gcp/securitycenter/v2_folder_notification_config.py +575 -0
  36. pulumi_gcp/servicenetworking/connection.py +50 -3
  37. pulumi_gcp/sql/_inputs.py +20 -0
  38. pulumi_gcp/sql/outputs.py +36 -0
  39. pulumi_gcp/vertex/__init__.py +1 -0
  40. pulumi_gcp/vertex/_inputs.py +438 -0
  41. pulumi_gcp/vertex/ai_index_endpoint_deployed_index.py +1170 -0
  42. pulumi_gcp/vertex/outputs.py +393 -0
  43. {pulumi_gcp-7.38.0a1724479203.dist-info → pulumi_gcp-7.39.0a1724911478.dist-info}/METADATA +1 -1
  44. {pulumi_gcp-7.38.0a1724479203.dist-info → pulumi_gcp-7.39.0a1724911478.dist-info}/RECORD +46 -40
  45. {pulumi_gcp-7.38.0a1724479203.dist-info → pulumi_gcp-7.39.0a1724911478.dist-info}/WHEEL +1 -1
  46. {pulumi_gcp-7.38.0a1724479203.dist-info → pulumi_gcp-7.39.0a1724911478.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,486 @@
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__ = ['FolderNotificationConfigArgs', 'FolderNotificationConfig']
20
+
21
+ @pulumi.input_type
22
+ class FolderNotificationConfigArgs:
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['FolderNotificationConfigStreamingConfigArgs'],
28
+ description: Optional[pulumi.Input[str]] = None):
29
+ """
30
+ The set of arguments for constructing a FolderNotificationConfig resource.
31
+ :param pulumi.Input[str] config_id: This must be unique within the organization.
32
+ :param pulumi.Input[str] folder: Numerical ID of the parent folder.
33
+ :param pulumi.Input[str] pubsub_topic: The Pub/Sub topic to send notifications to. Its format is
34
+ "projects/[project_id]/topics/[topic]".
35
+ :param pulumi.Input['FolderNotificationConfigStreamingConfigArgs'] streaming_config: The config for triggering streaming-based notifications.
36
+ Structure is documented below.
37
+ :param pulumi.Input[str] description: The description of the notification config (max of 1024 characters).
38
+ """
39
+ pulumi.set(__self__, "config_id", config_id)
40
+ pulumi.set(__self__, "folder", folder)
41
+ pulumi.set(__self__, "pubsub_topic", pubsub_topic)
42
+ pulumi.set(__self__, "streaming_config", streaming_config)
43
+ if description is not None:
44
+ pulumi.set(__self__, "description", description)
45
+
46
+ @property
47
+ @pulumi.getter(name="configId")
48
+ def config_id(self) -> pulumi.Input[str]:
49
+ """
50
+ This must be unique within the organization.
51
+ """
52
+ return pulumi.get(self, "config_id")
53
+
54
+ @config_id.setter
55
+ def config_id(self, value: pulumi.Input[str]):
56
+ pulumi.set(self, "config_id", value)
57
+
58
+ @property
59
+ @pulumi.getter
60
+ def folder(self) -> pulumi.Input[str]:
61
+ """
62
+ Numerical ID of the parent folder.
63
+ """
64
+ return pulumi.get(self, "folder")
65
+
66
+ @folder.setter
67
+ def folder(self, value: pulumi.Input[str]):
68
+ pulumi.set(self, "folder", value)
69
+
70
+ @property
71
+ @pulumi.getter(name="pubsubTopic")
72
+ def pubsub_topic(self) -> pulumi.Input[str]:
73
+ """
74
+ The Pub/Sub topic to send notifications to. Its format is
75
+ "projects/[project_id]/topics/[topic]".
76
+ """
77
+ return pulumi.get(self, "pubsub_topic")
78
+
79
+ @pubsub_topic.setter
80
+ def pubsub_topic(self, value: pulumi.Input[str]):
81
+ pulumi.set(self, "pubsub_topic", value)
82
+
83
+ @property
84
+ @pulumi.getter(name="streamingConfig")
85
+ def streaming_config(self) -> pulumi.Input['FolderNotificationConfigStreamingConfigArgs']:
86
+ """
87
+ The config for triggering streaming-based notifications.
88
+ Structure is documented below.
89
+ """
90
+ return pulumi.get(self, "streaming_config")
91
+
92
+ @streaming_config.setter
93
+ def streaming_config(self, value: pulumi.Input['FolderNotificationConfigStreamingConfigArgs']):
94
+ pulumi.set(self, "streaming_config", value)
95
+
96
+ @property
97
+ @pulumi.getter
98
+ def description(self) -> Optional[pulumi.Input[str]]:
99
+ """
100
+ The description of the notification config (max of 1024 characters).
101
+ """
102
+ return pulumi.get(self, "description")
103
+
104
+ @description.setter
105
+ def description(self, value: Optional[pulumi.Input[str]]):
106
+ pulumi.set(self, "description", value)
107
+
108
+
109
+ @pulumi.input_type
110
+ class _FolderNotificationConfigState:
111
+ def __init__(__self__, *,
112
+ config_id: Optional[pulumi.Input[str]] = None,
113
+ description: Optional[pulumi.Input[str]] = None,
114
+ folder: Optional[pulumi.Input[str]] = None,
115
+ name: Optional[pulumi.Input[str]] = None,
116
+ pubsub_topic: Optional[pulumi.Input[str]] = None,
117
+ service_account: Optional[pulumi.Input[str]] = None,
118
+ streaming_config: Optional[pulumi.Input['FolderNotificationConfigStreamingConfigArgs']] = None):
119
+ """
120
+ Input properties used for looking up and filtering FolderNotificationConfig resources.
121
+ :param pulumi.Input[str] config_id: This must be unique within the organization.
122
+ :param pulumi.Input[str] description: The description of the notification config (max of 1024 characters).
123
+ :param pulumi.Input[str] folder: Numerical ID of the parent folder.
124
+ :param pulumi.Input[str] name: The resource name of this notification config, in the format
125
+ `folders/{{folder}}/notificationConfigs/{{config_id}}`.
126
+ :param pulumi.Input[str] pubsub_topic: The Pub/Sub topic to send notifications to. Its format is
127
+ "projects/[project_id]/topics/[topic]".
128
+ :param pulumi.Input[str] service_account: The service account that needs "pubsub.topics.publish" permission to
129
+ publish to the Pub/Sub topic.
130
+ :param pulumi.Input['FolderNotificationConfigStreamingConfigArgs'] streaming_config: The config for triggering streaming-based notifications.
131
+ Structure is documented below.
132
+ """
133
+ if config_id is not None:
134
+ pulumi.set(__self__, "config_id", config_id)
135
+ if description is not None:
136
+ pulumi.set(__self__, "description", description)
137
+ if folder is not None:
138
+ pulumi.set(__self__, "folder", folder)
139
+ if name is not None:
140
+ pulumi.set(__self__, "name", name)
141
+ if pubsub_topic is not None:
142
+ pulumi.set(__self__, "pubsub_topic", pubsub_topic)
143
+ if service_account is not None:
144
+ pulumi.set(__self__, "service_account", service_account)
145
+ if streaming_config is not None:
146
+ pulumi.set(__self__, "streaming_config", streaming_config)
147
+
148
+ @property
149
+ @pulumi.getter(name="configId")
150
+ def config_id(self) -> Optional[pulumi.Input[str]]:
151
+ """
152
+ This must be unique within the organization.
153
+ """
154
+ return pulumi.get(self, "config_id")
155
+
156
+ @config_id.setter
157
+ def config_id(self, value: Optional[pulumi.Input[str]]):
158
+ pulumi.set(self, "config_id", value)
159
+
160
+ @property
161
+ @pulumi.getter
162
+ def description(self) -> Optional[pulumi.Input[str]]:
163
+ """
164
+ The description of the notification config (max of 1024 characters).
165
+ """
166
+ return pulumi.get(self, "description")
167
+
168
+ @description.setter
169
+ def description(self, value: Optional[pulumi.Input[str]]):
170
+ pulumi.set(self, "description", value)
171
+
172
+ @property
173
+ @pulumi.getter
174
+ def folder(self) -> Optional[pulumi.Input[str]]:
175
+ """
176
+ Numerical ID of the parent folder.
177
+ """
178
+ return pulumi.get(self, "folder")
179
+
180
+ @folder.setter
181
+ def folder(self, value: Optional[pulumi.Input[str]]):
182
+ pulumi.set(self, "folder", value)
183
+
184
+ @property
185
+ @pulumi.getter
186
+ def name(self) -> Optional[pulumi.Input[str]]:
187
+ """
188
+ The resource name of this notification config, in the format
189
+ `folders/{{folder}}/notificationConfigs/{{config_id}}`.
190
+ """
191
+ return pulumi.get(self, "name")
192
+
193
+ @name.setter
194
+ def name(self, value: Optional[pulumi.Input[str]]):
195
+ pulumi.set(self, "name", value)
196
+
197
+ @property
198
+ @pulumi.getter(name="pubsubTopic")
199
+ def pubsub_topic(self) -> Optional[pulumi.Input[str]]:
200
+ """
201
+ The Pub/Sub topic to send notifications to. Its format is
202
+ "projects/[project_id]/topics/[topic]".
203
+ """
204
+ return pulumi.get(self, "pubsub_topic")
205
+
206
+ @pubsub_topic.setter
207
+ def pubsub_topic(self, value: Optional[pulumi.Input[str]]):
208
+ pulumi.set(self, "pubsub_topic", value)
209
+
210
+ @property
211
+ @pulumi.getter(name="serviceAccount")
212
+ def service_account(self) -> Optional[pulumi.Input[str]]:
213
+ """
214
+ The service account that needs "pubsub.topics.publish" permission to
215
+ publish to the Pub/Sub topic.
216
+ """
217
+ return pulumi.get(self, "service_account")
218
+
219
+ @service_account.setter
220
+ def service_account(self, value: Optional[pulumi.Input[str]]):
221
+ pulumi.set(self, "service_account", value)
222
+
223
+ @property
224
+ @pulumi.getter(name="streamingConfig")
225
+ def streaming_config(self) -> Optional[pulumi.Input['FolderNotificationConfigStreamingConfigArgs']]:
226
+ """
227
+ The config for triggering streaming-based notifications.
228
+ Structure is documented below.
229
+ """
230
+ return pulumi.get(self, "streaming_config")
231
+
232
+ @streaming_config.setter
233
+ def streaming_config(self, value: Optional[pulumi.Input['FolderNotificationConfigStreamingConfigArgs']]):
234
+ pulumi.set(self, "streaming_config", value)
235
+
236
+
237
+ class FolderNotificationConfig(pulumi.CustomResource):
238
+ @overload
239
+ def __init__(__self__,
240
+ resource_name: str,
241
+ opts: Optional[pulumi.ResourceOptions] = None,
242
+ config_id: Optional[pulumi.Input[str]] = None,
243
+ description: Optional[pulumi.Input[str]] = None,
244
+ folder: Optional[pulumi.Input[str]] = None,
245
+ pubsub_topic: Optional[pulumi.Input[str]] = None,
246
+ streaming_config: Optional[pulumi.Input[Union['FolderNotificationConfigStreamingConfigArgs', 'FolderNotificationConfigStreamingConfigArgsDict']]] = None,
247
+ __props__=None):
248
+ """
249
+ A Cloud Security Command Center (Cloud SCC) notification configs. A
250
+ notification config is a Cloud SCC resource that contains the
251
+ configuration to send notifications for create/update events of
252
+ findings, assets and etc.
253
+ > **Note:** In order to use Cloud SCC resources, your organization must be enrolled
254
+ in [SCC Standard/Premium](https://cloud.google.com/security-command-center/docs/quickstart-security-command-center).
255
+ Without doing so, you may run into errors during resource creation.
256
+
257
+ To get more information about FolderNotificationConfig, see:
258
+
259
+ * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v1/folders.notificationConfigs)
260
+ * How-to Guides
261
+ * [Official Documentation](https://cloud.google.com/security-command-center/docs)
262
+
263
+ ## Example Usage
264
+
265
+ ## Import
266
+
267
+ FolderNotificationConfig can be imported using any of these accepted formats:
268
+
269
+ * `folders/{{folder}}/notificationConfigs/{{config_id}}`
270
+
271
+ * `{{folder}}/{{config_id}}`
272
+
273
+ When using the `pulumi import` command, FolderNotificationConfig can be imported using one of the formats above. For example:
274
+
275
+ ```sh
276
+ $ pulumi import gcp:securitycenter/folderNotificationConfig:FolderNotificationConfig default folders/{{folder}}/notificationConfigs/{{config_id}}
277
+ ```
278
+
279
+ ```sh
280
+ $ pulumi import gcp:securitycenter/folderNotificationConfig:FolderNotificationConfig default {{folder}}/{{config_id}}
281
+ ```
282
+
283
+ :param str resource_name: The name of the resource.
284
+ :param pulumi.ResourceOptions opts: Options for the resource.
285
+ :param pulumi.Input[str] config_id: This must be unique within the organization.
286
+ :param pulumi.Input[str] description: The description of the notification config (max of 1024 characters).
287
+ :param pulumi.Input[str] folder: Numerical ID of the parent folder.
288
+ :param pulumi.Input[str] pubsub_topic: The Pub/Sub topic to send notifications to. Its format is
289
+ "projects/[project_id]/topics/[topic]".
290
+ :param pulumi.Input[Union['FolderNotificationConfigStreamingConfigArgs', 'FolderNotificationConfigStreamingConfigArgsDict']] streaming_config: The config for triggering streaming-based notifications.
291
+ Structure is documented below.
292
+ """
293
+ ...
294
+ @overload
295
+ def __init__(__self__,
296
+ resource_name: str,
297
+ args: FolderNotificationConfigArgs,
298
+ opts: Optional[pulumi.ResourceOptions] = None):
299
+ """
300
+ A Cloud Security Command Center (Cloud SCC) notification configs. A
301
+ notification config is a Cloud SCC resource that contains the
302
+ configuration to send notifications for create/update events of
303
+ findings, assets and etc.
304
+ > **Note:** In order to use Cloud SCC resources, your organization must be enrolled
305
+ in [SCC Standard/Premium](https://cloud.google.com/security-command-center/docs/quickstart-security-command-center).
306
+ Without doing so, you may run into errors during resource creation.
307
+
308
+ To get more information about FolderNotificationConfig, see:
309
+
310
+ * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v1/folders.notificationConfigs)
311
+ * How-to Guides
312
+ * [Official Documentation](https://cloud.google.com/security-command-center/docs)
313
+
314
+ ## Example Usage
315
+
316
+ ## Import
317
+
318
+ FolderNotificationConfig can be imported using any of these accepted formats:
319
+
320
+ * `folders/{{folder}}/notificationConfigs/{{config_id}}`
321
+
322
+ * `{{folder}}/{{config_id}}`
323
+
324
+ When using the `pulumi import` command, FolderNotificationConfig can be imported using one of the formats above. For example:
325
+
326
+ ```sh
327
+ $ pulumi import gcp:securitycenter/folderNotificationConfig:FolderNotificationConfig default folders/{{folder}}/notificationConfigs/{{config_id}}
328
+ ```
329
+
330
+ ```sh
331
+ $ pulumi import gcp:securitycenter/folderNotificationConfig:FolderNotificationConfig default {{folder}}/{{config_id}}
332
+ ```
333
+
334
+ :param str resource_name: The name of the resource.
335
+ :param FolderNotificationConfigArgs args: The arguments to use to populate this resource's properties.
336
+ :param pulumi.ResourceOptions opts: Options for the resource.
337
+ """
338
+ ...
339
+ def __init__(__self__, resource_name: str, *args, **kwargs):
340
+ resource_args, opts = _utilities.get_resource_args_opts(FolderNotificationConfigArgs, pulumi.ResourceOptions, *args, **kwargs)
341
+ if resource_args is not None:
342
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
343
+ else:
344
+ __self__._internal_init(resource_name, *args, **kwargs)
345
+
346
+ def _internal_init(__self__,
347
+ resource_name: str,
348
+ opts: Optional[pulumi.ResourceOptions] = None,
349
+ config_id: Optional[pulumi.Input[str]] = None,
350
+ description: Optional[pulumi.Input[str]] = None,
351
+ folder: Optional[pulumi.Input[str]] = None,
352
+ pubsub_topic: Optional[pulumi.Input[str]] = None,
353
+ streaming_config: Optional[pulumi.Input[Union['FolderNotificationConfigStreamingConfigArgs', 'FolderNotificationConfigStreamingConfigArgsDict']]] = None,
354
+ __props__=None):
355
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
356
+ if not isinstance(opts, pulumi.ResourceOptions):
357
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
358
+ if opts.id is None:
359
+ if __props__ is not None:
360
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
361
+ __props__ = FolderNotificationConfigArgs.__new__(FolderNotificationConfigArgs)
362
+
363
+ if config_id is None and not opts.urn:
364
+ raise TypeError("Missing required property 'config_id'")
365
+ __props__.__dict__["config_id"] = config_id
366
+ __props__.__dict__["description"] = description
367
+ if folder is None and not opts.urn:
368
+ raise TypeError("Missing required property 'folder'")
369
+ __props__.__dict__["folder"] = folder
370
+ if pubsub_topic is None and not opts.urn:
371
+ raise TypeError("Missing required property 'pubsub_topic'")
372
+ __props__.__dict__["pubsub_topic"] = pubsub_topic
373
+ if streaming_config is None and not opts.urn:
374
+ raise TypeError("Missing required property 'streaming_config'")
375
+ __props__.__dict__["streaming_config"] = streaming_config
376
+ __props__.__dict__["name"] = None
377
+ __props__.__dict__["service_account"] = None
378
+ super(FolderNotificationConfig, __self__).__init__(
379
+ 'gcp:securitycenter/folderNotificationConfig:FolderNotificationConfig',
380
+ resource_name,
381
+ __props__,
382
+ opts)
383
+
384
+ @staticmethod
385
+ def get(resource_name: str,
386
+ id: pulumi.Input[str],
387
+ opts: Optional[pulumi.ResourceOptions] = None,
388
+ config_id: Optional[pulumi.Input[str]] = None,
389
+ description: Optional[pulumi.Input[str]] = None,
390
+ folder: Optional[pulumi.Input[str]] = None,
391
+ name: Optional[pulumi.Input[str]] = None,
392
+ pubsub_topic: Optional[pulumi.Input[str]] = None,
393
+ service_account: Optional[pulumi.Input[str]] = None,
394
+ streaming_config: Optional[pulumi.Input[Union['FolderNotificationConfigStreamingConfigArgs', 'FolderNotificationConfigStreamingConfigArgsDict']]] = None) -> 'FolderNotificationConfig':
395
+ """
396
+ Get an existing FolderNotificationConfig resource's state with the given name, id, and optional extra
397
+ properties used to qualify the lookup.
398
+
399
+ :param str resource_name: The unique name of the resulting resource.
400
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
401
+ :param pulumi.ResourceOptions opts: Options for the resource.
402
+ :param pulumi.Input[str] config_id: This must be unique within the organization.
403
+ :param pulumi.Input[str] description: The description of the notification config (max of 1024 characters).
404
+ :param pulumi.Input[str] folder: Numerical ID of the parent folder.
405
+ :param pulumi.Input[str] name: The resource name of this notification config, in the format
406
+ `folders/{{folder}}/notificationConfigs/{{config_id}}`.
407
+ :param pulumi.Input[str] pubsub_topic: The Pub/Sub topic to send notifications to. Its format is
408
+ "projects/[project_id]/topics/[topic]".
409
+ :param pulumi.Input[str] service_account: The service account that needs "pubsub.topics.publish" permission to
410
+ publish to the Pub/Sub topic.
411
+ :param pulumi.Input[Union['FolderNotificationConfigStreamingConfigArgs', 'FolderNotificationConfigStreamingConfigArgsDict']] streaming_config: The config for triggering streaming-based notifications.
412
+ Structure is documented below.
413
+ """
414
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
415
+
416
+ __props__ = _FolderNotificationConfigState.__new__(_FolderNotificationConfigState)
417
+
418
+ __props__.__dict__["config_id"] = config_id
419
+ __props__.__dict__["description"] = description
420
+ __props__.__dict__["folder"] = folder
421
+ __props__.__dict__["name"] = name
422
+ __props__.__dict__["pubsub_topic"] = pubsub_topic
423
+ __props__.__dict__["service_account"] = service_account
424
+ __props__.__dict__["streaming_config"] = streaming_config
425
+ return FolderNotificationConfig(resource_name, opts=opts, __props__=__props__)
426
+
427
+ @property
428
+ @pulumi.getter(name="configId")
429
+ def config_id(self) -> pulumi.Output[str]:
430
+ """
431
+ This must be unique within the organization.
432
+ """
433
+ return pulumi.get(self, "config_id")
434
+
435
+ @property
436
+ @pulumi.getter
437
+ def description(self) -> pulumi.Output[Optional[str]]:
438
+ """
439
+ The description of the notification config (max of 1024 characters).
440
+ """
441
+ return pulumi.get(self, "description")
442
+
443
+ @property
444
+ @pulumi.getter
445
+ def folder(self) -> pulumi.Output[str]:
446
+ """
447
+ Numerical ID of the parent folder.
448
+ """
449
+ return pulumi.get(self, "folder")
450
+
451
+ @property
452
+ @pulumi.getter
453
+ def name(self) -> pulumi.Output[str]:
454
+ """
455
+ The resource name of this notification config, in the format
456
+ `folders/{{folder}}/notificationConfigs/{{config_id}}`.
457
+ """
458
+ return pulumi.get(self, "name")
459
+
460
+ @property
461
+ @pulumi.getter(name="pubsubTopic")
462
+ def pubsub_topic(self) -> pulumi.Output[str]:
463
+ """
464
+ The Pub/Sub topic to send notifications to. Its format is
465
+ "projects/[project_id]/topics/[topic]".
466
+ """
467
+ return pulumi.get(self, "pubsub_topic")
468
+
469
+ @property
470
+ @pulumi.getter(name="serviceAccount")
471
+ def service_account(self) -> pulumi.Output[str]:
472
+ """
473
+ The service account that needs "pubsub.topics.publish" permission to
474
+ publish to the Pub/Sub topic.
475
+ """
476
+ return pulumi.get(self, "service_account")
477
+
478
+ @property
479
+ @pulumi.getter(name="streamingConfig")
480
+ def streaming_config(self) -> pulumi.Output['outputs.FolderNotificationConfigStreamingConfig']:
481
+ """
482
+ The config for triggering streaming-based notifications.
483
+ Structure is documented below.
484
+ """
485
+ return pulumi.get(self, "streaming_config")
486
+
@@ -22,6 +22,7 @@ __all__ = [
22
22
  'FolderCustomModuleCustomConfigCustomOutputPropertyValueExpression',
23
23
  'FolderCustomModuleCustomConfigPredicate',
24
24
  'FolderCustomModuleCustomConfigResourceSelector',
25
+ 'FolderNotificationConfigStreamingConfig',
25
26
  'InstanceIamBindingCondition',
26
27
  'InstanceIamMemberCondition',
27
28
  'ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfig',
@@ -58,6 +59,7 @@ __all__ = [
58
59
  'ProjectNotificationConfigStreamingConfig',
59
60
  'SourceIamBindingCondition',
60
61
  'SourceIamMemberCondition',
62
+ 'V2FolderNotificationConfigStreamingConfig',
61
63
  'V2OrganizationNotificationConfigStreamingConfig',
62
64
  'V2OrganizationSourceIamBindingCondition',
63
65
  'V2OrganizationSourceIamMemberCondition',
@@ -410,6 +412,64 @@ class FolderCustomModuleCustomConfigResourceSelector(dict):
410
412
  return pulumi.get(self, "resource_types")
411
413
 
412
414
 
415
+ @pulumi.output_type
416
+ class FolderNotificationConfigStreamingConfig(dict):
417
+ def __init__(__self__, *,
418
+ filter: str):
419
+ """
420
+ :param str filter: Expression that defines the filter to apply across create/update
421
+ events of assets or findings as specified by the event type. The
422
+ expression is a list of zero or more restrictions combined via
423
+ logical operators AND and OR. Parentheses are supported, and OR
424
+ has higher precedence than AND.
425
+ Restrictions have the form <field> <operator> <value> and may have
426
+ a - character in front of them to indicate negation. The fields
427
+ map to those defined in the corresponding resource.
428
+ The supported operators are:
429
+ * = for all value types.
430
+ * >, <, >=, <= for integer values.
431
+ * :, meaning substring matching, for strings.
432
+ The supported value types are:
433
+ * string literals in quotes.
434
+ * integer literals without quotes.
435
+ * boolean literals true and false without quotes.
436
+ See
437
+ [Filtering notifications](https://cloud.google.com/security-command-center/docs/how-to-api-filter-notifications)
438
+ for information on how to write a filter.
439
+
440
+ - - -
441
+ """
442
+ pulumi.set(__self__, "filter", filter)
443
+
444
+ @property
445
+ @pulumi.getter
446
+ def filter(self) -> str:
447
+ """
448
+ Expression that defines the filter to apply across create/update
449
+ events of assets or findings as specified by the event type. The
450
+ expression is a list of zero or more restrictions combined via
451
+ logical operators AND and OR. Parentheses are supported, and OR
452
+ has higher precedence than AND.
453
+ Restrictions have the form <field> <operator> <value> and may have
454
+ a - character in front of them to indicate negation. The fields
455
+ map to those defined in the corresponding resource.
456
+ The supported operators are:
457
+ * = for all value types.
458
+ * >, <, >=, <= for integer values.
459
+ * :, meaning substring matching, for strings.
460
+ The supported value types are:
461
+ * string literals in quotes.
462
+ * integer literals without quotes.
463
+ * boolean literals true and false without quotes.
464
+ See
465
+ [Filtering notifications](https://cloud.google.com/security-command-center/docs/how-to-api-filter-notifications)
466
+ for information on how to write a filter.
467
+
468
+ - - -
469
+ """
470
+ return pulumi.get(self, "filter")
471
+
472
+
413
473
  @pulumi.output_type
414
474
  class InstanceIamBindingCondition(dict):
415
475
  def __init__(__self__, *,
@@ -2380,6 +2440,64 @@ class SourceIamMemberCondition(dict):
2380
2440
  return pulumi.get(self, "description")
2381
2441
 
2382
2442
 
2443
+ @pulumi.output_type
2444
+ class V2FolderNotificationConfigStreamingConfig(dict):
2445
+ def __init__(__self__, *,
2446
+ filter: str):
2447
+ """
2448
+ :param str filter: Expression that defines the filter to apply across create/update
2449
+ events of assets or findings as specified by the event type. The
2450
+ expression is a list of zero or more restrictions combined via
2451
+ logical operators AND and OR. Parentheses are supported, and OR
2452
+ has higher precedence than AND.
2453
+ Restrictions have the form <field> <operator> <value> and may have
2454
+ a - character in front of them to indicate negation. The fields
2455
+ map to those defined in the corresponding resource.
2456
+ The supported operators are:
2457
+ * = for all value types.
2458
+ * >, <, >=, <= for integer values.
2459
+ * :, meaning substring matching, for strings.
2460
+ The supported value types are:
2461
+ * string literals in quotes.
2462
+ * integer literals without quotes.
2463
+ * boolean literals true and false without quotes.
2464
+ See
2465
+ [Filtering notifications](https://cloud.google.com/security-command-center/docs/how-to-api-filter-notifications)
2466
+ for information on how to write a filter.
2467
+
2468
+ - - -
2469
+ """
2470
+ pulumi.set(__self__, "filter", filter)
2471
+
2472
+ @property
2473
+ @pulumi.getter
2474
+ def filter(self) -> str:
2475
+ """
2476
+ Expression that defines the filter to apply across create/update
2477
+ events of assets or findings as specified by the event type. The
2478
+ expression is a list of zero or more restrictions combined via
2479
+ logical operators AND and OR. Parentheses are supported, and OR
2480
+ has higher precedence than AND.
2481
+ Restrictions have the form <field> <operator> <value> and may have
2482
+ a - character in front of them to indicate negation. The fields
2483
+ map to those defined in the corresponding resource.
2484
+ The supported operators are:
2485
+ * = for all value types.
2486
+ * >, <, >=, <= for integer values.
2487
+ * :, meaning substring matching, for strings.
2488
+ The supported value types are:
2489
+ * string literals in quotes.
2490
+ * integer literals without quotes.
2491
+ * boolean literals true and false without quotes.
2492
+ See
2493
+ [Filtering notifications](https://cloud.google.com/security-command-center/docs/how-to-api-filter-notifications)
2494
+ for information on how to write a filter.
2495
+
2496
+ - - -
2497
+ """
2498
+ return pulumi.get(self, "filter")
2499
+
2500
+
2383
2501
  @pulumi.output_type
2384
2502
  class V2OrganizationNotificationConfigStreamingConfig(dict):
2385
2503
  def __init__(__self__, *,