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