pulumi-gcp 7.28.0a1718950249__py3-none-any.whl → 7.28.0a1718995220__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 (58) hide show
  1. pulumi_gcp/__init__.py +59 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +58 -74
  3. pulumi_gcp/accesscontextmanager/access_levels.py +0 -20
  4. pulumi_gcp/accesscontextmanager/outputs.py +58 -74
  5. pulumi_gcp/accesscontextmanager/service_perimeter.py +2 -0
  6. pulumi_gcp/bigtable/_inputs.py +40 -0
  7. pulumi_gcp/bigtable/outputs.py +49 -0
  8. pulumi_gcp/bigtable/table.py +54 -0
  9. pulumi_gcp/cloudbuildv2/_inputs.py +383 -0
  10. pulumi_gcp/cloudbuildv2/connection.py +110 -2
  11. pulumi_gcp/cloudbuildv2/outputs.py +421 -0
  12. pulumi_gcp/composer/__init__.py +3 -0
  13. pulumi_gcp/composer/get_user_workloads_config_map.py +190 -0
  14. pulumi_gcp/composer/get_user_workloads_secret.py +188 -0
  15. pulumi_gcp/composer/user_workloads_config_map.py +475 -0
  16. pulumi_gcp/compute/_inputs.py +4 -2
  17. pulumi_gcp/compute/backend_service.py +28 -48
  18. pulumi_gcp/compute/interconnect.py +4 -4
  19. pulumi_gcp/compute/outputs.py +10 -4
  20. pulumi_gcp/compute/region_backend_service.py +35 -48
  21. pulumi_gcp/compute/region_network_endpoint.py +187 -0
  22. pulumi_gcp/compute/region_network_endpoint_group.py +49 -9
  23. pulumi_gcp/compute/region_target_https_proxy.py +7 -14
  24. pulumi_gcp/compute/target_https_proxy.py +28 -14
  25. pulumi_gcp/config/__init__.pyi +2 -0
  26. pulumi_gcp/config/vars.py +4 -0
  27. pulumi_gcp/container/_inputs.py +2 -2
  28. pulumi_gcp/container/outputs.py +4 -4
  29. pulumi_gcp/discoveryengine/_inputs.py +227 -0
  30. pulumi_gcp/discoveryengine/data_store.py +108 -0
  31. pulumi_gcp/discoveryengine/outputs.py +280 -0
  32. pulumi_gcp/edgecontainer/_inputs.py +107 -1
  33. pulumi_gcp/edgecontainer/outputs.py +123 -1
  34. pulumi_gcp/gkehub/_inputs.py +16 -0
  35. pulumi_gcp/gkehub/outputs.py +15 -1
  36. pulumi_gcp/logging/folder_sink.py +14 -14
  37. pulumi_gcp/logging/organization_sink.py +14 -14
  38. pulumi_gcp/managedkafka/__init__.py +11 -0
  39. pulumi_gcp/managedkafka/_inputs.py +169 -0
  40. pulumi_gcp/managedkafka/cluster.py +807 -0
  41. pulumi_gcp/managedkafka/outputs.py +197 -0
  42. pulumi_gcp/managedkafka/topic.py +599 -0
  43. pulumi_gcp/netapp/__init__.py +1 -0
  44. pulumi_gcp/netapp/active_directory.py +55 -0
  45. pulumi_gcp/netapp/backup.py +903 -0
  46. pulumi_gcp/provider.py +20 -0
  47. pulumi_gcp/pulumi-plugin.json +1 -1
  48. pulumi_gcp/securitycenter/__init__.py +3 -0
  49. pulumi_gcp/securitycenter/_inputs.py +1105 -0
  50. pulumi_gcp/securitycenter/management_folder_security_health_analytics_custom_module.py +725 -0
  51. pulumi_gcp/securitycenter/management_organization_security_health_analytics_custom_module.py +713 -0
  52. pulumi_gcp/securitycenter/management_project_security_health_analytics_custom_module.py +706 -0
  53. pulumi_gcp/securitycenter/outputs.py +1048 -0
  54. pulumi_gcp/vertex/ai_feature_online_store.py +37 -8
  55. {pulumi_gcp-7.28.0a1718950249.dist-info → pulumi_gcp-7.28.0a1718995220.dist-info}/METADATA +1 -1
  56. {pulumi_gcp-7.28.0a1718950249.dist-info → pulumi_gcp-7.28.0a1718995220.dist-info}/RECORD +58 -46
  57. {pulumi_gcp-7.28.0a1718950249.dist-info → pulumi_gcp-7.28.0a1718995220.dist-info}/WHEEL +0 -0
  58. {pulumi_gcp-7.28.0a1718950249.dist-info → pulumi_gcp-7.28.0a1718995220.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,713 @@
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 pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+ from . import outputs
12
+ from ._inputs import *
13
+
14
+ __all__ = ['ManagementOrganizationSecurityHealthAnalyticsCustomModuleArgs', 'ManagementOrganizationSecurityHealthAnalyticsCustomModule']
15
+
16
+ @pulumi.input_type
17
+ class ManagementOrganizationSecurityHealthAnalyticsCustomModuleArgs:
18
+ def __init__(__self__, *,
19
+ organization: pulumi.Input[str],
20
+ custom_config: Optional[pulumi.Input['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs']] = None,
21
+ display_name: Optional[pulumi.Input[str]] = None,
22
+ enablement_state: Optional[pulumi.Input[str]] = None,
23
+ location: Optional[pulumi.Input[str]] = None):
24
+ """
25
+ The set of arguments for constructing a ManagementOrganizationSecurityHealthAnalyticsCustomModule resource.
26
+ :param pulumi.Input[str] organization: Numerical ID of the parent organization.
27
+
28
+
29
+ - - -
30
+ :param pulumi.Input['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs'] custom_config: The user specified custom configuration for the module.
31
+ Structure is documented below.
32
+ :param pulumi.Input[str] display_name: The display name of the Security Health Analytics custom module. This
33
+ display name becomes the finding category for all findings that are
34
+ returned by this custom module. The display name must be between 1 and
35
+ 128 characters, start with a lowercase letter, and contain alphanumeric
36
+ characters or underscores only.
37
+ :param pulumi.Input[str] enablement_state: The enablement state of the custom module.
38
+ Possible values are: `ENABLED`, `DISABLED`.
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__, "organization", organization)
42
+ if custom_config is not None:
43
+ pulumi.set(__self__, "custom_config", custom_config)
44
+ if display_name is not None:
45
+ pulumi.set(__self__, "display_name", display_name)
46
+ if enablement_state is not None:
47
+ pulumi.set(__self__, "enablement_state", enablement_state)
48
+ if location is not None:
49
+ pulumi.set(__self__, "location", location)
50
+
51
+ @property
52
+ @pulumi.getter
53
+ def organization(self) -> pulumi.Input[str]:
54
+ """
55
+ Numerical ID of the parent organization.
56
+
57
+
58
+ - - -
59
+ """
60
+ return pulumi.get(self, "organization")
61
+
62
+ @organization.setter
63
+ def organization(self, value: pulumi.Input[str]):
64
+ pulumi.set(self, "organization", value)
65
+
66
+ @property
67
+ @pulumi.getter(name="customConfig")
68
+ def custom_config(self) -> Optional[pulumi.Input['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs']]:
69
+ """
70
+ The user specified custom configuration for the module.
71
+ Structure is documented below.
72
+ """
73
+ return pulumi.get(self, "custom_config")
74
+
75
+ @custom_config.setter
76
+ def custom_config(self, value: Optional[pulumi.Input['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs']]):
77
+ pulumi.set(self, "custom_config", value)
78
+
79
+ @property
80
+ @pulumi.getter(name="displayName")
81
+ def display_name(self) -> Optional[pulumi.Input[str]]:
82
+ """
83
+ The display name of the Security Health Analytics custom module. This
84
+ display name becomes the finding category for all findings that are
85
+ returned by this custom module. The display name must be between 1 and
86
+ 128 characters, start with a lowercase letter, and contain alphanumeric
87
+ characters or underscores only.
88
+ """
89
+ return pulumi.get(self, "display_name")
90
+
91
+ @display_name.setter
92
+ def display_name(self, value: Optional[pulumi.Input[str]]):
93
+ pulumi.set(self, "display_name", value)
94
+
95
+ @property
96
+ @pulumi.getter(name="enablementState")
97
+ def enablement_state(self) -> Optional[pulumi.Input[str]]:
98
+ """
99
+ The enablement state of the custom module.
100
+ Possible values are: `ENABLED`, `DISABLED`.
101
+ """
102
+ return pulumi.get(self, "enablement_state")
103
+
104
+ @enablement_state.setter
105
+ def enablement_state(self, value: Optional[pulumi.Input[str]]):
106
+ pulumi.set(self, "enablement_state", value)
107
+
108
+ @property
109
+ @pulumi.getter
110
+ def location(self) -> Optional[pulumi.Input[str]]:
111
+ """
112
+ Location ID of the parent organization. If not provided, 'global' will be used as the default location.
113
+ """
114
+ return pulumi.get(self, "location")
115
+
116
+ @location.setter
117
+ def location(self, value: Optional[pulumi.Input[str]]):
118
+ pulumi.set(self, "location", value)
119
+
120
+
121
+ @pulumi.input_type
122
+ class _ManagementOrganizationSecurityHealthAnalyticsCustomModuleState:
123
+ def __init__(__self__, *,
124
+ ancestor_module: Optional[pulumi.Input[str]] = None,
125
+ custom_config: Optional[pulumi.Input['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs']] = None,
126
+ display_name: Optional[pulumi.Input[str]] = None,
127
+ enablement_state: Optional[pulumi.Input[str]] = None,
128
+ last_editor: Optional[pulumi.Input[str]] = None,
129
+ location: Optional[pulumi.Input[str]] = None,
130
+ name: Optional[pulumi.Input[str]] = None,
131
+ organization: Optional[pulumi.Input[str]] = None,
132
+ update_time: Optional[pulumi.Input[str]] = None):
133
+ """
134
+ Input properties used for looking up and filtering ManagementOrganizationSecurityHealthAnalyticsCustomModule resources.
135
+ :param pulumi.Input[str] ancestor_module: If empty, indicates that the custom module was created in the organization, folder,
136
+ or project in which you are viewing the custom module. Otherwise, ancestor_module
137
+ specifies the organization or folder from which the custom module is inherited.
138
+ :param pulumi.Input['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs'] custom_config: The user specified custom configuration for the module.
139
+ Structure is documented below.
140
+ :param pulumi.Input[str] display_name: The display name of the Security Health Analytics custom module. This
141
+ display name becomes the finding category for all findings that are
142
+ returned by this custom module. The display name must be between 1 and
143
+ 128 characters, start with a lowercase letter, and contain alphanumeric
144
+ characters or underscores only.
145
+ :param pulumi.Input[str] enablement_state: The enablement state of the custom module.
146
+ Possible values are: `ENABLED`, `DISABLED`.
147
+ :param pulumi.Input[str] last_editor: The editor that last updated the custom module.
148
+ :param pulumi.Input[str] location: Location ID of the parent organization. If not provided, 'global' will be used as the default location.
149
+ :param pulumi.Input[str] name: The resource name of the custom module. Its format is "organizations/{organization}/locations/{location}/securityHealthAnalyticsCustomModules/{securityHealthAnalyticsCustomModule}".
150
+ The id {securityHealthAnalyticsCustomModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.
151
+ :param pulumi.Input[str] organization: Numerical ID of the parent organization.
152
+
153
+
154
+ - - -
155
+ :param pulumi.Input[str] update_time: The time at which the custom module was last updated.
156
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and
157
+ up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
158
+ """
159
+ if ancestor_module is not None:
160
+ pulumi.set(__self__, "ancestor_module", ancestor_module)
161
+ if custom_config is not None:
162
+ pulumi.set(__self__, "custom_config", custom_config)
163
+ if display_name is not None:
164
+ pulumi.set(__self__, "display_name", display_name)
165
+ if enablement_state is not None:
166
+ pulumi.set(__self__, "enablement_state", enablement_state)
167
+ if last_editor is not None:
168
+ pulumi.set(__self__, "last_editor", last_editor)
169
+ if location is not None:
170
+ pulumi.set(__self__, "location", location)
171
+ if name is not None:
172
+ pulumi.set(__self__, "name", name)
173
+ if organization is not None:
174
+ pulumi.set(__self__, "organization", organization)
175
+ if update_time is not None:
176
+ pulumi.set(__self__, "update_time", update_time)
177
+
178
+ @property
179
+ @pulumi.getter(name="ancestorModule")
180
+ def ancestor_module(self) -> Optional[pulumi.Input[str]]:
181
+ """
182
+ If empty, indicates that the custom module was created in the organization, folder,
183
+ or project in which you are viewing the custom module. Otherwise, ancestor_module
184
+ specifies the organization or folder from which the custom module is inherited.
185
+ """
186
+ return pulumi.get(self, "ancestor_module")
187
+
188
+ @ancestor_module.setter
189
+ def ancestor_module(self, value: Optional[pulumi.Input[str]]):
190
+ pulumi.set(self, "ancestor_module", value)
191
+
192
+ @property
193
+ @pulumi.getter(name="customConfig")
194
+ def custom_config(self) -> Optional[pulumi.Input['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs']]:
195
+ """
196
+ The user specified custom configuration for the module.
197
+ Structure is documented below.
198
+ """
199
+ return pulumi.get(self, "custom_config")
200
+
201
+ @custom_config.setter
202
+ def custom_config(self, value: Optional[pulumi.Input['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs']]):
203
+ pulumi.set(self, "custom_config", value)
204
+
205
+ @property
206
+ @pulumi.getter(name="displayName")
207
+ def display_name(self) -> Optional[pulumi.Input[str]]:
208
+ """
209
+ The display name of the Security Health Analytics custom module. This
210
+ display name becomes the finding category for all findings that are
211
+ returned by this custom module. The display name must be between 1 and
212
+ 128 characters, start with a lowercase letter, and contain alphanumeric
213
+ characters or underscores only.
214
+ """
215
+ return pulumi.get(self, "display_name")
216
+
217
+ @display_name.setter
218
+ def display_name(self, value: Optional[pulumi.Input[str]]):
219
+ pulumi.set(self, "display_name", value)
220
+
221
+ @property
222
+ @pulumi.getter(name="enablementState")
223
+ def enablement_state(self) -> Optional[pulumi.Input[str]]:
224
+ """
225
+ The enablement state of the custom module.
226
+ Possible values are: `ENABLED`, `DISABLED`.
227
+ """
228
+ return pulumi.get(self, "enablement_state")
229
+
230
+ @enablement_state.setter
231
+ def enablement_state(self, value: Optional[pulumi.Input[str]]):
232
+ pulumi.set(self, "enablement_state", value)
233
+
234
+ @property
235
+ @pulumi.getter(name="lastEditor")
236
+ def last_editor(self) -> Optional[pulumi.Input[str]]:
237
+ """
238
+ The editor that last updated the custom module.
239
+ """
240
+ return pulumi.get(self, "last_editor")
241
+
242
+ @last_editor.setter
243
+ def last_editor(self, value: Optional[pulumi.Input[str]]):
244
+ pulumi.set(self, "last_editor", value)
245
+
246
+ @property
247
+ @pulumi.getter
248
+ def location(self) -> Optional[pulumi.Input[str]]:
249
+ """
250
+ Location ID of the parent organization. If not provided, 'global' will be used as the default location.
251
+ """
252
+ return pulumi.get(self, "location")
253
+
254
+ @location.setter
255
+ def location(self, value: Optional[pulumi.Input[str]]):
256
+ pulumi.set(self, "location", value)
257
+
258
+ @property
259
+ @pulumi.getter
260
+ def name(self) -> Optional[pulumi.Input[str]]:
261
+ """
262
+ The resource name of the custom module. Its format is "organizations/{organization}/locations/{location}/securityHealthAnalyticsCustomModules/{securityHealthAnalyticsCustomModule}".
263
+ The id {securityHealthAnalyticsCustomModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.
264
+ """
265
+ return pulumi.get(self, "name")
266
+
267
+ @name.setter
268
+ def name(self, value: Optional[pulumi.Input[str]]):
269
+ pulumi.set(self, "name", value)
270
+
271
+ @property
272
+ @pulumi.getter
273
+ def organization(self) -> Optional[pulumi.Input[str]]:
274
+ """
275
+ Numerical ID of the parent organization.
276
+
277
+
278
+ - - -
279
+ """
280
+ return pulumi.get(self, "organization")
281
+
282
+ @organization.setter
283
+ def organization(self, value: Optional[pulumi.Input[str]]):
284
+ pulumi.set(self, "organization", value)
285
+
286
+ @property
287
+ @pulumi.getter(name="updateTime")
288
+ def update_time(self) -> Optional[pulumi.Input[str]]:
289
+ """
290
+ The time at which the custom module was last updated.
291
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and
292
+ up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
293
+ """
294
+ return pulumi.get(self, "update_time")
295
+
296
+ @update_time.setter
297
+ def update_time(self, value: Optional[pulumi.Input[str]]):
298
+ pulumi.set(self, "update_time", value)
299
+
300
+
301
+ class ManagementOrganizationSecurityHealthAnalyticsCustomModule(pulumi.CustomResource):
302
+ @overload
303
+ def __init__(__self__,
304
+ resource_name: str,
305
+ opts: Optional[pulumi.ResourceOptions] = None,
306
+ custom_config: Optional[pulumi.Input[pulumi.InputType['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs']]] = None,
307
+ display_name: Optional[pulumi.Input[str]] = None,
308
+ enablement_state: Optional[pulumi.Input[str]] = None,
309
+ location: Optional[pulumi.Input[str]] = None,
310
+ organization: Optional[pulumi.Input[str]] = None,
311
+ __props__=None):
312
+ """
313
+ Represents an instance of a Security Health Analytics custom module, including
314
+ its full module name, display name, enablement state, and last updated time.
315
+ You can create a custom module at the organization, folder, or project level.
316
+ Custom modules that you create at the organization or folder level are inherited
317
+ by the child folders and projects.
318
+
319
+ To get more information about OrganizationSecurityHealthAnalyticsCustomModule, see:
320
+
321
+ * [API documentation](https://cloud.google.com/security-command-center/docs/reference/security-center-management/rest/v1/organizations.locations.securityHealthAnalyticsCustomModules)
322
+ * How-to Guides
323
+ * [Overview of custom modules for Security Health Analytics](https://cloud.google.com/security-command-center/docs/custom-modules-sha-overview)
324
+
325
+ ## Example Usage
326
+
327
+ ### Scc Management Organization Security Health Analytics Custom Module Basic
328
+
329
+ ```python
330
+ import pulumi
331
+ import pulumi_gcp as gcp
332
+
333
+ example = gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModule("example",
334
+ organization="123456789",
335
+ display_name="basic_custom_module",
336
+ location="global",
337
+ enablement_state="ENABLED",
338
+ custom_config=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs(
339
+ predicate=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigPredicateArgs(
340
+ expression="resource.rotationPeriod > duration(\\"2592000s\\")",
341
+ ),
342
+ resource_selector=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelectorArgs(
343
+ resource_types=["cloudkms.googleapis.com/CryptoKey"],
344
+ ),
345
+ description="The rotation period of the identified cryptokey resource exceeds 30 days.",
346
+ recommendation="Set the rotation period to at most 30 days.",
347
+ severity="MEDIUM",
348
+ ))
349
+ ```
350
+ ### Scc Management Organization Security Health Analytics Custom Module Full
351
+
352
+ ```python
353
+ import pulumi
354
+ import pulumi_gcp as gcp
355
+
356
+ example = gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModule("example",
357
+ organization="123456789",
358
+ display_name="full_custom_module",
359
+ location="global",
360
+ enablement_state="ENABLED",
361
+ custom_config=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs(
362
+ predicate=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigPredicateArgs(
363
+ expression="resource.rotationPeriod > duration(\\"2592000s\\")",
364
+ title="Purpose of the expression",
365
+ description="description of the expression",
366
+ location="location of the expression",
367
+ ),
368
+ custom_output=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputArgs(
369
+ properties=[gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyArgs(
370
+ name="duration",
371
+ value_expression=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpressionArgs(
372
+ expression="resource.rotationPeriod",
373
+ title="Purpose of the expression",
374
+ description="description of the expression",
375
+ location="location of the expression",
376
+ ),
377
+ )],
378
+ ),
379
+ resource_selector=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelectorArgs(
380
+ resource_types=["cloudkms.googleapis.com/CryptoKey"],
381
+ ),
382
+ severity="LOW",
383
+ description="Description of the custom module",
384
+ recommendation="Steps to resolve violation",
385
+ ))
386
+ ```
387
+
388
+ ## Import
389
+
390
+ OrganizationSecurityHealthAnalyticsCustomModule can be imported using any of these accepted formats:
391
+
392
+ * `organizations/{{organization}}/locations/{{location}}/securityHealthAnalyticsCustomModules/{{name}}`
393
+
394
+ * `{{organization}}/{{location}}/{{name}}`
395
+
396
+ When using the `pulumi import` command, OrganizationSecurityHealthAnalyticsCustomModule can be imported using one of the formats above. For example:
397
+
398
+ ```sh
399
+ $ pulumi import gcp:securitycenter/managementOrganizationSecurityHealthAnalyticsCustomModule:ManagementOrganizationSecurityHealthAnalyticsCustomModule default organizations/{{organization}}/locations/{{location}}/securityHealthAnalyticsCustomModules/{{name}}
400
+ ```
401
+
402
+ ```sh
403
+ $ pulumi import gcp:securitycenter/managementOrganizationSecurityHealthAnalyticsCustomModule:ManagementOrganizationSecurityHealthAnalyticsCustomModule default {{organization}}/{{location}}/{{name}}
404
+ ```
405
+
406
+ :param str resource_name: The name of the resource.
407
+ :param pulumi.ResourceOptions opts: Options for the resource.
408
+ :param pulumi.Input[pulumi.InputType['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs']] custom_config: The user specified custom configuration for the module.
409
+ Structure is documented below.
410
+ :param pulumi.Input[str] display_name: The display name of the Security Health Analytics custom module. This
411
+ display name becomes the finding category for all findings that are
412
+ returned by this custom module. The display name must be between 1 and
413
+ 128 characters, start with a lowercase letter, and contain alphanumeric
414
+ characters or underscores only.
415
+ :param pulumi.Input[str] enablement_state: The enablement state of the custom module.
416
+ Possible values are: `ENABLED`, `DISABLED`.
417
+ :param pulumi.Input[str] location: Location ID of the parent organization. If not provided, 'global' will be used as the default location.
418
+ :param pulumi.Input[str] organization: Numerical ID of the parent organization.
419
+
420
+
421
+ - - -
422
+ """
423
+ ...
424
+ @overload
425
+ def __init__(__self__,
426
+ resource_name: str,
427
+ args: ManagementOrganizationSecurityHealthAnalyticsCustomModuleArgs,
428
+ opts: Optional[pulumi.ResourceOptions] = None):
429
+ """
430
+ Represents an instance of a Security Health Analytics custom module, including
431
+ its full module name, display name, enablement state, and last updated time.
432
+ You can create a custom module at the organization, folder, or project level.
433
+ Custom modules that you create at the organization or folder level are inherited
434
+ by the child folders and projects.
435
+
436
+ To get more information about OrganizationSecurityHealthAnalyticsCustomModule, see:
437
+
438
+ * [API documentation](https://cloud.google.com/security-command-center/docs/reference/security-center-management/rest/v1/organizations.locations.securityHealthAnalyticsCustomModules)
439
+ * How-to Guides
440
+ * [Overview of custom modules for Security Health Analytics](https://cloud.google.com/security-command-center/docs/custom-modules-sha-overview)
441
+
442
+ ## Example Usage
443
+
444
+ ### Scc Management Organization Security Health Analytics Custom Module Basic
445
+
446
+ ```python
447
+ import pulumi
448
+ import pulumi_gcp as gcp
449
+
450
+ example = gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModule("example",
451
+ organization="123456789",
452
+ display_name="basic_custom_module",
453
+ location="global",
454
+ enablement_state="ENABLED",
455
+ custom_config=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs(
456
+ predicate=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigPredicateArgs(
457
+ expression="resource.rotationPeriod > duration(\\"2592000s\\")",
458
+ ),
459
+ resource_selector=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelectorArgs(
460
+ resource_types=["cloudkms.googleapis.com/CryptoKey"],
461
+ ),
462
+ description="The rotation period of the identified cryptokey resource exceeds 30 days.",
463
+ recommendation="Set the rotation period to at most 30 days.",
464
+ severity="MEDIUM",
465
+ ))
466
+ ```
467
+ ### Scc Management Organization Security Health Analytics Custom Module Full
468
+
469
+ ```python
470
+ import pulumi
471
+ import pulumi_gcp as gcp
472
+
473
+ example = gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModule("example",
474
+ organization="123456789",
475
+ display_name="full_custom_module",
476
+ location="global",
477
+ enablement_state="ENABLED",
478
+ custom_config=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs(
479
+ predicate=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigPredicateArgs(
480
+ expression="resource.rotationPeriod > duration(\\"2592000s\\")",
481
+ title="Purpose of the expression",
482
+ description="description of the expression",
483
+ location="location of the expression",
484
+ ),
485
+ custom_output=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputArgs(
486
+ properties=[gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyArgs(
487
+ name="duration",
488
+ value_expression=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpressionArgs(
489
+ expression="resource.rotationPeriod",
490
+ title="Purpose of the expression",
491
+ description="description of the expression",
492
+ location="location of the expression",
493
+ ),
494
+ )],
495
+ ),
496
+ resource_selector=gcp.securitycenter.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelectorArgs(
497
+ resource_types=["cloudkms.googleapis.com/CryptoKey"],
498
+ ),
499
+ severity="LOW",
500
+ description="Description of the custom module",
501
+ recommendation="Steps to resolve violation",
502
+ ))
503
+ ```
504
+
505
+ ## Import
506
+
507
+ OrganizationSecurityHealthAnalyticsCustomModule can be imported using any of these accepted formats:
508
+
509
+ * `organizations/{{organization}}/locations/{{location}}/securityHealthAnalyticsCustomModules/{{name}}`
510
+
511
+ * `{{organization}}/{{location}}/{{name}}`
512
+
513
+ When using the `pulumi import` command, OrganizationSecurityHealthAnalyticsCustomModule can be imported using one of the formats above. For example:
514
+
515
+ ```sh
516
+ $ pulumi import gcp:securitycenter/managementOrganizationSecurityHealthAnalyticsCustomModule:ManagementOrganizationSecurityHealthAnalyticsCustomModule default organizations/{{organization}}/locations/{{location}}/securityHealthAnalyticsCustomModules/{{name}}
517
+ ```
518
+
519
+ ```sh
520
+ $ pulumi import gcp:securitycenter/managementOrganizationSecurityHealthAnalyticsCustomModule:ManagementOrganizationSecurityHealthAnalyticsCustomModule default {{organization}}/{{location}}/{{name}}
521
+ ```
522
+
523
+ :param str resource_name: The name of the resource.
524
+ :param ManagementOrganizationSecurityHealthAnalyticsCustomModuleArgs args: The arguments to use to populate this resource's properties.
525
+ :param pulumi.ResourceOptions opts: Options for the resource.
526
+ """
527
+ ...
528
+ def __init__(__self__, resource_name: str, *args, **kwargs):
529
+ resource_args, opts = _utilities.get_resource_args_opts(ManagementOrganizationSecurityHealthAnalyticsCustomModuleArgs, pulumi.ResourceOptions, *args, **kwargs)
530
+ if resource_args is not None:
531
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
532
+ else:
533
+ __self__._internal_init(resource_name, *args, **kwargs)
534
+
535
+ def _internal_init(__self__,
536
+ resource_name: str,
537
+ opts: Optional[pulumi.ResourceOptions] = None,
538
+ custom_config: Optional[pulumi.Input[pulumi.InputType['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs']]] = None,
539
+ display_name: Optional[pulumi.Input[str]] = None,
540
+ enablement_state: Optional[pulumi.Input[str]] = None,
541
+ location: Optional[pulumi.Input[str]] = None,
542
+ organization: Optional[pulumi.Input[str]] = None,
543
+ __props__=None):
544
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
545
+ if not isinstance(opts, pulumi.ResourceOptions):
546
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
547
+ if opts.id is None:
548
+ if __props__ is not None:
549
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
550
+ __props__ = ManagementOrganizationSecurityHealthAnalyticsCustomModuleArgs.__new__(ManagementOrganizationSecurityHealthAnalyticsCustomModuleArgs)
551
+
552
+ __props__.__dict__["custom_config"] = custom_config
553
+ __props__.__dict__["display_name"] = display_name
554
+ __props__.__dict__["enablement_state"] = enablement_state
555
+ __props__.__dict__["location"] = location
556
+ if organization is None and not opts.urn:
557
+ raise TypeError("Missing required property 'organization'")
558
+ __props__.__dict__["organization"] = organization
559
+ __props__.__dict__["ancestor_module"] = None
560
+ __props__.__dict__["last_editor"] = None
561
+ __props__.__dict__["name"] = None
562
+ __props__.__dict__["update_time"] = None
563
+ super(ManagementOrganizationSecurityHealthAnalyticsCustomModule, __self__).__init__(
564
+ 'gcp:securitycenter/managementOrganizationSecurityHealthAnalyticsCustomModule:ManagementOrganizationSecurityHealthAnalyticsCustomModule',
565
+ resource_name,
566
+ __props__,
567
+ opts)
568
+
569
+ @staticmethod
570
+ def get(resource_name: str,
571
+ id: pulumi.Input[str],
572
+ opts: Optional[pulumi.ResourceOptions] = None,
573
+ ancestor_module: Optional[pulumi.Input[str]] = None,
574
+ custom_config: Optional[pulumi.Input[pulumi.InputType['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs']]] = None,
575
+ display_name: Optional[pulumi.Input[str]] = None,
576
+ enablement_state: Optional[pulumi.Input[str]] = None,
577
+ last_editor: Optional[pulumi.Input[str]] = None,
578
+ location: Optional[pulumi.Input[str]] = None,
579
+ name: Optional[pulumi.Input[str]] = None,
580
+ organization: Optional[pulumi.Input[str]] = None,
581
+ update_time: Optional[pulumi.Input[str]] = None) -> 'ManagementOrganizationSecurityHealthAnalyticsCustomModule':
582
+ """
583
+ Get an existing ManagementOrganizationSecurityHealthAnalyticsCustomModule resource's state with the given name, id, and optional extra
584
+ properties used to qualify the lookup.
585
+
586
+ :param str resource_name: The unique name of the resulting resource.
587
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
588
+ :param pulumi.ResourceOptions opts: Options for the resource.
589
+ :param pulumi.Input[str] ancestor_module: If empty, indicates that the custom module was created in the organization, folder,
590
+ or project in which you are viewing the custom module. Otherwise, ancestor_module
591
+ specifies the organization or folder from which the custom module is inherited.
592
+ :param pulumi.Input[pulumi.InputType['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigArgs']] custom_config: The user specified custom configuration for the module.
593
+ Structure is documented below.
594
+ :param pulumi.Input[str] display_name: The display name of the Security Health Analytics custom module. This
595
+ display name becomes the finding category for all findings that are
596
+ returned by this custom module. The display name must be between 1 and
597
+ 128 characters, start with a lowercase letter, and contain alphanumeric
598
+ characters or underscores only.
599
+ :param pulumi.Input[str] enablement_state: The enablement state of the custom module.
600
+ Possible values are: `ENABLED`, `DISABLED`.
601
+ :param pulumi.Input[str] last_editor: The editor that last updated the custom module.
602
+ :param pulumi.Input[str] location: Location ID of the parent organization. If not provided, 'global' will be used as the default location.
603
+ :param pulumi.Input[str] name: The resource name of the custom module. Its format is "organizations/{organization}/locations/{location}/securityHealthAnalyticsCustomModules/{securityHealthAnalyticsCustomModule}".
604
+ The id {securityHealthAnalyticsCustomModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.
605
+ :param pulumi.Input[str] organization: Numerical ID of the parent organization.
606
+
607
+
608
+ - - -
609
+ :param pulumi.Input[str] update_time: The time at which the custom module was last updated.
610
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and
611
+ up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
612
+ """
613
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
614
+
615
+ __props__ = _ManagementOrganizationSecurityHealthAnalyticsCustomModuleState.__new__(_ManagementOrganizationSecurityHealthAnalyticsCustomModuleState)
616
+
617
+ __props__.__dict__["ancestor_module"] = ancestor_module
618
+ __props__.__dict__["custom_config"] = custom_config
619
+ __props__.__dict__["display_name"] = display_name
620
+ __props__.__dict__["enablement_state"] = enablement_state
621
+ __props__.__dict__["last_editor"] = last_editor
622
+ __props__.__dict__["location"] = location
623
+ __props__.__dict__["name"] = name
624
+ __props__.__dict__["organization"] = organization
625
+ __props__.__dict__["update_time"] = update_time
626
+ return ManagementOrganizationSecurityHealthAnalyticsCustomModule(resource_name, opts=opts, __props__=__props__)
627
+
628
+ @property
629
+ @pulumi.getter(name="ancestorModule")
630
+ def ancestor_module(self) -> pulumi.Output[str]:
631
+ """
632
+ If empty, indicates that the custom module was created in the organization, folder,
633
+ or project in which you are viewing the custom module. Otherwise, ancestor_module
634
+ specifies the organization or folder from which the custom module is inherited.
635
+ """
636
+ return pulumi.get(self, "ancestor_module")
637
+
638
+ @property
639
+ @pulumi.getter(name="customConfig")
640
+ def custom_config(self) -> pulumi.Output[Optional['outputs.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfig']]:
641
+ """
642
+ The user specified custom configuration for the module.
643
+ Structure is documented below.
644
+ """
645
+ return pulumi.get(self, "custom_config")
646
+
647
+ @property
648
+ @pulumi.getter(name="displayName")
649
+ def display_name(self) -> pulumi.Output[Optional[str]]:
650
+ """
651
+ The display name of the Security Health Analytics custom module. This
652
+ display name becomes the finding category for all findings that are
653
+ returned by this custom module. The display name must be between 1 and
654
+ 128 characters, start with a lowercase letter, and contain alphanumeric
655
+ characters or underscores only.
656
+ """
657
+ return pulumi.get(self, "display_name")
658
+
659
+ @property
660
+ @pulumi.getter(name="enablementState")
661
+ def enablement_state(self) -> pulumi.Output[Optional[str]]:
662
+ """
663
+ The enablement state of the custom module.
664
+ Possible values are: `ENABLED`, `DISABLED`.
665
+ """
666
+ return pulumi.get(self, "enablement_state")
667
+
668
+ @property
669
+ @pulumi.getter(name="lastEditor")
670
+ def last_editor(self) -> pulumi.Output[str]:
671
+ """
672
+ The editor that last updated the custom module.
673
+ """
674
+ return pulumi.get(self, "last_editor")
675
+
676
+ @property
677
+ @pulumi.getter
678
+ def location(self) -> pulumi.Output[Optional[str]]:
679
+ """
680
+ Location ID of the parent organization. If not provided, 'global' will be used as the default location.
681
+ """
682
+ return pulumi.get(self, "location")
683
+
684
+ @property
685
+ @pulumi.getter
686
+ def name(self) -> pulumi.Output[str]:
687
+ """
688
+ The resource name of the custom module. Its format is "organizations/{organization}/locations/{location}/securityHealthAnalyticsCustomModules/{securityHealthAnalyticsCustomModule}".
689
+ The id {securityHealthAnalyticsCustomModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.
690
+ """
691
+ return pulumi.get(self, "name")
692
+
693
+ @property
694
+ @pulumi.getter
695
+ def organization(self) -> pulumi.Output[str]:
696
+ """
697
+ Numerical ID of the parent organization.
698
+
699
+
700
+ - - -
701
+ """
702
+ return pulumi.get(self, "organization")
703
+
704
+ @property
705
+ @pulumi.getter(name="updateTime")
706
+ def update_time(self) -> pulumi.Output[str]:
707
+ """
708
+ The time at which the custom module was last updated.
709
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and
710
+ up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
711
+ """
712
+ return pulumi.get(self, "update_time")
713
+