pulumi-gcp 7.32.0a1721151794__py3-none-any.whl → 7.32.0a1721158586__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. pulumi_gcp/__init__.py +11 -0
  2. pulumi_gcp/alloydb/cluster.py +0 -24
  3. pulumi_gcp/bigquery/_inputs.py +0 -12
  4. pulumi_gcp/bigquery/dataset.py +0 -28
  5. pulumi_gcp/bigquery/dataset_access.py +0 -28
  6. pulumi_gcp/bigquery/outputs.py +0 -24
  7. pulumi_gcp/bigtable/authorized_view.py +104 -0
  8. pulumi_gcp/compute/global_address.py +16 -4
  9. pulumi_gcp/compute/target_instance.py +2 -2
  10. pulumi_gcp/config/__init__.pyi +2 -0
  11. pulumi_gcp/config/vars.py +4 -0
  12. pulumi_gcp/gkehub/__init__.py +1 -0
  13. pulumi_gcp/gkehub/get_membership_binding.py +222 -0
  14. pulumi_gcp/gkehub/outputs.py +19 -0
  15. pulumi_gcp/iap/client.py +7 -7
  16. pulumi_gcp/kms/_inputs.py +40 -0
  17. pulumi_gcp/kms/crypto_key.py +103 -0
  18. pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
  19. pulumi_gcp/kms/outputs.py +112 -0
  20. pulumi_gcp/networksecurity/address_group.py +1 -1
  21. pulumi_gcp/privilegedaccessmanager/entitlement.py +4 -0
  22. pulumi_gcp/provider.py +20 -0
  23. pulumi_gcp/pulumi-plugin.json +1 -1
  24. pulumi_gcp/securitycenter/__init__.py +1 -0
  25. pulumi_gcp/securitycenter/_inputs.py +93 -0
  26. pulumi_gcp/securitycenter/outputs.py +59 -0
  27. pulumi_gcp/securitycenter/project_notification_config.py +518 -0
  28. pulumi_gcp/siteverification/__init__.py +8 -0
  29. pulumi_gcp/siteverification/get_token.py +221 -0
  30. {pulumi_gcp-7.32.0a1721151794.dist-info → pulumi_gcp-7.32.0a1721158586.dist-info}/METADATA +1 -1
  31. {pulumi_gcp-7.32.0a1721151794.dist-info → pulumi_gcp-7.32.0a1721158586.dist-info}/RECORD +33 -29
  32. {pulumi_gcp-7.32.0a1721151794.dist-info → pulumi_gcp-7.32.0a1721158586.dist-info}/WHEEL +0 -0
  33. {pulumi_gcp-7.32.0a1721151794.dist-info → pulumi_gcp-7.32.0a1721158586.dist-info}/top_level.txt +0 -0
@@ -27,7 +27,7 @@ class GetKMSCryptoKeyResult:
27
27
  """
28
28
  A collection of values returned by getKMSCryptoKey.
29
29
  """
30
- def __init__(__self__, crypto_key_backend=None, destroy_scheduled_duration=None, effective_labels=None, id=None, import_only=None, key_ring=None, labels=None, name=None, primaries=None, pulumi_labels=None, purpose=None, rotation_period=None, skip_initial_version_creation=None, version_templates=None):
30
+ def __init__(__self__, crypto_key_backend=None, destroy_scheduled_duration=None, effective_labels=None, id=None, import_only=None, key_access_justifications_policies=None, key_ring=None, labels=None, name=None, primaries=None, pulumi_labels=None, purpose=None, rotation_period=None, skip_initial_version_creation=None, version_templates=None):
31
31
  if crypto_key_backend and not isinstance(crypto_key_backend, str):
32
32
  raise TypeError("Expected argument 'crypto_key_backend' to be a str")
33
33
  pulumi.set(__self__, "crypto_key_backend", crypto_key_backend)
@@ -43,6 +43,9 @@ class GetKMSCryptoKeyResult:
43
43
  if import_only and not isinstance(import_only, bool):
