pulumi-gcp 7.8.0a1706829616__py3-none-any.whl → 7.8.0a1706905467__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. pulumi_gcp/__init__.py +30 -0
  2. pulumi_gcp/artifactregistry/repository.py +26 -28
  3. pulumi_gcp/cloudrun/_inputs.py +87 -4
  4. pulumi_gcp/cloudrun/outputs.py +152 -4
  5. pulumi_gcp/composer/_inputs.py +63 -0
  6. pulumi_gcp/composer/outputs.py +136 -0
  7. pulumi_gcp/compute/_inputs.py +8 -18
  8. pulumi_gcp/compute/backend_service.py +28 -0
  9. pulumi_gcp/compute/outputs.py +10 -20
  10. pulumi_gcp/compute/region_backend_service.py +30 -0
  11. pulumi_gcp/config/__init__.pyi +4 -0
  12. pulumi_gcp/config/vars.py +8 -0
  13. pulumi_gcp/discoveryengine/__init__.py +8 -0
  14. pulumi_gcp/discoveryengine/data_store.py +734 -0
  15. pulumi_gcp/eventarc/_inputs.py +2 -2
  16. pulumi_gcp/eventarc/outputs.py +2 -2
  17. pulumi_gcp/firebase/_inputs.py +4 -2
  18. pulumi_gcp/firebase/extensions_instance.py +6 -8
  19. pulumi_gcp/firebase/outputs.py +4 -2
  20. pulumi_gcp/firestore/backup_schedule.py +36 -12
  21. pulumi_gcp/firestore/database.py +0 -8
  22. pulumi_gcp/firestore/document.py +0 -68
  23. pulumi_gcp/firestore/field.py +22 -102
  24. pulumi_gcp/firestore/index.py +4 -42
  25. pulumi_gcp/gkehub/feature.py +2 -2
  26. pulumi_gcp/provider.py +40 -0
  27. pulumi_gcp/pubsub/_inputs.py +26 -4
  28. pulumi_gcp/pubsub/outputs.py +45 -8
  29. pulumi_gcp/pubsub/subscription.py +82 -0
  30. pulumi_gcp/securityposture/__init__.py +11 -0
  31. pulumi_gcp/securityposture/_inputs.py +1364 -0
  32. pulumi_gcp/securityposture/outputs.py +1372 -0
  33. pulumi_gcp/securityposture/posture.py +828 -0
  34. pulumi_gcp/securityposture/posture_deployment.py +872 -0
  35. pulumi_gcp/vertex/_inputs.py +156 -0
  36. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +259 -3
  37. pulumi_gcp/vertex/outputs.py +170 -0
  38. pulumi_gcp/workflows/workflow.py +75 -7
  39. pulumi_gcp/workstations/_inputs.py +38 -0
  40. pulumi_gcp/workstations/outputs.py +30 -0
  41. pulumi_gcp/workstations/workstation_config.py +54 -0
  42. {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/METADATA +1 -1
  43. {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/RECORD +45 -38
  44. {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/WHEEL +0 -0
  45. {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1372 @@
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
+
13
+ __all__ = [
14
+ 'PosturePolicySet',
15
+ 'PosturePolicySetPolicy',
16
+ 'PosturePolicySetPolicyComplianceStandard',
17
+ 'PosturePolicySetPolicyConstraint',
18
+ 'PosturePolicySetPolicyConstraintOrgPolicyConstraint',
19
+ 'PosturePolicySetPolicyConstraintOrgPolicyConstraintCustom',
20
+ 'PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomCustomConstraint',
21
+ 'PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRule',
22
+ 'PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleExpr',
23
+ 'PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleValues',
24
+ 'PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRule',
25
+ 'PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleExpr',
26
+ 'PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleValues',
27
+ 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModule',
28
+ 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfig',
29
+ 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutput',
30
+ 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputProperty',
31
+ 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputPropertyValueExpression',
32
+ 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigPredicate',
33
+ 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigResourceSelector',
34
+ 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsModule',
35
+ ]
36
+
37
+ @pulumi.output_type
38
+ class PosturePolicySet(dict):
39
+ @staticmethod
40
+ def __key_warning(key: str):
41
+ suggest = None
42
+ if key == "policySetId":
43
+ suggest = "policy_set_id"
44
+
45
+ if suggest:
46
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySet. Access the value via the '{suggest}' property getter instead.")
47
+
48
+ def __getitem__(self, key: str) -> Any:
49
+ PosturePolicySet.__key_warning(key)
50
+ return super().__getitem__(key)
51
+
52
+ def get(self, key: str, default = None) -> Any:
53
+ PosturePolicySet.__key_warning(key)
54
+ return super().get(key, default)
55
+
56
+ def __init__(__self__, *,
57
+ policy_set_id: str,
58
+ description: Optional[str] = None,
59
+ policies: Optional[Sequence['outputs.PosturePolicySetPolicy']] = None):
60
+ """
61
+ :param str policy_set_id: ID of the policy set.
62
+ :param str description: Description of the policy set.
63
+ :param Sequence['PosturePolicySetPolicyArgs'] policies: List of security policy
64
+ Structure is documented below.
65
+ """
66
+ pulumi.set(__self__, "policy_set_id", policy_set_id)
67
+ if description is not None:
68
+ pulumi.set(__self__, "description", description)
69
+ if policies is not None:
70
+ pulumi.set(__self__, "policies", policies)
71
+
72
+ @property
73
+ @pulumi.getter(name="policySetId")
74
+ def policy_set_id(self) -> str:
75
+ """
76
+ ID of the policy set.
77
+ """
78
+ return pulumi.get(self, "policy_set_id")
79
+
80
+ @property
81
+ @pulumi.getter
82
+ def description(self) -> Optional[str]:
83
+ """
84
+ Description of the policy set.
85
+ """
86
+ return pulumi.get(self, "description")
87
+
88
+ @property
89
+ @pulumi.getter
90
+ def policies(self) -> Optional[Sequence['outputs.PosturePolicySetPolicy']]:
91
+ """
92
+ List of security policy
93
+ Structure is documented below.
94
+ """
95
+ return pulumi.get(self, "policies")
96
+
97
+
98
+ @pulumi.output_type
99
+ class PosturePolicySetPolicy(dict):
100
+ @staticmethod
101
+ def __key_warning(key: str):
102
+ suggest = None
103
+ if key == "policyId":
104
+ suggest = "policy_id"
105
+ elif key == "complianceStandards":
106
+ suggest = "compliance_standards"
107
+
108
+ if suggest:
109
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicy. Access the value via the '{suggest}' property getter instead.")
110
+
111
+ def __getitem__(self, key: str) -> Any:
112
+ PosturePolicySetPolicy.__key_warning(key)
113
+ return super().__getitem__(key)
114
+
115
+ def get(self, key: str, default = None) -> Any:
116
+ PosturePolicySetPolicy.__key_warning(key)
117
+ return super().get(key, default)
118
+
119
+ def __init__(__self__, *,
120
+ constraint: 'outputs.PosturePolicySetPolicyConstraint',
121
+ policy_id: str,
122
+ compliance_standards: Optional[Sequence['outputs.PosturePolicySetPolicyComplianceStandard']] = None,
123
+ description: Optional[str] = None):
124
+ """
125
+ :param 'PosturePolicySetPolicyConstraintArgs' constraint: Policy constraint definition.It can have the definition of one of following constraints: orgPolicyConstraint orgPolicyConstraintCustom securityHealthAnalyticsModule securityHealthAnalyticsCustomModule
126
+ Structure is documented below.
127
+ :param str policy_id: ID of the policy.
128
+ :param Sequence['PosturePolicySetPolicyComplianceStandardArgs'] compliance_standards: Mapping for policy to security standards and controls.
129
+ Structure is documented below.
130
+ :param str description: Description of the policy.
131
+ """
132
+ pulumi.set(__self__, "constraint", constraint)
133
+ pulumi.set(__self__, "policy_id", policy_id)
134
+ if compliance_standards is not None:
135
+ pulumi.set(__self__, "compliance_standards", compliance_standards)
136
+ if description is not None:
137
+ pulumi.set(__self__, "description", description)
138
+
139
+ @property
140
+ @pulumi.getter
141
+ def constraint(self) -> 'outputs.PosturePolicySetPolicyConstraint':
142
+ """
143
+ Policy constraint definition.It can have the definition of one of following constraints: orgPolicyConstraint orgPolicyConstraintCustom securityHealthAnalyticsModule securityHealthAnalyticsCustomModule
144
+ Structure is documented below.
145
+ """
146
+ return pulumi.get(self, "constraint")
147
+
148
+ @property
149
+ @pulumi.getter(name="policyId")
150
+ def policy_id(self) -> str:
151
+ """
152
+ ID of the policy.
153
+ """
154
+ return pulumi.get(self, "policy_id")
155
+
156
+ @property
157
+ @pulumi.getter(name="complianceStandards")
158
+ def compliance_standards(self) -> Optional[Sequence['outputs.PosturePolicySetPolicyComplianceStandard']]:
159
+ """
160
+ Mapping for policy to security standards and controls.
161
+ Structure is documented below.
162
+ """
163
+ return pulumi.get(self, "compliance_standards")
164
+
165
+ @property
166
+ @pulumi.getter
167
+ def description(self) -> Optional[str]:
168
+ """
169
+ Description of the policy.
170
+ """
171
+ return pulumi.get(self, "description")
172
+
173
+
174
+ @pulumi.output_type
175
+ class PosturePolicySetPolicyComplianceStandard(dict):
176
+ def __init__(__self__, *,
177
+ control: Optional[str] = None,
178
+ standard: Optional[str] = None):
179
+ """
180
+ :param str control: Mapping of security controls for the policy.
181
+ :param str standard: Mapping of compliance standards for the policy.
182
+ """
183
+ if control is not None:
184
+ pulumi.set(__self__, "control", control)
185
+ if standard is not None:
186
+ pulumi.set(__self__, "standard", standard)
187
+
188
+ @property
189
+ @pulumi.getter
190
+ def control(self) -> Optional[str]:
191
+ """
192
+ Mapping of security controls for the policy.
193
+ """
194
+ return pulumi.get(self, "control")
195
+
196
+ @property
197
+ @pulumi.getter
198
+ def standard(self) -> Optional[str]:
199
+ """
200
+ Mapping of compliance standards for the policy.
201
+ """
202
+ return pulumi.get(self, "standard")
203
+
204
+
205
+ @pulumi.output_type
206
+ class PosturePolicySetPolicyConstraint(dict):
207
+ @staticmethod
208
+ def __key_warning(key: str):
209
+ suggest = None
210
+ if key == "orgPolicyConstraint":
211
+ suggest = "org_policy_constraint"
212
+ elif key == "orgPolicyConstraintCustom":
213
+ suggest = "org_policy_constraint_custom"
214
+ elif key == "securityHealthAnalyticsCustomModule":
215
+ suggest = "security_health_analytics_custom_module"
216
+ elif key == "securityHealthAnalyticsModule":
217
+ suggest = "security_health_analytics_module"
218
+
219
+ if suggest:
220
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraint. Access the value via the '{suggest}' property getter instead.")
221
+
222
+ def __getitem__(self, key: str) -> Any:
223
+ PosturePolicySetPolicyConstraint.__key_warning(key)
224
+ return super().__getitem__(key)
225
+
226
+ def get(self, key: str, default = None) -> Any:
227
+ PosturePolicySetPolicyConstraint.__key_warning(key)
228
+ return super().get(key, default)
229
+
230
+ def __init__(__self__, *,
231
+ org_policy_constraint: Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraint'] = None,
232
+ org_policy_constraint_custom: Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustom'] = None,
233
+ security_health_analytics_custom_module: Optional['outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModule'] = None,
234
+ security_health_analytics_module: Optional['outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsModule'] = None):
235
+ """
236
+ :param 'PosturePolicySetPolicyConstraintOrgPolicyConstraintArgs' org_policy_constraint: Organization policy canned constraint definition.
237
+ Structure is documented below.
238
+ :param 'PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomArgs' org_policy_constraint_custom: Organization policy custom constraint policy definition.
239
+ Structure is documented below.
240
+ :param 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleArgs' security_health_analytics_custom_module: Definition of Security Health Analytics Custom Module.
241
+ Structure is documented below.
242
+ :param 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsModuleArgs' security_health_analytics_module: Security Health Analytics built-in detector definition.
243
+ Structure is documented below.
244
+ """
245
+ if org_policy_constraint is not None:
246
+ pulumi.set(__self__, "org_policy_constraint", org_policy_constraint)
247
+ if org_policy_constraint_custom is not None:
248
+ pulumi.set(__self__, "org_policy_constraint_custom", org_policy_constraint_custom)
249
+ if security_health_analytics_custom_module is not None:
250
+ pulumi.set(__self__, "security_health_analytics_custom_module", security_health_analytics_custom_module)
251
+ if security_health_analytics_module is not None:
252
+ pulumi.set(__self__, "security_health_analytics_module", security_health_analytics_module)
253
+
254
+ @property
255
+ @pulumi.getter(name="orgPolicyConstraint")
256
+ def org_policy_constraint(self) -> Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraint']:
257
+ """
258
+ Organization policy canned constraint definition.
259
+ Structure is documented below.
260
+ """
261
+ return pulumi.get(self, "org_policy_constraint")
262
+
263
+ @property
264
+ @pulumi.getter(name="orgPolicyConstraintCustom")
265
+ def org_policy_constraint_custom(self) -> Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustom']:
266
+ """
267
+ Organization policy custom constraint policy definition.
268
+ Structure is documented below.
269
+ """
270
+ return pulumi.get(self, "org_policy_constraint_custom")
271
+
272
+ @property
273
+ @pulumi.getter(name="securityHealthAnalyticsCustomModule")
274
+ def security_health_analytics_custom_module(self) -> Optional['outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModule']:
275
+ """
276
+ Definition of Security Health Analytics Custom Module.
277
+ Structure is documented below.
278
+ """
279
+ return pulumi.get(self, "security_health_analytics_custom_module")
280
+
281
+ @property
282
+ @pulumi.getter(name="securityHealthAnalyticsModule")
283
+ def security_health_analytics_module(self) -> Optional['outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsModule']:
284
+ """
285
+ Security Health Analytics built-in detector definition.
286
+ Structure is documented below.
287
+ """
288
+ return pulumi.get(self, "security_health_analytics_module")
289
+
290
+
291
+ @pulumi.output_type
292
+ class PosturePolicySetPolicyConstraintOrgPolicyConstraint(dict):
293
+ @staticmethod
294
+ def __key_warning(key: str):
295
+ suggest = None
296
+ if key == "cannedConstraintId":
297
+ suggest = "canned_constraint_id"
298
+ elif key == "policyRules":
299
+ suggest = "policy_rules"
300
+
301
+ if suggest:
302
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraintOrgPolicyConstraint. Access the value via the '{suggest}' property getter instead.")
303
+
304
+ def __getitem__(self, key: str) -> Any:
305
+ PosturePolicySetPolicyConstraintOrgPolicyConstraint.__key_warning(key)
306
+ return super().__getitem__(key)
307
+
308
+ def get(self, key: str, default = None) -> Any:
309
+ PosturePolicySetPolicyConstraintOrgPolicyConstraint.__key_warning(key)
310
+ return super().get(key, default)
311
+
312
+ def __init__(__self__, *,
313
+ canned_constraint_id: str,
314
+ policy_rules: Sequence['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRule']):
315
+ """
316
+ :param str canned_constraint_id: Organization policy canned constraint Id
317
+ :param Sequence['PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleArgs'] policy_rules: Definition of policy rules
318
+ Structure is documented below.
319
+ """
320
+ pulumi.set(__self__, "canned_constraint_id", canned_constraint_id)
321
+ pulumi.set(__self__, "policy_rules", policy_rules)
322
+
323
+ @property
324
+ @pulumi.getter(name="cannedConstraintId")
325
+ def canned_constraint_id(self) -> str:
326
+ """
327
+ Organization policy canned constraint Id
328
+ """
329
+ return pulumi.get(self, "canned_constraint_id")
330
+
331
+ @property
332
+ @pulumi.getter(name="policyRules")
333
+ def policy_rules(self) -> Sequence['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRule']:
334
+ """
335
+ Definition of policy rules
336
+ Structure is documented below.
337
+ """
338
+ return pulumi.get(self, "policy_rules")
339
+
340
+
341
+ @pulumi.output_type
342
+ class PosturePolicySetPolicyConstraintOrgPolicyConstraintCustom(dict):
343
+ @staticmethod
344
+ def __key_warning(key: str):
345
+ suggest = None
346
+ if key == "policyRules":
347
+ suggest = "policy_rules"
348
+ elif key == "customConstraint":
349
+ suggest = "custom_constraint"
350
+
351
+ if suggest:
352
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraintOrgPolicyConstraintCustom. Access the value via the '{suggest}' property getter instead.")
353
+
354
+ def __getitem__(self, key: str) -> Any:
355
+ PosturePolicySetPolicyConstraintOrgPolicyConstraintCustom.__key_warning(key)
356
+ return super().__getitem__(key)
357
+
358
+ def get(self, key: str, default = None) -> Any:
359
+ PosturePolicySetPolicyConstraintOrgPolicyConstraintCustom.__key_warning(key)
360
+ return super().get(key, default)
361
+
362
+ def __init__(__self__, *,
363
+ policy_rules: Sequence['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRule'],
364
+ custom_constraint: Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomCustomConstraint'] = None):
365
+ """
366
+ :param Sequence['PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleArgs'] policy_rules: Definition of policy rules
367
+ Structure is documented below.
368
+ :param 'PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomCustomConstraintArgs' custom_constraint: Organization policy custom constraint definition.
369
+ Structure is documented below.
370
+ """
371
+ pulumi.set(__self__, "policy_rules", policy_rules)
372
+ if custom_constraint is not None:
373
+ pulumi.set(__self__, "custom_constraint", custom_constraint)
374
+
375
+ @property
376
+ @pulumi.getter(name="policyRules")
377
+ def policy_rules(self) -> Sequence['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRule']:
378
+ """
379
+ Definition of policy rules
380
+ Structure is documented below.
381
+ """
382
+ return pulumi.get(self, "policy_rules")
383
+
384
+ @property
385
+ @pulumi.getter(name="customConstraint")
386
+ def custom_constraint(self) -> Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomCustomConstraint']:
387
+ """
388
+ Organization policy custom constraint definition.
389
+ Structure is documented below.
390
+ """
391
+ return pulumi.get(self, "custom_constraint")
392
+
393
+
394
+ @pulumi.output_type
395
+ class PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomCustomConstraint(dict):
396
+ @staticmethod
397
+ def __key_warning(key: str):
398
+ suggest = None
399
+ if key == "actionType":
400
+ suggest = "action_type"
401
+ elif key == "methodTypes":
402
+ suggest = "method_types"
403
+ elif key == "resourceTypes":
404
+ suggest = "resource_types"
405
+ elif key == "displayName":
406
+ suggest = "display_name"
407
+
408
+ if suggest:
409
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomCustomConstraint. Access the value via the '{suggest}' property getter instead.")
410
+
411
+ def __getitem__(self, key: str) -> Any:
412
+ PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomCustomConstraint.__key_warning(key)
413
+ return super().__getitem__(key)
414
+
415
+ def get(self, key: str, default = None) -> Any:
416
+ PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomCustomConstraint.__key_warning(key)
417
+ return super().get(key, default)
418
+
419
+ def __init__(__self__, *,
420
+ action_type: str,
421
+ condition: str,
422
+ method_types: Sequence[str],
423
+ name: str,
424
+ resource_types: Sequence[str],
425
+ description: Optional[str] = None,
426
+ display_name: Optional[str] = None):
427
+ """
428
+ :param str action_type: The action to take if the condition is met.
429
+ Possible values are: `ALLOW`, `DENY`.
430
+ :param str condition: A CEL condition that refers to a supported service resource, for example `resource.management.autoUpgrade == false`. For details about CEL usage, see [Common Expression Language](https://cloud.google.com/resource-manager/docs/organization-policy/creating-managing-custom-constraints#common_expression_language).
431
+ :param Sequence[str] method_types: A list of RESTful methods for which to enforce the constraint. Can be `CREATE`, `UPDATE`, or both. Not all Google Cloud services support both methods. To see supported methods for each service, find the service in [Supported services](https://cloud.google.com/resource-manager/docs/organization-policy/custom-constraint-supported-services).
432
+ :param str name: Immutable. The name of the custom constraint. This is unique within the organization.
433
+ :param Sequence[str] resource_types: Immutable. The fully qualified name of the Google Cloud REST resource containing the object and field you want to restrict. For example, `container.googleapis.com/NodePool`.
434
+ :param str description: A human-friendly description of the constraint to display as an error message when the policy is violated.
435
+ :param str display_name: A human-friendly name for the constraint.
436
+ """
437
+ pulumi.set(__self__, "action_type", action_type)
438
+ pulumi.set(__self__, "condition", condition)
439
+ pulumi.set(__self__, "method_types", method_types)
440
+ pulumi.set(__self__, "name", name)
441
+ pulumi.set(__self__, "resource_types", resource_types)
442
+ if description is not None:
443
+ pulumi.set(__self__, "description", description)
444
+ if display_name is not None:
445
+ pulumi.set(__self__, "display_name", display_name)
446
+
447
+ @property
448
+ @pulumi.getter(name="actionType")
449
+ def action_type(self) -> str:
450
+ """
451
+ The action to take if the condition is met.
452
+ Possible values are: `ALLOW`, `DENY`.
453
+ """
454
+ return pulumi.get(self, "action_type")
455
+
456
+ @property
457
+ @pulumi.getter
458
+ def condition(self) -> str:
459
+ """
460
+ A CEL condition that refers to a supported service resource, for example `resource.management.autoUpgrade == false`. For details about CEL usage, see [Common Expression Language](https://cloud.google.com/resource-manager/docs/organization-policy/creating-managing-custom-constraints#common_expression_language).
461
+ """
462
+ return pulumi.get(self, "condition")
463
+
464
+ @property
465
+ @pulumi.getter(name="methodTypes")
466
+ def method_types(self) -> Sequence[str]:
467
+ """
468
+ A list of RESTful methods for which to enforce the constraint. Can be `CREATE`, `UPDATE`, or both. Not all Google Cloud services support both methods. To see supported methods for each service, find the service in [Supported services](https://cloud.google.com/resource-manager/docs/organization-policy/custom-constraint-supported-services).
469
+ """
470
+ return pulumi.get(self, "method_types")
471
+
472
+ @property
473
+ @pulumi.getter
474
+ def name(self) -> str:
475
+ """
476
+ Immutable. The name of the custom constraint. This is unique within the organization.
477
+ """
478
+ return pulumi.get(self, "name")
479
+
480
+ @property
481
+ @pulumi.getter(name="resourceTypes")
482
+ def resource_types(self) -> Sequence[str]:
483
+ """
484
+ Immutable. The fully qualified name of the Google Cloud REST resource containing the object and field you want to restrict. For example, `container.googleapis.com/NodePool`.
485
+ """
486
+ return pulumi.get(self, "resource_types")
487
+
488
+ @property
489
+ @pulumi.getter
490
+ def description(self) -> Optional[str]:
491
+ """
492
+ A human-friendly description of the constraint to display as an error message when the policy is violated.
493
+ """
494
+ return pulumi.get(self, "description")
495
+
496
+ @property
497
+ @pulumi.getter(name="displayName")
498
+ def display_name(self) -> Optional[str]:
499
+ """
500
+ A human-friendly name for the constraint.
501
+ """
502
+ return pulumi.get(self, "display_name")
503
+
504
+
505
+ @pulumi.output_type
506
+ class PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRule(dict):
507
+ @staticmethod
508
+ def __key_warning(key: str):
509
+ suggest = None
510
+ if key == "allowAll":
511
+ suggest = "allow_all"
512
+ elif key == "denyAll":
513
+ suggest = "deny_all"
514
+
515
+ if suggest:
516
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRule. Access the value via the '{suggest}' property getter instead.")
517
+
518
+ def __getitem__(self, key: str) -> Any:
519
+ PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRule.__key_warning(key)
520
+ return super().__getitem__(key)
521
+
522
+ def get(self, key: str, default = None) -> Any:
523
+ PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRule.__key_warning(key)
524
+ return super().get(key, default)
525
+
526
+ def __init__(__self__, *,
527
+ allow_all: Optional[bool] = None,
528
+ deny_all: Optional[bool] = None,
529
+ enforce: Optional[bool] = None,
530
+ expr: Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleExpr'] = None,
531
+ values: Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleValues'] = None):
532
+ """
533
+ :param bool allow_all: Setting this to true means that all values are allowed. This field can be set only in policies for list constraints.
534
+ :param bool deny_all: Setting this to true means that all values are denied. This field can be set only in policies for list constraints.
535
+ :param bool enforce: If `true`, then the policy is enforced. If `false`, then any configuration is acceptable.
536
+ This field can be set only in policies for boolean constraints.
537
+ :param 'PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleExprArgs' expr: Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.
538
+ This page details the objects and attributes that are used to the build the CEL expressions for
539
+ custom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.
540
+ Structure is documented below.
541
+ :param 'PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleValuesArgs' values: List of values to be used for this policy rule. This field can be set only in policies for list constraints.
542
+ Structure is documented below.
543
+ """
544
+ if allow_all is not None:
545
+ pulumi.set(__self__, "allow_all", allow_all)
546
+ if deny_all is not None:
547
+ pulumi.set(__self__, "deny_all", deny_all)
548
+ if enforce is not None:
549
+ pulumi.set(__self__, "enforce", enforce)
550
+ if expr is not None:
551
+ pulumi.set(__self__, "expr", expr)
552
+ if values is not None:
553
+ pulumi.set(__self__, "values", values)
554
+
555
+ @property
556
+ @pulumi.getter(name="allowAll")
557
+ def allow_all(self) -> Optional[bool]:
558
+ """
559
+ Setting this to true means that all values are allowed. This field can be set only in policies for list constraints.
560
+ """
561
+ return pulumi.get(self, "allow_all")
562
+
563
+ @property
564
+ @pulumi.getter(name="denyAll")
565
+ def deny_all(self) -> Optional[bool]:
566
+ """
567
+ Setting this to true means that all values are denied. This field can be set only in policies for list constraints.
568
+ """
569
+ return pulumi.get(self, "deny_all")
570
+
571
+ @property
572
+ @pulumi.getter
573
+ def enforce(self) -> Optional[bool]:
574
+ """
575
+ If `true`, then the policy is enforced. If `false`, then any configuration is acceptable.
576
+ This field can be set only in policies for boolean constraints.
577
+ """
578
+ return pulumi.get(self, "enforce")
579
+
580
+ @property
581
+ @pulumi.getter
582
+ def expr(self) -> Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleExpr']:
583
+ """
584
+ Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.
585
+ This page details the objects and attributes that are used to the build the CEL expressions for
586
+ custom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.
587
+ Structure is documented below.
588
+ """
589
+ return pulumi.get(self, "expr")
590
+
591
+ @property
592
+ @pulumi.getter
593
+ def values(self) -> Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleValues']:
594
+ """
595
+ List of values to be used for this policy rule. This field can be set only in policies for list constraints.
596
+ Structure is documented below.
597
+ """
598
+ return pulumi.get(self, "values")
599
+
600
+
601
+ @pulumi.output_type
602
+ class PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleExpr(dict):
603
+ def __init__(__self__, *,
604
+ expression: str,
605
+ description: Optional[str] = None,
606
+ location: Optional[str] = None,
607
+ title: Optional[str] = None):
608
+ """
609
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
610
+ :param str description: Description of the expression
611
+ :param str location: String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
612
+ :param str title: Title for the expression, i.e. a short string describing its purpose.
613
+ """
614
+ pulumi.set(__self__, "expression", expression)
615
+ if description is not None:
616
+ pulumi.set(__self__, "description", description)
617
+ if location is not None:
618
+ pulumi.set(__self__, "location", location)
619
+ if title is not None:
620
+ pulumi.set(__self__, "title", title)
621
+
622
+ @property
623
+ @pulumi.getter
624
+ def expression(self) -> str:
625
+ """
626
+ Textual representation of an expression in Common Expression Language syntax.
627
+ """
628
+ return pulumi.get(self, "expression")
629
+
630
+ @property
631
+ @pulumi.getter
632
+ def description(self) -> Optional[str]:
633
+ """
634
+ Description of the expression
635
+ """
636
+ return pulumi.get(self, "description")
637
+
638
+ @property
639
+ @pulumi.getter
640
+ def location(self) -> Optional[str]:
641
+ """
642
+ String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
643
+ """
644
+ return pulumi.get(self, "location")
645
+
646
+ @property
647
+ @pulumi.getter
648
+ def title(self) -> Optional[str]:
649
+ """
650
+ Title for the expression, i.e. a short string describing its purpose.
651
+ """
652
+ return pulumi.get(self, "title")
653
+
654
+
655
+ @pulumi.output_type
656
+ class PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleValues(dict):
657
+ @staticmethod
658
+ def __key_warning(key: str):
659
+ suggest = None
660
+ if key == "allowedValues":
661
+ suggest = "allowed_values"
662
+ elif key == "deniedValues":
663
+ suggest = "denied_values"
664
+
665
+ if suggest:
666
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleValues. Access the value via the '{suggest}' property getter instead.")
667
+
668
+ def __getitem__(self, key: str) -> Any:
669
+ PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleValues.__key_warning(key)
670
+ return super().__getitem__(key)
671
+
672
+ def get(self, key: str, default = None) -> Any:
673
+ PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleValues.__key_warning(key)
674
+ return super().get(key, default)
675
+
676
+ def __init__(__self__, *,
677
+ allowed_values: Optional[Sequence[str]] = None,
678
+ denied_values: Optional[Sequence[str]] = None):
679
+ """
680
+ :param Sequence[str] allowed_values: List of values allowed at this resource.
681
+ :param Sequence[str] denied_values: List of values denied at this resource.
682
+ """
683
+ if allowed_values is not None:
684
+ pulumi.set(__self__, "allowed_values", allowed_values)
685
+ if denied_values is not None:
686
+ pulumi.set(__self__, "denied_values", denied_values)
687
+
688
+ @property
689
+ @pulumi.getter(name="allowedValues")
690
+ def allowed_values(self) -> Optional[Sequence[str]]:
691
+ """
692
+ List of values allowed at this resource.
693
+ """
694
+ return pulumi.get(self, "allowed_values")
695
+
696
+ @property
697
+ @pulumi.getter(name="deniedValues")
698
+ def denied_values(self) -> Optional[Sequence[str]]:
699
+ """
700
+ List of values denied at this resource.
701
+ """
702
+ return pulumi.get(self, "denied_values")
703
+
704
+
705
+ @pulumi.output_type
706
+ class PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRule(dict):
707
+ @staticmethod
708
+ def __key_warning(key: str):
709
+ suggest = None
710
+ if key == "allowAll":
711
+ suggest = "allow_all"
712
+ elif key == "denyAll":
713
+ suggest = "deny_all"
714
+
715
+ if suggest:
716
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRule. Access the value via the '{suggest}' property getter instead.")
717
+
718
+ def __getitem__(self, key: str) -> Any:
719
+ PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRule.__key_warning(key)
720
+ return super().__getitem__(key)
721
+
722
+ def get(self, key: str, default = None) -> Any:
723
+ PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRule.__key_warning(key)
724
+ return super().get(key, default)
725
+
726
+ def __init__(__self__, *,
727
+ allow_all: Optional[bool] = None,
728
+ deny_all: Optional[bool] = None,
729
+ enforce: Optional[bool] = None,
730
+ expr: Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleExpr'] = None,
731
+ values: Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleValues'] = None):
732
+ """
733
+ :param bool allow_all: Setting this to true means that all values are allowed. This field can be set only in policies for list constraints.
734
+ :param bool deny_all: Setting this to true means that all values are denied. This field can be set only in policies for list constraints.
735
+ :param bool enforce: If `true`, then the policy is enforced. If `false`, then any configuration is acceptable.
736
+ This field can be set only in policies for boolean constraints.
737
+ :param 'PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleExprArgs' expr: Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.
738
+ This page details the objects and attributes that are used to the build the CEL expressions for
739
+ custom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.
740
+ Structure is documented below.
741
+ :param 'PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleValuesArgs' values: List of values to be used for this policy rule. This field can be set only in policies for list constraints.
742
+ Structure is documented below.
743
+ """
744
+ if allow_all is not None:
745
+ pulumi.set(__self__, "allow_all", allow_all)
746
+ if deny_all is not None:
747
+ pulumi.set(__self__, "deny_all", deny_all)
748
+ if enforce is not None:
749
+ pulumi.set(__self__, "enforce", enforce)
750
+ if expr is not None:
751
+ pulumi.set(__self__, "expr", expr)
752
+ if values is not None:
753
+ pulumi.set(__self__, "values", values)
754
+
755
+ @property
756
+ @pulumi.getter(name="allowAll")
757
+ def allow_all(self) -> Optional[bool]:
758
+ """
759
+ Setting this to true means that all values are allowed. This field can be set only in policies for list constraints.
760
+ """
761
+ return pulumi.get(self, "allow_all")
762
+
763
+ @property
764
+ @pulumi.getter(name="denyAll")
765
+ def deny_all(self) -> Optional[bool]:
766
+ """
767
+ Setting this to true means that all values are denied. This field can be set only in policies for list constraints.
768
+ """
769
+ return pulumi.get(self, "deny_all")
770
+
771
+ @property
772
+ @pulumi.getter
773
+ def enforce(self) -> Optional[bool]:
774
+ """
775
+ If `true`, then the policy is enforced. If `false`, then any configuration is acceptable.
776
+ This field can be set only in policies for boolean constraints.
777
+ """
778
+ return pulumi.get(self, "enforce")
779
+
780
+ @property
781
+ @pulumi.getter
782
+ def expr(self) -> Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleExpr']:
783
+ """
784
+ Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.
785
+ This page details the objects and attributes that are used to the build the CEL expressions for
786
+ custom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.
787
+ Structure is documented below.
788
+ """
789
+ return pulumi.get(self, "expr")
790
+
791
+ @property
792
+ @pulumi.getter
793
+ def values(self) -> Optional['outputs.PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleValues']:
794
+ """
795
+ List of values to be used for this policy rule. This field can be set only in policies for list constraints.
796
+ Structure is documented below.
797
+ """
798
+ return pulumi.get(self, "values")
799
+
800
+
801
+ @pulumi.output_type
802
+ class PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleExpr(dict):
803
+ def __init__(__self__, *,
804
+ expression: str,
805
+ description: Optional[str] = None,
806
+ location: Optional[str] = None,
807
+ title: Optional[str] = None):
808
+ """
809
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
810
+ :param str description: Description of the expression
811
+ :param str location: String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
812
+ :param str title: Title for the expression, i.e. a short string describing its purpose.
813
+ """
814
+ pulumi.set(__self__, "expression", expression)
815
+ if description is not None:
816
+ pulumi.set(__self__, "description", description)
817
+ if location is not None:
818
+ pulumi.set(__self__, "location", location)
819
+ if title is not None:
820
+ pulumi.set(__self__, "title", title)
821
+
822
+ @property
823
+ @pulumi.getter
824
+ def expression(self) -> str:
825
+ """
826
+ Textual representation of an expression in Common Expression Language syntax.
827
+ """
828
+ return pulumi.get(self, "expression")
829
+
830
+ @property
831
+ @pulumi.getter
832
+ def description(self) -> Optional[str]:
833
+ """
834
+ Description of the expression
835
+ """
836
+ return pulumi.get(self, "description")
837
+
838
+ @property
839
+ @pulumi.getter
840
+ def location(self) -> Optional[str]:
841
+ """
842
+ String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
843
+ """
844
+ return pulumi.get(self, "location")
845
+
846
+ @property
847
+ @pulumi.getter
848
+ def title(self) -> Optional[str]:
849
+ """
850
+ Title for the expression, i.e. a short string describing its purpose.
851
+ """
852
+ return pulumi.get(self, "title")
853
+
854
+
855
+ @pulumi.output_type
856
+ class PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleValues(dict):
857
+ @staticmethod
858
+ def __key_warning(key: str):
859
+ suggest = None
860
+ if key == "allowedValues":
861
+ suggest = "allowed_values"
862
+ elif key == "deniedValues":
863
+ suggest = "denied_values"
864
+
865
+ if suggest:
866
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleValues. Access the value via the '{suggest}' property getter instead.")
867
+
868
+ def __getitem__(self, key: str) -> Any:
869
+ PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleValues.__key_warning(key)
870
+ return super().__getitem__(key)
871
+
872
+ def get(self, key: str, default = None) -> Any:
873
+ PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleValues.__key_warning(key)
874
+ return super().get(key, default)
875
+
876
+ def __init__(__self__, *,
877
+ allowed_values: Optional[Sequence[str]] = None,
878
+ denied_values: Optional[Sequence[str]] = None):
879
+ """
880
+ :param Sequence[str] allowed_values: List of values allowed at this resource.
881
+ :param Sequence[str] denied_values: List of values denied at this resource.
882
+ """
883
+ if allowed_values is not None:
884
+ pulumi.set(__self__, "allowed_values", allowed_values)
885
+ if denied_values is not None:
886
+ pulumi.set(__self__, "denied_values", denied_values)
887
+
888
+ @property
889
+ @pulumi.getter(name="allowedValues")
890
+ def allowed_values(self) -> Optional[Sequence[str]]:
891
+ """
892
+ List of values allowed at this resource.
893
+ """
894
+ return pulumi.get(self, "allowed_values")
895
+
896
+ @property
897
+ @pulumi.getter(name="deniedValues")
898
+ def denied_values(self) -> Optional[Sequence[str]]:
899
+ """
900
+ List of values denied at this resource.
901
+ """
902
+ return pulumi.get(self, "denied_values")
903
+
904
+
905
+ @pulumi.output_type
906
+ class PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModule(dict):
907
+ @staticmethod
908
+ def __key_warning(key: str):
909
+ suggest = None
910
+ if key == "displayName":
911
+ suggest = "display_name"
912
+ elif key == "moduleEnablementState":
913
+ suggest = "module_enablement_state"
914
+
915
+ if suggest:
916
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModule. Access the value via the '{suggest}' property getter instead.")
917
+
918
+ def __getitem__(self, key: str) -> Any:
919
+ PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModule.__key_warning(key)
920
+ return super().__getitem__(key)
921
+
922
+ def get(self, key: str, default = None) -> Any:
923
+ PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModule.__key_warning(key)
924
+ return super().get(key, default)
925
+
926
+ def __init__(__self__, *,
927
+ config: 'outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfig',
928
+ display_name: Optional[str] = None,
929
+ id: Optional[str] = None,
930
+ module_enablement_state: Optional[str] = None):
931
+ """
932
+ :param 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigArgs' config: Custom module details.
933
+ Structure is documented below.
934
+ :param str display_name: The display name of the Security Health Analytics custom module. This
935
+ display name becomes the finding category for all findings that are
936
+ returned by this custom module.
937
+ :param str id: (Output)
938
+ A server generated id of custom module.
939
+ :param str module_enablement_state: The state of enablement for the module at its level of the resource hierarchy.
940
+ Possible values are: `ENABLEMENT_STATE_UNSPECIFIED`, `ENABLED`, `DISABLED`.
941
+ """
942
+ pulumi.set(__self__, "config", config)
943
+ if display_name is not None:
944
+ pulumi.set(__self__, "display_name", display_name)
945
+ if id is not None:
946
+ pulumi.set(__self__, "id", id)
947
+ if module_enablement_state is not None:
948
+ pulumi.set(__self__, "module_enablement_state", module_enablement_state)
949
+
950
+ @property
951
+ @pulumi.getter
952
+ def config(self) -> 'outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfig':
953
+ """
954
+ Custom module details.
955
+ Structure is documented below.
956
+ """
957
+ return pulumi.get(self, "config")
958
+
959
+ @property
960
+ @pulumi.getter(name="displayName")
961
+ def display_name(self) -> Optional[str]:
962
+ """
963
+ The display name of the Security Health Analytics custom module. This
964
+ display name becomes the finding category for all findings that are
965
+ returned by this custom module.
966
+ """
967
+ return pulumi.get(self, "display_name")
968
+
969
+ @property
970
+ @pulumi.getter
971
+ def id(self) -> Optional[str]:
972
+ """
973
+ (Output)
974
+ A server generated id of custom module.
975
+ """
976
+ return pulumi.get(self, "id")
977
+
978
+ @property
979
+ @pulumi.getter(name="moduleEnablementState")
980
+ def module_enablement_state(self) -> Optional[str]:
981
+ """
982
+ The state of enablement for the module at its level of the resource hierarchy.
983
+ Possible values are: `ENABLEMENT_STATE_UNSPECIFIED`, `ENABLED`, `DISABLED`.
984
+ """
985
+ return pulumi.get(self, "module_enablement_state")
986
+
987
+
988
+ @pulumi.output_type
989
+ class PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfig(dict):
990
+ @staticmethod
991
+ def __key_warning(key: str):
992
+ suggest = None
993
+ if key == "resourceSelector":
994
+ suggest = "resource_selector"
995
+ elif key == "customOutput":
996
+ suggest = "custom_output"
997
+
998
+ if suggest:
999
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfig. Access the value via the '{suggest}' property getter instead.")
1000
+
1001
+ def __getitem__(self, key: str) -> Any:
1002
+ PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfig.__key_warning(key)
1003
+ return super().__getitem__(key)
1004
+
1005
+ def get(self, key: str, default = None) -> Any:
1006
+ PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfig.__key_warning(key)
1007
+ return super().get(key, default)
1008
+
1009
+ def __init__(__self__, *,
1010
+ predicate: 'outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigPredicate',
1011
+ resource_selector: 'outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigResourceSelector',
1012
+ severity: str,
1013
+ custom_output: Optional['outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutput'] = None,
1014
+ description: Optional[str] = None,
1015
+ recommendation: Optional[str] = None):
1016
+ """
1017
+ :param 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigPredicateArgs' predicate: The CEL expression to evaluate to produce findings.When the expression
1018
+ evaluates to true against a resource, a finding is generated.
1019
+ Structure is documented below.
1020
+ :param 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigResourceSelectorArgs' resource_selector: The resource types that the custom module operates on. Each custom module
1021
+ can specify up to 5 resource types.
1022
+ Structure is documented below.
1023
+ :param str severity: The severity to assign to findings generated by the module.
1024
+ Possible values are: `SEVERITY_UNSPECIFIED`, `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`.
1025
+ :param 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputArgs' custom_output: Custom output properties. A set of optional name-value pairs that define custom source properties to
1026
+ return with each finding that is generated by the custom module. The custom
1027
+ source properties that are defined here are included in the finding JSON
1028
+ under `sourceProperties`.
1029
+ Structure is documented below.
1030
+ :param str description: Text that describes the vulnerability or misconfiguration that the custom
1031
+ module detects.
1032
+ :param str recommendation: An explanation of the recommended steps that security teams can take to
1033
+ resolve the detected issue
1034
+ """
1035
+ pulumi.set(__self__, "predicate", predicate)
1036
+ pulumi.set(__self__, "resource_selector", resource_selector)
1037
+ pulumi.set(__self__, "severity", severity)
1038
+ if custom_output is not None:
1039
+ pulumi.set(__self__, "custom_output", custom_output)
1040
+ if description is not None:
1041
+ pulumi.set(__self__, "description", description)
1042
+ if recommendation is not None:
1043
+ pulumi.set(__self__, "recommendation", recommendation)
1044
+
1045
+ @property
1046
+ @pulumi.getter
1047
+ def predicate(self) -> 'outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigPredicate':
1048
+ """
1049
+ The CEL expression to evaluate to produce findings.When the expression
1050
+ evaluates to true against a resource, a finding is generated.
1051
+ Structure is documented below.
1052
+ """
1053
+ return pulumi.get(self, "predicate")
1054
+
1055
+ @property
1056
+ @pulumi.getter(name="resourceSelector")
1057
+ def resource_selector(self) -> 'outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigResourceSelector':
1058
+ """
1059
+ The resource types that the custom module operates on. Each custom module
1060
+ can specify up to 5 resource types.
1061
+ Structure is documented below.
1062
+ """
1063
+ return pulumi.get(self, "resource_selector")
1064
+
1065
+ @property
1066
+ @pulumi.getter
1067
+ def severity(self) -> str:
1068
+ """
1069
+ The severity to assign to findings generated by the module.
1070
+ Possible values are: `SEVERITY_UNSPECIFIED`, `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`.
1071
+ """
1072
+ return pulumi.get(self, "severity")
1073
+
1074
+ @property
1075
+ @pulumi.getter(name="customOutput")
1076
+ def custom_output(self) -> Optional['outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutput']:
1077
+ """
1078
+ Custom output properties. A set of optional name-value pairs that define custom source properties to
1079
+ return with each finding that is generated by the custom module. The custom
1080
+ source properties that are defined here are included in the finding JSON
1081
+ under `sourceProperties`.
1082
+ Structure is documented below.
1083
+ """
1084
+ return pulumi.get(self, "custom_output")
1085
+
1086
+ @property
1087
+ @pulumi.getter
1088
+ def description(self) -> Optional[str]:
1089
+ """
1090
+ Text that describes the vulnerability or misconfiguration that the custom
1091
+ module detects.
1092
+ """
1093
+ return pulumi.get(self, "description")
1094
+
1095
+ @property
1096
+ @pulumi.getter
1097
+ def recommendation(self) -> Optional[str]:
1098
+ """
1099
+ An explanation of the recommended steps that security teams can take to
1100
+ resolve the detected issue
1101
+ """
1102
+ return pulumi.get(self, "recommendation")
1103
+
1104
+
1105
+ @pulumi.output_type
1106
+ class PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutput(dict):
1107
+ def __init__(__self__, *,
1108
+ properties: Optional[Sequence['outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputProperty']] = None):
1109
+ """
1110
+ :param Sequence['PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputPropertyArgs'] properties: A list of custom output properties to add to the finding.
1111
+ Structure is documented below.
1112
+ """
1113
+ if properties is not None:
1114
+ pulumi.set(__self__, "properties", properties)
1115
+
1116
+ @property
1117
+ @pulumi.getter
1118
+ def properties(self) -> Optional[Sequence['outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputProperty']]:
1119
+ """
1120
+ A list of custom output properties to add to the finding.
1121
+ Structure is documented below.
1122
+ """
1123
+ return pulumi.get(self, "properties")
1124
+
1125
+
1126
+ @pulumi.output_type
1127
+ class PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputProperty(dict):
1128
+ @staticmethod
1129
+ def __key_warning(key: str):
1130
+ suggest = None
1131
+ if key == "valueExpression":
1132
+ suggest = "value_expression"
1133
+
1134
+ if suggest:
1135
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputProperty. Access the value via the '{suggest}' property getter instead.")
1136
+
1137
+ def __getitem__(self, key: str) -> Any:
1138
+ PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputProperty.__key_warning(key)
1139
+ return super().__getitem__(key)
1140
+
1141
+ def get(self, key: str, default = None) -> Any:
1142
+ PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputProperty.__key_warning(key)
1143
+ return super().get(key, default)
1144
+
1145
+ def __init__(__self__, *,
1146
+ name: str,
1147
+ value_expression: Optional['outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputPropertyValueExpression'] = None):
1148
+ """
1149
+ :param str name: Name of the property for the custom output.
1150
+ :param 'PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputPropertyValueExpressionArgs' value_expression: The CEL expression for the custom output. A resource property can be
1151
+ specified to return the value of the property or a text string enclosed
1152
+ in quotation marks.
1153
+ Structure is documented below.
1154
+ """
1155
+ pulumi.set(__self__, "name", name)
1156
+ if value_expression is not None:
1157
+ pulumi.set(__self__, "value_expression", value_expression)
1158
+
1159
+ @property
1160
+ @pulumi.getter
1161
+ def name(self) -> str:
1162
+ """
1163
+ Name of the property for the custom output.
1164
+ """
1165
+ return pulumi.get(self, "name")
1166
+
1167
+ @property
1168
+ @pulumi.getter(name="valueExpression")
1169
+ def value_expression(self) -> Optional['outputs.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputPropertyValueExpression']:
1170
+ """
1171
+ The CEL expression for the custom output. A resource property can be
1172
+ specified to return the value of the property or a text string enclosed
1173
+ in quotation marks.
1174
+ Structure is documented below.
1175
+ """
1176
+ return pulumi.get(self, "value_expression")
1177
+
1178
+
1179
+ @pulumi.output_type
1180
+ class PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputPropertyValueExpression(dict):
1181
+ def __init__(__self__, *,
1182
+ expression: str,
1183
+ description: Optional[str] = None,
1184
+ location: Optional[str] = None,
1185
+ title: Optional[str] = None):
1186
+ """
1187
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
1188
+ :param str description: Description of the expression
1189
+ :param str location: String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
1190
+ :param str title: Title for the expression, i.e. a short string describing its purpose.
1191
+ """
1192
+ pulumi.set(__self__, "expression", expression)
1193
+ if description is not None:
1194
+ pulumi.set(__self__, "description", description)
1195
+ if location is not None:
1196
+ pulumi.set(__self__, "location", location)
1197
+ if title is not None:
1198
+ pulumi.set(__self__, "title", title)
1199
+
1200
+ @property
1201
+ @pulumi.getter
1202
+ def expression(self) -> str:
1203
+ """
1204
+ Textual representation of an expression in Common Expression Language syntax.
1205
+ """
1206
+ return pulumi.get(self, "expression")
1207
+
1208
+ @property
1209
+ @pulumi.getter
1210
+ def description(self) -> Optional[str]:
1211
+ """
1212
+ Description of the expression
1213
+ """
1214
+ return pulumi.get(self, "description")
1215
+
1216
+ @property
1217
+ @pulumi.getter
1218
+ def location(self) -> Optional[str]:
1219
+ """
1220
+ String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
1221
+ """
1222
+ return pulumi.get(self, "location")
1223
+
1224
+ @property
1225
+ @pulumi.getter
1226
+ def title(self) -> Optional[str]:
1227
+ """
1228
+ Title for the expression, i.e. a short string describing its purpose.
1229
+ """
1230
+ return pulumi.get(self, "title")
1231
+
1232
+
1233
+ @pulumi.output_type
1234
+ class PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigPredicate(dict):
1235
+ def __init__(__self__, *,
1236
+ expression: str,
1237
+ description: Optional[str] = None,
1238
+ location: Optional[str] = None,
1239
+ title: Optional[str] = None):
1240
+ """
1241
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
1242
+ :param str description: Description of the expression
1243
+ :param str location: String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
1244
+ :param str title: Title for the expression, i.e. a short string describing its purpose.
1245
+ """
1246
+ pulumi.set(__self__, "expression", expression)
1247
+ if description is not None:
1248
+ pulumi.set(__self__, "description", description)
1249
+ if location is not None:
1250
+ pulumi.set(__self__, "location", location)
1251
+ if title is not None:
1252
+ pulumi.set(__self__, "title", title)
1253
+
1254
+ @property
1255
+ @pulumi.getter
1256
+ def expression(self) -> str:
1257
+ """
1258
+ Textual representation of an expression in Common Expression Language syntax.
1259
+ """
1260
+ return pulumi.get(self, "expression")
1261
+
1262
+ @property
1263
+ @pulumi.getter
1264
+ def description(self) -> Optional[str]:
1265
+ """
1266
+ Description of the expression
1267
+ """
1268
+ return pulumi.get(self, "description")
1269
+
1270
+ @property
1271
+ @pulumi.getter
1272
+ def location(self) -> Optional[str]:
1273
+ """
1274
+ String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
1275
+ """
1276
+ return pulumi.get(self, "location")
1277
+
1278
+ @property
1279
+ @pulumi.getter
1280
+ def title(self) -> Optional[str]:
1281
+ """
1282
+ Title for the expression, i.e. a short string describing its purpose.
1283
+ """
1284
+ return pulumi.get(self, "title")
1285
+
1286
+
1287
+ @pulumi.output_type
1288
+ class PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigResourceSelector(dict):
1289
+ @staticmethod
1290
+ def __key_warning(key: str):
1291
+ suggest = None
1292
+ if key == "resourceTypes":
1293
+ suggest = "resource_types"
1294
+
1295
+ if suggest:
1296
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigResourceSelector. Access the value via the '{suggest}' property getter instead.")
1297
+
1298
+ def __getitem__(self, key: str) -> Any:
1299
+ PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigResourceSelector.__key_warning(key)
1300
+ return super().__getitem__(key)
1301
+
1302
+ def get(self, key: str, default = None) -> Any:
1303
+ PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigResourceSelector.__key_warning(key)
1304
+ return super().get(key, default)
1305
+
1306
+ def __init__(__self__, *,
1307
+ resource_types: Sequence[str]):
1308
+ """
1309
+ :param Sequence[str] resource_types: The resource types to run the detector on.
1310
+ """
1311
+ pulumi.set(__self__, "resource_types", resource_types)
1312
+
1313
+ @property
1314
+ @pulumi.getter(name="resourceTypes")
1315
+ def resource_types(self) -> Sequence[str]:
1316
+ """
1317
+ The resource types to run the detector on.
1318
+ """
1319
+ return pulumi.get(self, "resource_types")
1320
+
1321
+
1322
+ @pulumi.output_type
1323
+ class PosturePolicySetPolicyConstraintSecurityHealthAnalyticsModule(dict):
1324
+ @staticmethod
1325
+ def __key_warning(key: str):
1326
+ suggest = None
1327
+ if key == "moduleName":
1328
+ suggest = "module_name"
1329
+ elif key == "moduleEnablementState":
1330
+ suggest = "module_enablement_state"
1331
+
1332
+ if suggest:
1333
+ pulumi.log.warn(f"Key '{key}' not found in PosturePolicySetPolicyConstraintSecurityHealthAnalyticsModule. Access the value via the '{suggest}' property getter instead.")
1334
+
1335
+ def __getitem__(self, key: str) -> Any:
1336
+ PosturePolicySetPolicyConstraintSecurityHealthAnalyticsModule.__key_warning(key)
1337
+ return super().__getitem__(key)
1338
+
1339
+ def get(self, key: str, default = None) -> Any:
1340
+ PosturePolicySetPolicyConstraintSecurityHealthAnalyticsModule.__key_warning(key)
1341
+ return super().get(key, default)
1342
+
1343
+ def __init__(__self__, *,
1344
+ module_name: str,
1345
+ module_enablement_state: Optional[str] = None):
1346
+ """
1347
+ :param str module_name: The name of the module eg: BIGQUERY_TABLE_CMEK_DISABLED.
1348
+ :param str module_enablement_state: The state of enablement for the module at its level of the resource hierarchy.
1349
+ Possible values are: `ENABLEMENT_STATE_UNSPECIFIED`, `ENABLED`, `DISABLED`.
1350
+ """
1351
+ pulumi.set(__self__, "module_name", module_name)
1352
+ if module_enablement_state is not None:
1353
+ pulumi.set(__self__, "module_enablement_state", module_enablement_state)
1354
+
1355
+ @property
1356
+ @pulumi.getter(name="moduleName")
1357
+ def module_name(self) -> str:
1358
+ """
1359
+ The name of the module eg: BIGQUERY_TABLE_CMEK_DISABLED.
1360
+ """
1361
+ return pulumi.get(self, "module_name")
1362
+
1363
+ @property
1364
+ @pulumi.getter(name="moduleEnablementState")
1365
+ def module_enablement_state(self) -> Optional[str]:
1366
+ """
1367
+ The state of enablement for the module at its level of the resource hierarchy.
1368
+ Possible values are: `ENABLEMENT_STATE_UNSPECIFIED`, `ENABLED`, `DISABLED`.
1369
+ """
1370
+ return pulumi.get(self, "module_enablement_state")
1371
+
1372
+