44
44
  raise TypeError("Expected argument 'import_only' to be a bool")
45
45
  pulumi.set(__self__, "import_only", import_only)
46
+ if key_access_justifications_policies and not isinstance(key_access_justifications_policies, list):
47
+ raise TypeError("Expected argument 'key_access_justifications_policies' to be a list")
48
+ pulumi.set(__self__, "key_access_justifications_policies", key_access_justifications_policies)
46
49
  if key_ring and not isinstance(key_ring, str):
47
50
  raise TypeError("Expected argument 'key_ring' to be a str")
48
51
  pulumi.set(__self__, "key_ring", key_ring)
@@ -99,6 +102,11 @@ class GetKMSCryptoKeyResult:
99
102
  def import_only(self) -> bool:
100
103
  return pulumi.get(self, "import_only")
101
104
 
105
+ @property
106
+ @pulumi.getter(name="keyAccessJustificationsPolicies")
107
+ def key_access_justifications_policies(self) -> Sequence['outputs.GetKMSCryptoKeyKeyAccessJustificationsPolicyResult']:
108
+ return pulumi.get(self, "key_access_justifications_policies")
109
+
102
110
  @property
103
111
  @pulumi.getter(name="keyRing")
104
112
  def key_ring(self) -> str:
@@ -164,6 +172,7 @@ class AwaitableGetKMSCryptoKeyResult(GetKMSCryptoKeyResult):
164
172
  effective_labels=self.effective_labels,
165
173
  id=self.id,
166
174
  import_only=self.import_only,
175
+ key_access_justifications_policies=self.key_access_justifications_policies,
167
176
  key_ring=self.key_ring,
168
177
  labels=self.labels,
169
178
  name=self.name,
@@ -216,6 +225,7 @@ def get_kms_crypto_key(key_ring: Optional[str] = None,
216
225
  effective_labels=pulumi.get(__ret__, 'effective_labels'),
217
226
  id=pulumi.get(__ret__, 'id'),
218
227
  import_only=pulumi.get(__ret__, 'import_only'),
228
+ key_access_justifications_policies=pulumi.get(__ret__, 'key_access_justifications_policies'),
219
229
  key_ring=pulumi.get(__ret__, 'key_ring'),
220
230
  labels=pulumi.get(__ret__, 'labels'),
221
231
  name=pulumi.get(__ret__, 'name'),
pulumi_gcp/kms/outputs.py CHANGED
@@ -18,6 +18,7 @@ from . import outputs
18
18
  __all__ = [
19
19
  'CryptoKeyIAMBindingCondition',
20
20
  'CryptoKeyIAMMemberCondition',
21
+ 'CryptoKeyKeyAccessJustificationsPolicy',
21
22
  'CryptoKeyPrimary',
22
23
  'CryptoKeyVersionAttestation',
23
24
  'CryptoKeyVersionAttestationCertChains',
@@ -31,8 +32,10 @@ __all__ = [
31
32
  'KeyRingImportJobAttestation',
32
33
  'KeyRingImportJobPublicKey',
33
34
  'GetCryptoKeysKeyResult',
35
+ 'GetCryptoKeysKeyKeyAccessJustificationsPolicyResult',
34
36
  'GetCryptoKeysKeyPrimaryResult',
35
37
  'GetCryptoKeysKeyVersionTemplateResult',
38
+ 'GetKMSCryptoKeyKeyAccessJustificationsPolicyResult',
36
39
  'GetKMSCryptoKeyPrimaryResult',
37
40
  'GetKMSCryptoKeyVersionPublicKeyResult',
38
41
  'GetKMSCryptoKeyVersionTemplateResult',
@@ -137,6 +140,46 @@ class CryptoKeyIAMMemberCondition(dict):
137
140
  return pulumi.get(self, "description")
138
141
 
139
142
 
143
+ @pulumi.output_type
144
+ class CryptoKeyKeyAccessJustificationsPolicy(dict):
145
+ @staticmethod
146
+ def __key_warning(key: str):
147
+ suggest = None
148
+ if key == "allowedAccessReasons":
149
+ suggest = "allowed_access_reasons"
150
+
151
+ if suggest:
152
+ pulumi.log.warn(f"Key '{key}' not found in CryptoKeyKeyAccessJustificationsPolicy. Access the value via the '{suggest}' property getter instead.")
153
+
154
+ def __getitem__(self, key: str) -> Any:
155
+ CryptoKeyKeyAccessJustificationsPolicy.__key_warning(key)
156
+ return super().__getitem__(key)
157
+
158
+ def get(self, key: str, default = None) -> Any:
159
+ CryptoKeyKeyAccessJustificationsPolicy.__key_warning(key)
160
+ return super().get(key, default)
161
+
162
+ def __init__(__self__, *,
163
+ allowed_access_reasons: Optional[Sequence[str]] = None):
164
+ """
165
+ :param Sequence[str] allowed_access_reasons: The list of allowed reasons for access to this CryptoKey. Zero allowed
166
+ access reasons means all encrypt, decrypt, and sign operations for
167
+ this CryptoKey will fail.
168
+ """
169
+ if allowed_access_reasons is not None:
170
+ pulumi.set(__self__, "allowed_access_reasons", allowed_access_reasons)
171
+
172
+ @property
173
+ @pulumi.getter(name="allowedAccessReasons")
174
+ def allowed_access_reasons(self) -> Optional[Sequence[str]]:
175
+ """
176
+ The list of allowed reasons for access to this CryptoKey. Zero allowed
177
+ access reasons means all encrypt, decrypt, and sign operations for
178
+ this CryptoKey will fail.
179
+ """
180
+ return pulumi.get(self, "allowed_access_reasons")
181
+
182
+
140
183
  @pulumi.output_type
141
184
  class CryptoKeyPrimary(dict):
142
185
  def __init__(__self__, *,
@@ -872,6 +915,7 @@ class GetCryptoKeysKeyResult(dict):
872
915
  effective_labels: Mapping[str, str],
873
916
  id: str,
874
917
  import_only: bool,
918
+ key_access_justifications_policies: Sequence['outputs.GetCryptoKeysKeyKeyAccessJustificationsPolicyResult'],
875
919
  labels: Mapping[str, str],
876
920
  primaries: Sequence['outputs.GetCryptoKeysKeyPrimaryResult'],
877
921
  pulumi_labels: Mapping[str, str],
@@ -887,6 +931,14 @@ class GetCryptoKeysKeyResult(dict):
887
931
  :param str destroy_scheduled_duration: The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
888
932
  If not specified at creation time, the default duration is 30 days.
889
933
  :param bool import_only: Whether this key may contain imported versions only.
934
+ :param Sequence['GetCryptoKeysKeyKeyAccessJustificationsPolicyArgs'] key_access_justifications_policies: The policy used for Key Access Justifications Policy Enforcement. If this
935
+ field is present and this key is enrolled in Key Access Justifications
936
+ Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
937
+ sign operations, and the operation will fail if rejected by the policy. The
938
+ policy is defined by specifying zero or more allowed justification codes.
939
+ https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
940
+ By default, this field is absent, and all justification codes are allowed.
941
+ This field is currently in beta and is subject to change.
890
942
  :param Mapping[str, str] labels: Labels with user-defined metadata to apply to this resource.
891
943
 
892
944
 
@@ -916,6 +968,7 @@ class GetCryptoKeysKeyResult(dict):
916
968
  pulumi.set(__self__, "effective_labels", effective_labels)
917
969
  pulumi.set(__self__, "id", id)
918
970
  pulumi.set(__self__, "import_only", import_only)
971
+ pulumi.set(__self__, "key_access_justifications_policies", key_access_justifications_policies)
919
972
  pulumi.set(__self__, "labels", labels)
920
973
  pulumi.set(__self__, "primaries", primaries)
921
974
  pulumi.set(__self__, "pulumi_labels", pulumi_labels)
@@ -964,6 +1017,21 @@ class GetCryptoKeysKeyResult(dict):
964
1017
  """
965
1018
  return pulumi.get(self, "import_only")
966
1019
 
1020
+ @property
1021
+ @pulumi.getter(name="keyAccessJustificationsPolicies")
1022
+ def key_access_justifications_policies(self) -> Sequence['outputs.GetCryptoKeysKeyKeyAccessJustificationsPolicyResult']:
1023
+ """
1024
+ The policy used for Key Access Justifications Policy Enforcement. If this
1025
+ field is present and this key is enrolled in Key Access Justifications
1026
+ Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and
1027
+ sign operations, and the operation will fail if rejected by the policy. The
1028
+ policy is defined by specifying zero or more allowed justification codes.
1029
+ https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
1030
+ By default, this field is absent, and all justification codes are allowed.
1031
+ This field is currently in beta and is subject to change.
1032
+ """
1033
+ return pulumi.get(self, "key_access_justifications_policies")
1034
+
967
1035
  @property
968
1036
  @pulumi.getter
969
1037
  def labels(self) -> Mapping[str, str]:
@@ -1051,6 +1119,28 @@ class GetCryptoKeysKeyResult(dict):
1051
1119
  return pulumi.get(self, "name")
1052
1120
 
1053
1121
 
1122
+ @pulumi.output_type
1123
+ class GetCryptoKeysKeyKeyAccessJustificationsPolicyResult(dict):
1124
+ def __init__(__self__, *,
1125
+ allowed_access_reasons: Sequence[str]):
1126
+ """
1127
+ :param Sequence[str] allowed_access_reasons: The list of allowed reasons for access to this CryptoKey. Zero allowed
1128
+ access reasons means all encrypt, decrypt, and sign operations for
1129
+ this CryptoKey will fail.
1130
+ """
1131
+ pulumi.set(__self__, "allowed_access_reasons", allowed_access_reasons)
1132
+
1133
+ @property
1134
+ @pulumi.getter(name="allowedAccessReasons")
1135
+ def allowed_access_reasons(self) -> Sequence[str]:
1136
+ """
1137
+ The list of allowed reasons for access to this CryptoKey. Zero allowed
1138
+ access reasons means all encrypt, decrypt, and sign operations for
1139
+ this CryptoKey will fail.
1140
+ """
1141
+ return pulumi.get(self, "allowed_access_reasons")
1142
+
1143
+
1054
1144
  @pulumi.output_type
1055
1145
  class GetCryptoKeysKeyPrimaryResult(dict):
1056
1146
  def __init__(__self__, *,
@@ -1111,6 +1201,28 @@ class GetCryptoKeysKeyVersionTemplateResult(dict):
1111
1201
  return pulumi.get(self, "protection_level")
1112
1202
 
1113
1203
 
1204
+ @pulumi.output_type
1205
+ class GetKMSCryptoKeyKeyAccessJustificationsPolicyResult(dict):
1206
+ def __init__(__self__, *,
1207
+ allowed_access_reasons: Sequence[str]):
1208
+ """
1209
+ :param Sequence[str] allowed_access_reasons: The list of allowed reasons for access to this CryptoKey. Zero allowed
1210
+ access reasons means all encrypt, decrypt, and sign operations for
1211
+ this CryptoKey will fail.
1212
+ """
1213
+ pulumi.set(__self__, "allowed_access_reasons", allowed_access_reasons)
1214
+
1215
+ @property
1216
+ @pulumi.getter(name="allowedAccessReasons")
1217
+ def allowed_access_reasons(self) -> Sequence[str]:
1218
+ """
1219
+ The list of allowed reasons for access to this CryptoKey. Zero allowed
1220
+ access reasons means all encrypt, decrypt, and sign operations for
1221
+ this CryptoKey will fail.
1222
+ """
1223
+ return pulumi.get(self, "allowed_access_reasons")
1224
+
1225
+
1114
1226
  @pulumi.output_type
1115
1227
  class GetKMSCryptoKeyPrimaryResult(dict):
1116
1228
  def __init__(__self__, *,
@@ -863,7 +863,7 @@ class AddressGroup(pulumi.CustomResource):
863
863
 
864
864
  @property
865
865
  @pulumi.getter
866
- def purposes(self) -> pulumi.Output[Optional[Sequence[str]]]:
866
+ def purposes(self) -> pulumi.Output[Sequence[str]]:
867
867
  """
868
868
  List of supported purposes of the Address Group.
869
869
  Each value may be one of: `DEFAULT`, `CLOUD_ARMOR`.
@@ -449,6 +449,8 @@ class Entitlement(pulumi.CustomResource):
449
449
  requester_justification_config: Optional[pulumi.Input[Union['EntitlementRequesterJustificationConfigArgs', 'EntitlementRequesterJustificationConfigArgsDict']]] = None,
450
450
  __props__=None):
451
451
  """
452
+ An Entitlement defines the eligibility of a set of users to obtain a predefined access for some time possibly after going through an approval workflow.
453
+
452
454
  ## Example Usage
453
455
 
454
456
  ### Privileged Access Manager Entitlement Basic
@@ -535,6 +537,8 @@ class Entitlement(pulumi.CustomResource):
535
537
  args: EntitlementArgs,
536
538
  opts: Optional[pulumi.ResourceOptions] = None):
537
539
  """
540
+ An Entitlement defines the eligibility of a set of users to obtain a predefined access for some time possibly after going through an approval workflow.
541
+
538
542
  ## Example Usage
539
543
 
540
544
  ### Privileged Access Manager Entitlement Basic
pulumi_gcp/provider.py CHANGED
@@ -172,6 +172,7 @@ class ProviderArgs:
172
172
  service_management_custom_endpoint: Optional[pulumi.Input[str]] = None,
173
173
  service_networking_custom_endpoint: Optional[pulumi.Input[str]] = None,
174
174
  service_usage_custom_endpoint: Optional[pulumi.Input[str]] = None,
175
+ site_verification_custom_endpoint: Optional[pulumi.Input[str]] = None,
175
176
  source_repo_custom_endpoint: Optional[pulumi.Input[str]] = None,
176
177
  spanner_custom_endpoint: Optional[pulumi.Input[str]] = None,
177
178
  sql_custom_endpoint: Optional[pulumi.Input[str]] = None,
@@ -503,6 +504,8 @@ class ProviderArgs:
503
504
  pulumi.set(__self__, "service_networking_custom_endpoint", service_networking_custom_endpoint)
504
505
  if service_usage_custom_endpoint is not None:
505
506
  pulumi.set(__self__, "service_usage_custom_endpoint", service_usage_custom_endpoint)
507
+ if site_verification_custom_endpoint is not None:
508
+ pulumi.set(__self__, "site_verification_custom_endpoint", site_verification_custom_endpoint)
506
509
  if source_repo_custom_endpoint is not None:
507
510
  pulumi.set(__self__, "source_repo_custom_endpoint", source_repo_custom_endpoint)
508
511
  if spanner_custom_endpoint is not None:
@@ -1914,6 +1917,15 @@ class ProviderArgs:
1914
1917
  def service_usage_custom_endpoint(self, value: Optional[pulumi.Input[str]]):
1915
1918
  pulumi.set(self, "service_usage_custom_endpoint", value)
1916
1919
 
1920
+ @property
1921
+ @pulumi.getter(name="siteVerificationCustomEndpoint")
1922
+ def site_verification_custom_endpoint(self) -> Optional[pulumi.Input[str]]:
1923
+ return pulumi.get(self, "site_verification_custom_endpoint")
1924
+
1925
+ @site_verification_custom_endpoint.setter
1926
+ def site_verification_custom_endpoint(self, value: Optional[pulumi.Input[str]]):
1927
+ pulumi.set(self, "site_verification_custom_endpoint", value)
1928
+
1917
1929
  @property
1918
1930
  @pulumi.getter(name="sourceRepoCustomEndpoint")
1919
1931
  def source_repo_custom_endpoint(self) -> Optional[pulumi.Input[str]]:
@@ -2252,6 +2264,7 @@ class Provider(pulumi.ProviderResource):
2252
2264
  service_management_custom_endpoint: Optional[pulumi.Input[str]] = None,
2253
2265
  service_networking_custom_endpoint: Optional[pulumi.Input[str]] = None,
2254
2266
  service_usage_custom_endpoint: Optional[pulumi.Input[str]] = None,
2267
+ site_verification_custom_endpoint: Optional[pulumi.Input[str]] = None,
2255
2268
  source_repo_custom_endpoint: Optional[pulumi.Input[str]] = None,
2256
2269
  spanner_custom_endpoint: Optional[pulumi.Input[str]] = None,
2257
2270
  sql_custom_endpoint: Optional[pulumi.Input[str]] = None,
@@ -2461,6 +2474,7 @@ class Provider(pulumi.ProviderResource):
2461
2474
  service_management_custom_endpoint: Optional[pulumi.Input[str]] = None,
2462
2475
  service_networking_custom_endpoint: Optional[pulumi.Input[str]] = None,
2463
2476
  service_usage_custom_endpoint: Optional[pulumi.Input[str]] = None,
2477
+ site_verification_custom_endpoint: Optional[pulumi.Input[str]] = None,
2464
2478
  source_repo_custom_endpoint: Optional[pulumi.Input[str]] = None,
2465
2479
  spanner_custom_endpoint: Optional[pulumi.Input[str]] = None,
2466
2480
  sql_custom_endpoint: Optional[pulumi.Input[str]] = None,
@@ -2646,6 +2660,7 @@ class Provider(pulumi.ProviderResource):
2646
2660
  __props__.__dict__["service_management_custom_endpoint"] = service_management_custom_endpoint
2647
2661
  __props__.__dict__["service_networking_custom_endpoint"] = service_networking_custom_endpoint
2648
2662
  __props__.__dict__["service_usage_custom_endpoint"] = service_usage_custom_endpoint
2663
+ __props__.__dict__["site_verification_custom_endpoint"] = site_verification_custom_endpoint
2649
2664
  __props__.__dict__["source_repo_custom_endpoint"] = source_repo_custom_endpoint
2650
2665
  __props__.__dict__["spanner_custom_endpoint"] = spanner_custom_endpoint
2651
2666
  __props__.__dict__["sql_custom_endpoint"] = sql_custom_endpoint
@@ -3406,6 +3421,11 @@ class Provider(pulumi.ProviderResource):
3406
3421
  def service_usage_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
3407
3422
  return pulumi.get(self, "service_usage_custom_endpoint")
3408
3423
 
3424
+ @property
3425
+ @pulumi.getter(name="siteVerificationCustomEndpoint")
3426
+ def site_verification_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
3427
+ return pulumi.get(self, "site_verification_custom_endpoint")
3428
+
3409
3429
  @property
3410
3430
  @pulumi.getter(name="sourceRepoCustomEndpoint")
3411
3431
  def source_repo_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
3
  "name": "gcp",
4
- "version": "7.32.0-alpha.1721151794"
4
+ "version": "7.32.0-alpha.1721158586"
5
5
  }
@@ -19,6 +19,7 @@ from .mute_config import *
19
19
  from .notification_config import *
20
20
  from .organization_custom_module import *
21
21
  from .project_custom_module import *
22
+ from .project_notification_config import *
22
23
  from .source import *
23
24
  from .source_iam_binding import *
24
25
  from .source_iam_member import *
@@ -93,6 +93,8 @@ __all__ = [
93
93
  'ProjectCustomModuleCustomConfigPredicateArgsDict',
94
94
  'ProjectCustomModuleCustomConfigResourceSelectorArgs',
95
95
  'ProjectCustomModuleCustomConfigResourceSelectorArgsDict',
96
+ 'ProjectNotificationConfigStreamingConfigArgs',
97
+ 'ProjectNotificationConfigStreamingConfigArgsDict',
96
98
  'SourceIamBindingConditionArgs',
97
99
  'SourceIamBindingConditionArgsDict',
98
100
  'SourceIamMemberConditionArgs',
@@ -3220,6 +3222,97 @@ class ProjectCustomModuleCustomConfigResourceSelectorArgs:
3220
3222
  pulumi.set(self, "resource_types", value)
3221
3223
 
3222
3224
 
3225
+ if not MYPY:
3226
+ class ProjectNotificationConfigStreamingConfigArgsDict(TypedDict):
3227
+ filter: pulumi.Input[str]
3228
+ """
3229
+ Expression that defines the filter to apply across create/update
3230
+ events of assets or findings as specified by the event type. The
3231
+ expression is a list of zero or more restrictions combined via
3232
+ logical operators AND and OR. Parentheses are supported, and OR
3233
+ has higher precedence than AND.
3234
+ Restrictions have the form <field> <operator> <value> and may have
3235
+ a - character in front of them to indicate negation. The fields
3236
+ map to those defined in the corresponding resource.
3237
+ The supported operators are:
3238
+ * = for all value types.
3239
+ * >, <, >=, <= for integer values.
3240
+ * :, meaning substring matching, for strings.
3241
+ The supported value types are:
3242
+ * string literals in quotes.
3243
+ * integer literals without quotes.
3244
+ * boolean literals true and false without quotes.
3245
+ See
3246
+ [Filtering notifications](https://cloud.google.com/security-command-center/docs/how-to-api-filter-notifications)
3247
+ for information on how to write a filter.
3248
+
3249
+ - - -
3250
+ """
3251
+ elif False:
3252
+ ProjectNotificationConfigStreamingConfigArgsDict: TypeAlias = Mapping[str, Any]
3253
+
3254
+ @pulumi.input_type
3255
+ class ProjectNotificationConfigStreamingConfigArgs:
3256
+ def __init__(__self__, *,
3257
+ filter: pulumi.Input[str]):
3258
+ """
3259
+ :param pulumi.Input[str] filter: Expression that defines the filter to apply across create/update
3260
+ events of assets or findings as specified by the event type. The
3261
+ expression is a list of zero or more restrictions combined via
3262
+ logical operators AND and OR. Parentheses are supported, and OR
3263
+ has higher precedence than AND.
3264
+ Restrictions have the form <field> <operator> <value> and may have
3265
+ a - character in front of them to indicate negation. The fields
3266
+ map to those defined in the corresponding resource.
3267
+ The supported operators are:
3268
+ * = for all value types.
3269
+ * >, <, >=, <= for integer values.
3270
+ * :, meaning substring matching, for strings.
3271
+ The supported value types are:
3272
+ * string literals in quotes.
3273
+ * integer literals without quotes.
3274
+ * boolean literals true and false without quotes.
3275
+ See
3276
+ [Filtering notifications](https://cloud.google.com/security-command-center/docs/how-to-api-filter-notifications)
3277
+ for information on how to write a filter.
3278
+
3279
+ - - -
3280
+ """
3281
+ pulumi.set(__self__, "filter", filter)
3282
+
3283
+ @property
3284
+ @pulumi.getter
3285
+ def filter(self) -> pulumi.Input[str]:
3286
+ """
3287
+ Expression that defines the filter to apply across create/update
3288
+ events of assets or findings as specified by the event type. The
3289
+ expression is a list of zero or more restrictions combined via
3290
+ logical operators AND and OR. Parentheses are supported, and OR
3291
+ has higher precedence than AND.
3292
+ Restrictions have the form <field> <operator> <value> and may have
3293
+ a - character in front of them to indicate negation. The fields
3294
+ map to those defined in the corresponding resource.
3295
+ The supported operators are:
3296
+ * = for all value types.
3297
+ * >, <, >=, <= for integer values.
3298
+ * :, meaning substring matching, for strings.
3299
+ The supported value types are:
3300
+ * string literals in quotes.
3301
+ * integer literals without quotes.
3302
+ * boolean literals true and false without quotes.
3303
+ See
3304
+ [Filtering notifications](https://cloud.google.com/security-command-center/docs/how-to-api-filter-notifications)
3305
+ for information on how to write a filter.
3306
+
3307
+ - - -
3308
+ """
3309
+ return pulumi.get(self, "filter")
3310
+
3311
+ @filter.setter
3312
+ def filter(self, value: pulumi.Input[str]):
3313
+ pulumi.set(self, "filter", value)
3314
+
3315
+
3223
3316
  if not MYPY:
3224
3317
  class SourceIamBindingConditionArgsDict(TypedDict):
3225
3318
  expression: pulumi.Input[str]
@@ -55,6 +55,7 @@ __all__ = [
55
55
  'ProjectCustomModuleCustomConfigCustomOutputPropertyValueExpression',
56
56
  'ProjectCustomModuleCustomConfigPredicate',
57
57
  'ProjectCustomModuleCustomConfigResourceSelector',
58
+ 'ProjectNotificationConfigStreamingConfig',
58
59
  'SourceIamBindingCondition',
59
60
  'SourceIamMemberCondition',
60
61
  'V2OrganizationNotificationConfigStreamingConfig',
@@ -2252,6 +2253,64 @@ class ProjectCustomModuleCustomConfigResourceSelector(dict):
2252
2253
  return pulumi.get(self, "resource_types")
2253
2254
 
2254
2255
 
2256
+ @pulumi.output_type
2257
+ class ProjectNotificationConfigStreamingConfig(dict):
2258
+ def __init__(__self__, *,
2259
+ filter: str):
2260
+ """
2261
+ :param str filter: Expression that defines the filter to apply across create/update
2262
+ events of assets or findings as specified by the event type. The
2263
+ expression is a list of zero or more restrictions combined via
2264
+ logical operators AND and OR. Parentheses are supported, and OR
2265
+ has higher precedence than AND.
2266
+ Restrictions have the form <field> <operator> <value> and may have
2267
+ a - character in front of them to indicate negation. The fields
2268
+ map to those defined in the corresponding resource.
2269
+ The supported operators are:
2270
+ * = for all value types.
2271
+ * >, <, >=, <= for integer values.
2272
+ * :, meaning substring matching, for strings.
2273
+ The supported value types are:
2274
+ * string literals in quotes.
2275
+ * integer literals without quotes.
2276
+ * boolean literals true and false without quotes.
2277
+ See
2278
+ [Filtering notifications](https://cloud.google.com/security-command-center/docs/how-to-api-filter-notifications)
2279
+ for information on how to write a filter.
2280
+
2281
+ - - -
2282
+ """
2283
+ pulumi.set(__self__, "filter", filter)
2284
+
2285
+ @property
2286
+ @pulumi.getter
2287
+ def filter(self) -> str:
2288
+ """
2289
+ Expression that defines the filter to apply across create/update
2290
+ events of assets or findings as specified by the event type. The
2291
+ expression is a list of zero or more restrictions combined via
2292
+ logical operators AND and OR. Parentheses are supported, and OR
2293
+ has higher precedence than AND.
2294
+ Restrictions have the form <field> <operator> <value> and may have
2295
+ a - character in front of them to indicate negation. The fields
2296
+ map to those defined in the corresponding resource.
2297
+ The supported operators are:
2298
+ * = for all value types.
2299
+ * >, <, >=, <= for integer values.
2300
+ * :, meaning substring matching, for strings.
2301
+ The supported value types are:
2302
+ * string literals in quotes.
2303
+ * integer literals without quotes.
2304
+ * boolean literals true and false without quotes.
2305
+ See
2306
+ [Filtering notifications](https://cloud.google.com/security-command-center/docs/how-to-api-filter-notifications)
2307
+ for information on how to write a filter.
2308
+
2309
+ - - -
2310
+ """
2311
+ return pulumi.get(self, "filter")
2312
+
2313
+
2255
2314
  @pulumi.output_type
2256
2315
  class SourceIamBindingCondition(dict):
2257
2316
  def __init__(__self__, *,