pulumi-gcp 8.1.0a1726492828__py3-none-any.whl → 8.2.0__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 (43) hide show
  1. pulumi_gcp/__init__.py +38 -0
  2. pulumi_gcp/bigquery/__init__.py +1 -0
  3. pulumi_gcp/bigquery/get_tables.py +143 -0
  4. pulumi_gcp/bigquery/outputs.py +30 -0
  5. pulumi_gcp/compute/__init__.py +1 -0
  6. pulumi_gcp/compute/_inputs.py +2208 -285
  7. pulumi_gcp/compute/get_instance.py +3 -0
  8. pulumi_gcp/compute/network_firewall_policy_with_rules.py +826 -0
  9. pulumi_gcp/compute/outputs.py +1383 -0
  10. pulumi_gcp/compute/region_target_http_proxy.py +159 -0
  11. pulumi_gcp/compute/region_target_https_proxy.py +175 -0
  12. pulumi_gcp/compute/service_attachment.py +75 -0
  13. pulumi_gcp/compute/target_http_proxy.py +49 -28
  14. pulumi_gcp/compute/target_https_proxy.py +49 -28
  15. pulumi_gcp/config/__init__.pyi +4 -0
  16. pulumi_gcp/config/vars.py +8 -0
  17. pulumi_gcp/container/_inputs.py +96 -0
  18. pulumi_gcp/container/attached_cluster.py +54 -1
  19. pulumi_gcp/container/outputs.py +102 -0
  20. pulumi_gcp/dataproc/metastore_federation.py +8 -8
  21. pulumi_gcp/dataproc/metastore_service.py +2 -0
  22. pulumi_gcp/datastream/stream.py +21 -14
  23. pulumi_gcp/developerconnect/__init__.py +11 -0
  24. pulumi_gcp/developerconnect/_inputs.py +301 -0
  25. pulumi_gcp/developerconnect/connection.py +1034 -0
  26. pulumi_gcp/developerconnect/git_repository_link.py +873 -0
  27. pulumi_gcp/developerconnect/outputs.py +247 -0
  28. pulumi_gcp/gkeonprem/_inputs.py +3 -3
  29. pulumi_gcp/gkeonprem/outputs.py +2 -2
  30. pulumi_gcp/memorystore/__init__.py +10 -0
  31. pulumi_gcp/memorystore/_inputs.py +731 -0
  32. pulumi_gcp/memorystore/instance.py +1663 -0
  33. pulumi_gcp/memorystore/outputs.py +598 -0
  34. pulumi_gcp/netapp/volume.py +101 -0
  35. pulumi_gcp/organizations/folder.py +52 -33
  36. pulumi_gcp/provider.py +40 -0
  37. pulumi_gcp/pulumi-plugin.json +1 -1
  38. pulumi_gcp/securitycenter/v2_project_mute_config.py +2 -2
  39. pulumi_gcp/vpcaccess/connector.py +21 -28
  40. {pulumi_gcp-8.1.0a1726492828.dist-info → pulumi_gcp-8.2.0.dist-info}/METADATA +1 -1
  41. {pulumi_gcp-8.1.0a1726492828.dist-info → pulumi_gcp-8.2.0.dist-info}/RECORD +43 -32
  42. {pulumi_gcp-8.1.0a1726492828.dist-info → pulumi_gcp-8.2.0.dist-info}/WHEEL +0 -0
  43. {pulumi_gcp-8.1.0a1726492828.dist-info → pulumi_gcp-8.2.0.dist-info}/top_level.txt +0 -0
@@ -208,6 +208,16 @@ __all__ = [
208
208
  'NetworkFirewallPolicyRuleMatchLayer4Config',
209
209
  'NetworkFirewallPolicyRuleMatchSrcSecureTag',
210
210
  'NetworkFirewallPolicyRuleTargetSecureTag',
211
+ 'NetworkFirewallPolicyWithRulesPredefinedRule',
212
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleMatch',
213
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config',
214
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag',
215
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTag',
216
+ 'NetworkFirewallPolicyWithRulesRule',
217
+ 'NetworkFirewallPolicyWithRulesRuleMatch',
218
+ 'NetworkFirewallPolicyWithRulesRuleMatchLayer4Config',
219
+ 'NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTag',
220
+ 'NetworkFirewallPolicyWithRulesRuleTargetSecureTag',
211
221
  'NodeGroupAutoscalingPolicy',
212
222
  'NodeGroupMaintenanceWindow',
213
223
  'NodeGroupShareSettings',
@@ -6369,6 +6379,8 @@ class InstanceBootDiskInitializeParams(dict):
6369
6379
  suggest = "provisioned_throughput"
6370
6380
  elif key == "resourceManagerTags":
6371
6381
  suggest = "resource_manager_tags"
6382
+ elif key == "resourcePolicies":
6383
+ suggest = "resource_policies"
6372
6384
  elif key == "storagePool":
6373
6385
  suggest = "storage_pool"
6374
6386
 
@@ -6390,6 +6402,7 @@ class InstanceBootDiskInitializeParams(dict):
6390
6402
  provisioned_iops: Optional[int] = None,
6391
6403
  provisioned_throughput: Optional[int] = None,
6392
6404
  resource_manager_tags: Optional[Mapping[str, str]] = None,
6405
+ resource_policies: Optional[str] = None,
6393
6406
  size: Optional[int] = None,
6394
6407
  storage_pool: Optional[str] = None,
6395
6408
  type: Optional[str] = None):
@@ -6422,6 +6435,7 @@ class InstanceBootDiskInitializeParams(dict):
6422
6435
  for an update of throughput every 4 hours. To update your hyperdisk more
6423
6436
  frequently, you'll need to manually delete and recreate it.
6424
6437
  :param Mapping[str, str] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
6438
+ :param str resource_policies: A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
6425
6439
  :param int size: The size of the image in gigabytes. If not specified, it
6426
6440
  will inherit the size of its base image.
6427
6441
  :param str storage_pool: The URL of the storage pool in which the new disk is created.
@@ -6442,6 +6456,8 @@ class InstanceBootDiskInitializeParams(dict):
6442
6456
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
6443
6457
  if resource_manager_tags is not None:
6444
6458
  pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
6459
+ if resource_policies is not None:
6460
+ pulumi.set(__self__, "resource_policies", resource_policies)
6445
6461
  if size is not None:
6446
6462
  pulumi.set(__self__, "size", size)
6447
6463
  if storage_pool is not None:
@@ -6519,6 +6535,14 @@ class InstanceBootDiskInitializeParams(dict):
6519
6535
  """
6520
6536
  return pulumi.get(self, "resource_manager_tags")
6521
6537
 
6538
+ @property
6539
+ @pulumi.getter(name="resourcePolicies")
6540
+ def resource_policies(self) -> Optional[str]:
6541
+ """
6542
+ A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
6543
+ """
6544
+ return pulumi.get(self, "resource_policies")
6545
+
6522
6546
  @property
6523
6547
  @pulumi.getter
6524
6548
  def size(self) -> Optional[int]:
@@ -6918,6 +6942,8 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6918
6942
  suggest = "provisioned_throughput"
6919
6943
  elif key == "resourceManagerTags":
6920
6944
  suggest = "resource_manager_tags"
6945
+ elif key == "resourcePolicies":
6946
+ suggest = "resource_policies"
6921
6947
  elif key == "storagePool":
6922
6948
  suggest = "storage_pool"
6923
6949
 
@@ -6939,6 +6965,7 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6939
6965
  provisioned_iops: Optional[int] = None,
6940
6966
  provisioned_throughput: Optional[int] = None,
6941
6967
  resource_manager_tags: Optional[Mapping[str, str]] = None,
6968
+ resource_policies: Optional[str] = None,
6942
6969
  size: Optional[int] = None,
6943
6970
  storage_pool: Optional[str] = None,
6944
6971
  type: Optional[str] = None):
@@ -6949,6 +6976,7 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6949
6976
  :param int provisioned_iops: Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle.
6950
6977
  :param int provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle.
6951
6978
  :param Mapping[str, str] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
6979
+ :param str resource_policies: A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
6952
6980
  :param int size: The size of the image in gigabytes.
6953
6981
  :param str storage_pool: The URL of the storage pool in which the new disk is created
6954
6982
  :param str type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced.
@@ -6965,6 +6993,8 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6965
6993
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
6966
6994
  if resource_manager_tags is not None:
6967
6995
  pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
6996
+ if resource_policies is not None:
6997
+ pulumi.set(__self__, "resource_policies", resource_policies)
6968
6998
  if size is not None:
6969
6999
  pulumi.set(__self__, "size", size)
6970
7000
  if storage_pool is not None:
@@ -7020,6 +7050,14 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
7020
7050
  """
7021
7051
  return pulumi.get(self, "resource_manager_tags")
7022
7052
 
7053
+ @property
7054
+ @pulumi.getter(name="resourcePolicies")
7055
+ def resource_policies(self) -> Optional[str]:
7056
+ """
7057
+ A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
7058
+ """
7059
+ return pulumi.get(self, "resource_policies")
7060
+
7023
7061
  @property
7024
7062
  @pulumi.getter
7025
7063
  def size(self) -> Optional[int]:
@@ -8538,6 +8576,8 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8538
8576
  suggest = "provisioned_throughput"
8539
8577
  elif key == "resourceManagerTags":
8540
8578
  suggest = "resource_manager_tags"
8579
+ elif key == "resourcePolicies":
8580
+ suggest = "resource_policies"
8541
8581
  elif key == "storagePool":
8542
8582
  suggest = "storage_pool"
8543
8583
 
@@ -8559,6 +8599,7 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8559
8599
  provisioned_iops: Optional[int] = None,
8560
8600
  provisioned_throughput: Optional[int] = None,
8561
8601
  resource_manager_tags: Optional[Mapping[str, str]] = None,
8602
+ resource_policies: Optional[str] = None,
8562
8603
  size: Optional[int] = None,
8563
8604
  storage_pool: Optional[str] = None,
8564
8605
  type: Optional[str] = None):
@@ -8569,6 +8610,7 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8569
8610
  :param int provisioned_iops: Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle.
8570
8611
  :param int provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle.
8571
8612
  :param Mapping[str, str] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
8613
+ :param str resource_policies: A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
8572
8614
  :param int size: The size of the image in gigabytes.
8573
8615
  :param str storage_pool: The URL of the storage pool in which the new disk is created
8574
8616
  :param str type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced.
@@ -8585,6 +8627,8 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8585
8627
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
8586
8628
  if resource_manager_tags is not None:
8587
8629
  pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
8630
+ if resource_policies is not None:
8631
+ pulumi.set(__self__, "resource_policies", resource_policies)
8588
8632
  if size is not None:
8589
8633
  pulumi.set(__self__, "size", size)
8590
8634
  if storage_pool is not None:
@@ -8640,6 +8684,14 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8640
8684
  """
8641
8685
  return pulumi.get(self, "resource_manager_tags")
8642
8686
 
8687
+ @property
8688
+ @pulumi.getter(name="resourcePolicies")
8689
+ def resource_policies(self) -> Optional[str]:
8690
+ """
8691
+ A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
8692
+ """
8693
+ return pulumi.get(self, "resource_policies")
8694
+
8643
8695
  @property
8644
8696
  @pulumi.getter
8645
8697
  def size(self) -> Optional[int]:
@@ -14907,6 +14959,1263 @@ class NetworkFirewallPolicyRuleTargetSecureTag(dict):
14907
14959
  return pulumi.get(self, "state")
14908
14960
 
14909
14961
 
14962
+ @pulumi.output_type
14963
+ class NetworkFirewallPolicyWithRulesPredefinedRule(dict):
14964
+ @staticmethod
14965
+ def __key_warning(key: str):
14966
+ suggest = None
14967
+ if key == "enableLogging":
14968
+ suggest = "enable_logging"
14969
+ elif key == "ruleName":
14970
+ suggest = "rule_name"
14971
+ elif key == "securityProfileGroup":
14972
+ suggest = "security_profile_group"
14973
+ elif key == "targetSecureTags":
14974
+ suggest = "target_secure_tags"
14975
+ elif key == "targetServiceAccounts":
14976
+ suggest = "target_service_accounts"
14977
+ elif key == "tlsInspect":
14978
+ suggest = "tls_inspect"
14979
+
14980
+ if suggest:
14981
+ pulumi.log.warn(f"Key '{key}' not found in NetworkFirewallPolicyWithRulesPredefinedRule. Access the value via the '{suggest}' property getter instead.")
14982
+
14983
+ def __getitem__(self, key: str) -> Any:
14984
+ NetworkFirewallPolicyWithRulesPredefinedRule.__key_warning(key)
14985
+ return super().__getitem__(key)
14986
+
14987
+ def get(self, key: str, default = None) -> Any:
14988
+ NetworkFirewallPolicyWithRulesPredefinedRule.__key_warning(key)
14989
+ return super().get(key, default)
14990
+
14991
+ def __init__(__self__, *,
14992
+ action: Optional[str] = None,
14993
+ description: Optional[str] = None,
14994
+ direction: Optional[str] = None,
14995
+ disabled: Optional[bool] = None,
14996
+ enable_logging: Optional[bool] = None,
14997
+ matches: Optional[Sequence['outputs.NetworkFirewallPolicyWithRulesPredefinedRuleMatch']] = None,
14998
+ priority: Optional[int] = None,
14999
+ rule_name: Optional[str] = None,
15000
+ security_profile_group: Optional[str] = None,
15001
+ target_secure_tags: Optional[Sequence['outputs.NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTag']] = None,
15002
+ target_service_accounts: Optional[Sequence[str]] = None,
15003
+ tls_inspect: Optional[bool] = None):
15004
+ """
15005
+ :param str action: (Output)
15006
+ The Action to perform when the client connection triggers the rule. Can currently be either
15007
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
15008
+ :param str description: (Output)
15009
+ A description of the rule.
15010
+ :param str direction: (Output)
15011
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
15012
+ :param bool disabled: (Output)
15013
+ Denotes whether the firewall policy rule is disabled. When set to true,
15014
+ the firewall policy rule is not enforced and traffic behaves as if it did
15015
+ not exist. If this is unspecified, the firewall policy rule will be
15016
+ enabled.
15017
+ :param bool enable_logging: (Output)
15018
+ Denotes whether to enable logging for a particular rule.
15019
+ If logging is enabled, logs will be exported to the
15020
+ configured export destination in Stackdriver.
15021
+ :param Sequence['NetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs'] matches: (Output)
15022
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
15023
+ Structure is documented below.
15024
+ :param int priority: (Output)
15025
+ An integer indicating the priority of a rule in the list. The priority must be a value
15026
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
15027
+ highest priority and 2147483647 is the lowest priority.
15028
+ :param str rule_name: (Output)
15029
+ An optional name for the rule. This field is not a unique identifier
15030
+ and can be updated.
15031
+ :param str security_profile_group: (Output)
15032
+ A fully-qualified URL of a SecurityProfile resource instance.
15033
+ Example:
15034
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
15035
+ Must be specified if action is 'apply_security_profile_group'.
15036
+ :param Sequence['NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs'] target_secure_tags: (Output)
15037
+ A list of secure tags that controls which instances the firewall rule
15038
+ applies to. If <code>targetSecureTag</code> are specified, then the
15039
+ firewall rule applies only to instances in the VPC network that have one
15040
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
15041
+ INEFFECTIVE state, then this rule will be ignored.
15042
+ <code>targetSecureTag</code> may not be set at the same time as
15043
+ <code>targetServiceAccounts</code>.
15044
+ If neither <code>targetServiceAccounts</code> nor
15045
+ <code>targetSecureTag</code> are specified, the firewall rule applies
15046
+ to all instances on the specified network.
15047
+ Maximum number of target label tags allowed is 256.
15048
+ Structure is documented below.
15049
+ :param Sequence[str] target_service_accounts: (Output)
15050
+ A list of service accounts indicating the sets of
15051
+ instances that are applied with this rule.
15052
+ :param bool tls_inspect: (Output)
15053
+ Boolean flag indicating if the traffic should be TLS decrypted.
15054
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
15055
+ """
15056
+ if action is not None:
15057
+ pulumi.set(__self__, "action", action)
15058
+ if description is not None:
15059
+ pulumi.set(__self__, "description", description)
15060
+ if direction is not None:
15061
+ pulumi.set(__self__, "direction", direction)
15062
+ if disabled is not None:
15063
+ pulumi.set(__self__, "disabled", disabled)
15064
+ if enable_logging is not None:
15065
+ pulumi.set(__self__, "enable_logging", enable_logging)
15066
+ if matches is not None:
15067
+ pulumi.set(__self__, "matches", matches)
15068
+ if priority is not None:
15069
+ pulumi.set(__self__, "priority", priority)
15070
+ if rule_name is not None:
15071
+ pulumi.set(__self__, "rule_name", rule_name)
15072
+ if security_profile_group is not None:
15073
+ pulumi.set(__self__, "security_profile_group", security_profile_group)
15074
+ if target_secure_tags is not None:
15075
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
15076
+ if target_service_accounts is not None:
15077
+ pulumi.set(__self__, "target_service_accounts", target_service_accounts)
15078
+ if tls_inspect is not None:
15079
+ pulumi.set(__self__, "tls_inspect", tls_inspect)
15080
+
15081
+ @property
15082
+ @pulumi.getter
15083
+ def action(self) -> Optional[str]:
15084
+ """
15085
+ (Output)
15086
+ The Action to perform when the client connection triggers the rule. Can currently be either
15087
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
15088
+ """
15089
+ return pulumi.get(self, "action")
15090
+
15091
+ @property
15092
+ @pulumi.getter
15093
+ def description(self) -> Optional[str]:
15094
+ """
15095
+ (Output)
15096
+ A description of the rule.
15097
+ """
15098
+ return pulumi.get(self, "description")
15099
+
15100
+ @property
15101
+ @pulumi.getter
15102
+ def direction(self) -> Optional[str]:
15103
+ """
15104
+ (Output)
15105
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
15106
+ """
15107
+ return pulumi.get(self, "direction")
15108
+
15109
+ @property
15110
+ @pulumi.getter
15111
+ def disabled(self) -> Optional[bool]:
15112
+ """
15113
+ (Output)
15114
+ Denotes whether the firewall policy rule is disabled. When set to true,
15115
+ the firewall policy rule is not enforced and traffic behaves as if it did
15116
+ not exist. If this is unspecified, the firewall policy rule will be
15117
+ enabled.
15118
+ """
15119
+ return pulumi.get(self, "disabled")
15120
+
15121
+ @property
15122
+ @pulumi.getter(name="enableLogging")
15123
+ def enable_logging(self) -> Optional[bool]:
15124
+ """
15125
+ (Output)
15126
+ Denotes whether to enable logging for a particular rule.
15127
+ If logging is enabled, logs will be exported to the
15128
+ configured export destination in Stackdriver.
15129
+ """
15130
+ return pulumi.get(self, "enable_logging")
15131
+
15132
+ @property
15133
+ @pulumi.getter
15134
+ def matches(self) -> Optional[Sequence['outputs.NetworkFirewallPolicyWithRulesPredefinedRuleMatch']]:
15135
+ """
15136
+ (Output)
15137
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
15138
+ Structure is documented below.
15139
+ """
15140
+ return pulumi.get(self, "matches")
15141
+
15142
+ @property
15143
+ @pulumi.getter
15144
+ def priority(self) -> Optional[int]:
15145
+ """
15146
+ (Output)
15147
+ An integer indicating the priority of a rule in the list. The priority must be a value
15148
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
15149
+ highest priority and 2147483647 is the lowest priority.
15150
+ """
15151
+ return pulumi.get(self, "priority")
15152
+
15153
+ @property
15154
+ @pulumi.getter(name="ruleName")
15155
+ def rule_name(self) -> Optional[str]:
15156
+ """
15157
+ (Output)
15158
+ An optional name for the rule. This field is not a unique identifier
15159
+ and can be updated.
15160
+ """
15161
+ return pulumi.get(self, "rule_name")
15162
+
15163
+ @property
15164
+ @pulumi.getter(name="securityProfileGroup")
15165
+ def security_profile_group(self) -> Optional[str]:
15166
+ """
15167
+ (Output)
15168
+ A fully-qualified URL of a SecurityProfile resource instance.
15169
+ Example:
15170
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
15171
+ Must be specified if action is 'apply_security_profile_group'.
15172
+ """
15173
+ return pulumi.get(self, "security_profile_group")
15174
+
15175
+ @property
15176
+ @pulumi.getter(name="targetSecureTags")
15177
+ def target_secure_tags(self) -> Optional[Sequence['outputs.NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTag']]:
15178
+ """
15179
+ (Output)
15180
+ A list of secure tags that controls which instances the firewall rule
15181
+ applies to. If <code>targetSecureTag</code> are specified, then the
15182
+ firewall rule applies only to instances in the VPC network that have one
15183
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
15184
+ INEFFECTIVE state, then this rule will be ignored.
15185
+ <code>targetSecureTag</code> may not be set at the same time as
15186
+ <code>targetServiceAccounts</code>.
15187
+ If neither <code>targetServiceAccounts</code> nor
15188
+ <code>targetSecureTag</code> are specified, the firewall rule applies
15189
+ to all instances on the specified network.
15190
+ Maximum number of target label tags allowed is 256.
15191
+ Structure is documented below.
15192
+ """
15193
+ return pulumi.get(self, "target_secure_tags")
15194
+
15195
+ @property
15196
+ @pulumi.getter(name="targetServiceAccounts")
15197
+ def target_service_accounts(self) -> Optional[Sequence[str]]:
15198
+ """
15199
+ (Output)
15200
+ A list of service accounts indicating the sets of
15201
+ instances that are applied with this rule.
15202
+ """
15203
+ return pulumi.get(self, "target_service_accounts")
15204
+
15205
+ @property
15206
+ @pulumi.getter(name="tlsInspect")
15207
+ def tls_inspect(self) -> Optional[bool]:
15208
+ """
15209
+ (Output)
15210
+ Boolean flag indicating if the traffic should be TLS decrypted.
15211
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
15212
+ """
15213
+ return pulumi.get(self, "tls_inspect")
15214
+
15215
+
15216
+ @pulumi.output_type
15217
+ class NetworkFirewallPolicyWithRulesPredefinedRuleMatch(dict):
15218
+ @staticmethod
15219
+ def __key_warning(key: str):
15220
+ suggest = None
15221
+ if key == "destAddressGroups":
15222
+ suggest = "dest_address_groups"
15223
+ elif key == "destFqdns":
15224
+ suggest = "dest_fqdns"
15225
+ elif key == "destIpRanges":
15226
+ suggest = "dest_ip_ranges"
15227
+ elif key == "destRegionCodes":
15228
+ suggest = "dest_region_codes"
15229
+ elif key == "destThreatIntelligences":
15230
+ suggest = "dest_threat_intelligences"
15231
+ elif key == "layer4Configs":
15232
+ suggest = "layer4_configs"
15233
+ elif key == "srcAddressGroups":
15234
+ suggest = "src_address_groups"
15235
+ elif key == "srcFqdns":
15236
+ suggest = "src_fqdns"
15237
+ elif key == "srcIpRanges":
15238
+ suggest = "src_ip_ranges"
15239
+ elif key == "srcRegionCodes":
15240
+ suggest = "src_region_codes"
15241
+ elif key == "srcSecureTags":
15242
+ suggest = "src_secure_tags"
15243
+ elif key == "srcThreatIntelligences":
15244
+ suggest = "src_threat_intelligences"
15245
+
15246
+ if suggest:
15247
+ pulumi.log.warn(f"Key '{key}' not found in NetworkFirewallPolicyWithRulesPredefinedRuleMatch. Access the value via the '{suggest}' property getter instead.")
15248
+
15249
+ def __getitem__(self, key: str) -> Any:
15250
+ NetworkFirewallPolicyWithRulesPredefinedRuleMatch.__key_warning(key)
15251
+ return super().__getitem__(key)
15252
+
15253
+ def get(self, key: str, default = None) -> Any:
15254
+ NetworkFirewallPolicyWithRulesPredefinedRuleMatch.__key_warning(key)
15255
+ return super().get(key, default)
15256
+
15257
+ def __init__(__self__, *,
15258
+ dest_address_groups: Optional[Sequence[str]] = None,
15259
+ dest_fqdns: Optional[Sequence[str]] = None,
15260
+ dest_ip_ranges: Optional[Sequence[str]] = None,
15261
+ dest_region_codes: Optional[Sequence[str]] = None,
15262
+ dest_threat_intelligences: Optional[Sequence[str]] = None,
15263
+ layer4_configs: Optional[Sequence['outputs.NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config']] = None,
15264
+ src_address_groups: Optional[Sequence[str]] = None,
15265
+ src_fqdns: Optional[Sequence[str]] = None,
15266
+ src_ip_ranges: Optional[Sequence[str]] = None,
15267
+ src_region_codes: Optional[Sequence[str]] = None,
15268
+ src_secure_tags: Optional[Sequence['outputs.NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag']] = None,
15269
+ src_threat_intelligences: Optional[Sequence[str]] = None):
15270
+ """
15271
+ :param Sequence[str] dest_address_groups: Address groups which should be matched against the traffic destination.
15272
+ Maximum number of destination address groups is 10.
15273
+ :param Sequence[str] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
15274
+ traffic destination. Maximum number of destination fqdn allowed is 100.
15275
+ :param Sequence[str] dest_ip_ranges: Destination IP address range in CIDR format. Required for
15276
+ EGRESS rules.
15277
+ :param Sequence[str] dest_region_codes: Region codes whose IP addresses will be used to match for destination
15278
+ of traffic. Should be specified as 2 letter country code defined as per
15279
+ ISO 3166 alpha-2 country codes. ex."US"
15280
+ Maximum number of destination region codes allowed is 5000.
15281
+ :param Sequence[str] dest_threat_intelligences: Names of Network Threat Intelligence lists.
15282
+ The IPs in these lists will be matched against traffic destination.
15283
+ :param Sequence['NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs'] layer4_configs: Pairs of IP protocols and ports that the rule should match.
15284
+ Structure is documented below.
15285
+ :param Sequence[str] src_address_groups: Address groups which should be matched against the traffic source.
15286
+ Maximum number of source address groups is 10.
15287
+ :param Sequence[str] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
15288
+ traffic source. Maximum number of source fqdn allowed is 100.
15289
+ :param Sequence[str] src_ip_ranges: Source IP address range in CIDR format. Required for
15290
+ INGRESS rules.
15291
+ :param Sequence[str] src_region_codes: Region codes whose IP addresses will be used to match for source
15292
+ of traffic. Should be specified as 2 letter country code defined as per
15293
+ ISO 3166 alpha-2 country codes. ex."US"
15294
+ Maximum number of source region codes allowed is 5000.
15295
+ :param Sequence['NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs'] src_secure_tags: List of secure tag values, which should be matched at the source
15296
+ of the traffic.
15297
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
15298
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
15299
+ Maximum number of source tag values allowed is 256.
15300
+ Structure is documented below.
15301
+
15302
+
15303
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
15304
+ :param Sequence[str] src_threat_intelligences: Names of Network Threat Intelligence lists.
15305
+ The IPs in these lists will be matched against traffic source.
15306
+ """
15307
+ if dest_address_groups is not None:
15308
+ pulumi.set(__self__, "dest_address_groups", dest_address_groups)
15309
+ if dest_fqdns is not None:
15310
+ pulumi.set(__self__, "dest_fqdns", dest_fqdns)
15311
+ if dest_ip_ranges is not None:
15312
+ pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges)
15313
+ if dest_region_codes is not None:
15314
+ pulumi.set(__self__, "dest_region_codes", dest_region_codes)
15315
+ if dest_threat_intelligences is not None:
15316
+ pulumi.set(__self__, "dest_threat_intelligences", dest_threat_intelligences)
15317
+ if layer4_configs is not None:
15318
+ pulumi.set(__self__, "layer4_configs", layer4_configs)
15319
+ if src_address_groups is not None:
15320
+ pulumi.set(__self__, "src_address_groups", src_address_groups)
15321
+ if src_fqdns is not None:
15322
+ pulumi.set(__self__, "src_fqdns", src_fqdns)
15323
+ if src_ip_ranges is not None:
15324
+ pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
15325
+ if src_region_codes is not None:
15326
+ pulumi.set(__self__, "src_region_codes", src_region_codes)
15327
+ if src_secure_tags is not None:
15328
+ pulumi.set(__self__, "src_secure_tags", src_secure_tags)
15329
+ if src_threat_intelligences is not None:
15330
+ pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
15331
+
15332
+ @property
15333
+ @pulumi.getter(name="destAddressGroups")
15334
+ def dest_address_groups(self) -> Optional[Sequence[str]]:
15335
+ """
15336
+ Address groups which should be matched against the traffic destination.
15337
+ Maximum number of destination address groups is 10.
15338
+ """
15339
+ return pulumi.get(self, "dest_address_groups")
15340
+
15341
+ @property
15342
+ @pulumi.getter(name="destFqdns")
15343
+ def dest_fqdns(self) -> Optional[Sequence[str]]:
15344
+ """
15345
+ Fully Qualified Domain Name (FQDN) which should be matched against
15346
+ traffic destination. Maximum number of destination fqdn allowed is 100.
15347
+ """
15348
+ return pulumi.get(self, "dest_fqdns")
15349
+
15350
+ @property
15351
+ @pulumi.getter(name="destIpRanges")
15352
+ def dest_ip_ranges(self) -> Optional[Sequence[str]]:
15353
+ """
15354
+ Destination IP address range in CIDR format. Required for
15355
+ EGRESS rules.
15356
+ """
15357
+ return pulumi.get(self, "dest_ip_ranges")
15358
+
15359
+ @property
15360
+ @pulumi.getter(name="destRegionCodes")
15361
+ def dest_region_codes(self) -> Optional[Sequence[str]]:
15362
+ """
15363
+ Region codes whose IP addresses will be used to match for destination
15364
+ of traffic. Should be specified as 2 letter country code defined as per
15365
+ ISO 3166 alpha-2 country codes. ex."US"
15366
+ Maximum number of destination region codes allowed is 5000.
15367
+ """
15368
+ return pulumi.get(self, "dest_region_codes")
15369
+
15370
+ @property
15371
+ @pulumi.getter(name="destThreatIntelligences")
15372
+ def dest_threat_intelligences(self) -> Optional[Sequence[str]]:
15373
+ """
15374
+ Names of Network Threat Intelligence lists.
15375
+ The IPs in these lists will be matched against traffic destination.
15376
+ """
15377
+ return pulumi.get(self, "dest_threat_intelligences")
15378
+
15379
+ @property
15380
+ @pulumi.getter(name="layer4Configs")
15381
+ def layer4_configs(self) -> Optional[Sequence['outputs.NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config']]:
15382
+ """
15383
+ Pairs of IP protocols and ports that the rule should match.
15384
+ Structure is documented below.
15385
+ """
15386
+ return pulumi.get(self, "layer4_configs")
15387
+
15388
+ @property
15389
+ @pulumi.getter(name="srcAddressGroups")
15390
+ def src_address_groups(self) -> Optional[Sequence[str]]:
15391
+ """
15392
+ Address groups which should be matched against the traffic source.
15393
+ Maximum number of source address groups is 10.
15394
+ """
15395
+ return pulumi.get(self, "src_address_groups")
15396
+
15397
+ @property
15398
+ @pulumi.getter(name="srcFqdns")
15399
+ def src_fqdns(self) -> Optional[Sequence[str]]:
15400
+ """
15401
+ Fully Qualified Domain Name (FQDN) which should be matched against
15402
+ traffic source. Maximum number of source fqdn allowed is 100.
15403
+ """
15404
+ return pulumi.get(self, "src_fqdns")
15405
+
15406
+ @property
15407
+ @pulumi.getter(name="srcIpRanges")
15408
+ def src_ip_ranges(self) -> Optional[Sequence[str]]:
15409
+ """
15410
+ Source IP address range in CIDR format. Required for
15411
+ INGRESS rules.
15412
+ """
15413
+ return pulumi.get(self, "src_ip_ranges")
15414
+
15415
+ @property
15416
+ @pulumi.getter(name="srcRegionCodes")
15417
+ def src_region_codes(self) -> Optional[Sequence[str]]:
15418
+ """
15419
+ Region codes whose IP addresses will be used to match for source
15420
+ of traffic. Should be specified as 2 letter country code defined as per
15421
+ ISO 3166 alpha-2 country codes. ex."US"
15422
+ Maximum number of source region codes allowed is 5000.
15423
+ """
15424
+ return pulumi.get(self, "src_region_codes")
15425
+
15426
+ @property
15427
+ @pulumi.getter(name="srcSecureTags")
15428
+ def src_secure_tags(self) -> Optional[Sequence['outputs.NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag']]:
15429
+ """
15430
+ List of secure tag values, which should be matched at the source
15431
+ of the traffic.
15432
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
15433
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
15434
+ Maximum number of source tag values allowed is 256.
15435
+ Structure is documented below.
15436
+
15437
+
15438
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
15439
+ """
15440
+ return pulumi.get(self, "src_secure_tags")
15441
+
15442
+ @property
15443
+ @pulumi.getter(name="srcThreatIntelligences")
15444
+ def src_threat_intelligences(self) -> Optional[Sequence[str]]:
15445
+ """
15446
+ Names of Network Threat Intelligence lists.
15447
+ The IPs in these lists will be matched against traffic source.
15448
+ """
15449
+ return pulumi.get(self, "src_threat_intelligences")
15450
+
15451
+
15452
+ @pulumi.output_type
15453
+ class NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config(dict):
15454
+ @staticmethod
15455
+ def __key_warning(key: str):
15456
+ suggest = None
15457
+ if key == "ipProtocol":
15458
+ suggest = "ip_protocol"
15459
+
15460
+ if suggest:
15461
+ pulumi.log.warn(f"Key '{key}' not found in NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config. Access the value via the '{suggest}' property getter instead.")
15462
+
15463
+ def __getitem__(self, key: str) -> Any:
15464
+ NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config.__key_warning(key)
15465
+ return super().__getitem__(key)
15466
+
15467
+ def get(self, key: str, default = None) -> Any:
15468
+ NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config.__key_warning(key)
15469
+ return super().get(key, default)
15470
+
15471
+ def __init__(__self__, *,
15472
+ ip_protocol: Optional[str] = None,
15473
+ ports: Optional[Sequence[str]] = None):
15474
+ """
15475
+ :param str ip_protocol: (Output)
15476
+ The IP protocol to which this rule applies. The protocol
15477
+ type is required when creating a firewall rule.
15478
+ This value can either be one of the following well
15479
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
15480
+ or the IP protocol number.
15481
+ :param Sequence[str] ports: (Output)
15482
+ An optional list of ports to which this rule applies. This field
15483
+ is only applicable for UDP or TCP protocol. Each entry must be
15484
+ either an integer or a range. If not specified, this rule
15485
+ applies to connections through any port.
15486
+ Example inputs include: ["22"], ["80","443"], and
15487
+ ["12345-12349"].
15488
+ """
15489
+ if ip_protocol is not None:
15490
+ pulumi.set(__self__, "ip_protocol", ip_protocol)
15491
+ if ports is not None:
15492
+ pulumi.set(__self__, "ports", ports)
15493
+
15494
+ @property
15495
+ @pulumi.getter(name="ipProtocol")
15496
+ def ip_protocol(self) -> Optional[str]:
15497
+ """
15498
+ (Output)
15499
+ The IP protocol to which this rule applies. The protocol
15500
+ type is required when creating a firewall rule.
15501
+ This value can either be one of the following well
15502
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
15503
+ or the IP protocol number.
15504
+ """
15505
+ return pulumi.get(self, "ip_protocol")
15506
+
15507
+ @property
15508
+ @pulumi.getter
15509
+ def ports(self) -> Optional[Sequence[str]]:
15510
+ """
15511
+ (Output)
15512
+ An optional list of ports to which this rule applies. This field
15513
+ is only applicable for UDP or TCP protocol. Each entry must be
15514
+ either an integer or a range. If not specified, this rule
15515
+ applies to connections through any port.
15516
+ Example inputs include: ["22"], ["80","443"], and
15517
+ ["12345-12349"].
15518
+ """
15519
+ return pulumi.get(self, "ports")
15520
+
15521
+
15522
+ @pulumi.output_type
15523
+ class NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag(dict):
15524
+ def __init__(__self__, *,
15525
+ name: Optional[str] = None,
15526
+ state: Optional[str] = None):
15527
+ """
15528
+ :param str name: Name of the secure tag, created with TagManager's TagValue API.
15529
+ @pattern tagValues/[0-9]+
15530
+ :param str state: (Output)
15531
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
15532
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
15533
+ or its network is deleted.
15534
+ """
15535
+ if name is not None:
15536
+ pulumi.set(__self__, "name", name)
15537
+ if state is not None:
15538
+ pulumi.set(__self__, "state", state)
15539
+
15540
+ @property
15541
+ @pulumi.getter
15542
+ def name(self) -> Optional[str]:
15543
+ """
15544
+ Name of the secure tag, created with TagManager's TagValue API.
15545
+ @pattern tagValues/[0-9]+
15546
+ """
15547
+ return pulumi.get(self, "name")
15548
+
15549
+ @property
15550
+ @pulumi.getter
15551
+ def state(self) -> Optional[str]:
15552
+ """
15553
+ (Output)
15554
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
15555
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
15556
+ or its network is deleted.
15557
+ """
15558
+ return pulumi.get(self, "state")
15559
+
15560
+
15561
+ @pulumi.output_type
15562
+ class NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTag(dict):
15563
+ def __init__(__self__, *,
15564
+ name: Optional[str] = None,
15565
+ state: Optional[str] = None):
15566
+ """
15567
+ :param str name: Name of the secure tag, created with TagManager's TagValue API.
15568
+ @pattern tagValues/[0-9]+
15569
+ :param str state: (Output)
15570
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
15571
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
15572
+ or its network is deleted.
15573
+
15574
+ - - -
15575
+ """
15576
+ if name is not None:
15577
+ pulumi.set(__self__, "name", name)
15578
+ if state is not None:
15579
+ pulumi.set(__self__, "state", state)
15580
+
15581
+ @property
15582
+ @pulumi.getter
15583
+ def name(self) -> Optional[str]:
15584
+ """
15585
+ Name of the secure tag, created with TagManager's TagValue API.
15586
+ @pattern tagValues/[0-9]+
15587
+ """
15588
+ return pulumi.get(self, "name")
15589
+
15590
+ @property
15591
+ @pulumi.getter
15592
+ def state(self) -> Optional[str]:
15593
+ """
15594
+ (Output)
15595
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
15596
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
15597
+ or its network is deleted.
15598
+
15599
+ - - -
15600
+ """
15601
+ return pulumi.get(self, "state")
15602
+
15603
+
15604
+ @pulumi.output_type
15605
+ class NetworkFirewallPolicyWithRulesRule(dict):
15606
+ @staticmethod
15607
+ def __key_warning(key: str):
15608
+ suggest = None
15609
+ if key == "enableLogging":
15610
+ suggest = "enable_logging"
15611
+ elif key == "ruleName":
15612
+ suggest = "rule_name"
15613
+ elif key == "securityProfileGroup":
15614
+ suggest = "security_profile_group"
15615
+ elif key == "targetSecureTags":
15616
+ suggest = "target_secure_tags"
15617
+ elif key == "targetServiceAccounts":
15618
+ suggest = "target_service_accounts"
15619
+ elif key == "tlsInspect":
15620
+ suggest = "tls_inspect"
15621
+
15622
+ if suggest:
15623
+ pulumi.log.warn(f"Key '{key}' not found in NetworkFirewallPolicyWithRulesRule. Access the value via the '{suggest}' property getter instead.")
15624
+
15625
+ def __getitem__(self, key: str) -> Any:
15626
+ NetworkFirewallPolicyWithRulesRule.__key_warning(key)
15627
+ return super().__getitem__(key)
15628
+
15629
+ def get(self, key: str, default = None) -> Any:
15630
+ NetworkFirewallPolicyWithRulesRule.__key_warning(key)
15631
+ return super().get(key, default)
15632
+
15633
+ def __init__(__self__, *,
15634
+ action: str,
15635
+ match: 'outputs.NetworkFirewallPolicyWithRulesRuleMatch',
15636
+ priority: int,
15637
+ description: Optional[str] = None,
15638
+ direction: Optional[str] = None,
15639
+ disabled: Optional[bool] = None,
15640
+ enable_logging: Optional[bool] = None,
15641
+ rule_name: Optional[str] = None,
15642
+ security_profile_group: Optional[str] = None,
15643
+ target_secure_tags: Optional[Sequence['outputs.NetworkFirewallPolicyWithRulesRuleTargetSecureTag']] = None,
15644
+ target_service_accounts: Optional[Sequence[str]] = None,
15645
+ tls_inspect: Optional[bool] = None):
15646
+ """
15647
+ :param str action: The Action to perform when the client connection triggers the rule. Can currently be either
15648
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
15649
+ :param 'NetworkFirewallPolicyWithRulesRuleMatchArgs' match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
15650
+ Structure is documented below.
15651
+ :param int priority: An integer indicating the priority of a rule in the list. The priority must be a value
15652
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
15653
+ highest priority and 2147483647 is the lowest priority.
15654
+ :param str description: A description of the rule.
15655
+ :param str direction: The direction in which this rule applies. If unspecified an INGRESS rule is created.
15656
+ Possible values are: `INGRESS`, `EGRESS`.
15657
+ :param bool disabled: Denotes whether the firewall policy rule is disabled. When set to true,
15658
+ the firewall policy rule is not enforced and traffic behaves as if it did
15659
+ not exist. If this is unspecified, the firewall policy rule will be
15660
+ enabled.
15661
+ :param bool enable_logging: Denotes whether to enable logging for a particular rule.
15662
+ If logging is enabled, logs will be exported to the
15663
+ configured export destination in Stackdriver.
15664
+ :param str rule_name: An optional name for the rule. This field is not a unique identifier
15665
+ and can be updated.
15666
+ :param str security_profile_group: A fully-qualified URL of a SecurityProfile resource instance.
15667
+ Example:
15668
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
15669
+ Must be specified if action is 'apply_security_profile_group'.
15670
+ :param Sequence['NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs'] target_secure_tags: A list of secure tags that controls which instances the firewall rule
15671
+ applies to. If <code>targetSecureTag</code> are specified, then the
15672
+ firewall rule applies only to instances in the VPC network that have one
15673
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
15674
+ INEFFECTIVE state, then this rule will be ignored.
15675
+ <code>targetSecureTag</code> may not be set at the same time as
15676
+ <code>targetServiceAccounts</code>.
15677
+ If neither <code>targetServiceAccounts</code> nor
15678
+ <code>targetSecureTag</code> are specified, the firewall rule applies
15679
+ to all instances on the specified network.
15680
+ Maximum number of target label tags allowed is 256.
15681
+ Structure is documented below.
15682
+ :param Sequence[str] target_service_accounts: A list of service accounts indicating the sets of
15683
+ instances that are applied with this rule.
15684
+ :param bool tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted.
15685
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
15686
+ """
15687
+ pulumi.set(__self__, "action", action)
15688
+ pulumi.set(__self__, "match", match)
15689
+ pulumi.set(__self__, "priority", priority)
15690
+ if description is not None:
15691
+ pulumi.set(__self__, "description", description)
15692
+ if direction is not None:
15693
+ pulumi.set(__self__, "direction", direction)
15694
+ if disabled is not None:
15695
+ pulumi.set(__self__, "disabled", disabled)
15696
+ if enable_logging is not None:
15697
+ pulumi.set(__self__, "enable_logging", enable_logging)
15698
+ if rule_name is not None:
15699
+ pulumi.set(__self__, "rule_name", rule_name)
15700
+ if security_profile_group is not None:
15701
+ pulumi.set(__self__, "security_profile_group", security_profile_group)
15702
+ if target_secure_tags is not None:
15703
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
15704
+ if target_service_accounts is not None:
15705
+ pulumi.set(__self__, "target_service_accounts", target_service_accounts)
15706
+ if tls_inspect is not None:
15707
+ pulumi.set(__self__, "tls_inspect", tls_inspect)
15708
+
15709
+ @property
15710
+ @pulumi.getter
15711
+ def action(self) -> str:
15712
+ """
15713
+ The Action to perform when the client connection triggers the rule. Can currently be either
15714
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
15715
+ """
15716
+ return pulumi.get(self, "action")
15717
+
15718
+ @property
15719
+ @pulumi.getter
15720
+ def match(self) -> 'outputs.NetworkFirewallPolicyWithRulesRuleMatch':
15721
+ """
15722
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
15723
+ Structure is documented below.
15724
+ """
15725
+ return pulumi.get(self, "match")
15726
+
15727
+ @property
15728
+ @pulumi.getter
15729
+ def priority(self) -> int:
15730
+ """
15731
+ An integer indicating the priority of a rule in the list. The priority must be a value
15732
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
15733
+ highest priority and 2147483647 is the lowest priority.
15734
+ """
15735
+ return pulumi.get(self, "priority")
15736
+
15737
+ @property
15738
+ @pulumi.getter
15739
+ def description(self) -> Optional[str]:
15740
+ """
15741
+ A description of the rule.
15742
+ """
15743
+ return pulumi.get(self, "description")
15744
+
15745
+ @property
15746
+ @pulumi.getter
15747
+ def direction(self) -> Optional[str]:
15748
+ """
15749
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
15750
+ Possible values are: `INGRESS`, `EGRESS`.
15751
+ """
15752
+ return pulumi.get(self, "direction")
15753
+
15754
+ @property
15755
+ @pulumi.getter
15756
+ def disabled(self) -> Optional[bool]:
15757
+ """
15758
+ Denotes whether the firewall policy rule is disabled. When set to true,
15759
+ the firewall policy rule is not enforced and traffic behaves as if it did
15760
+ not exist. If this is unspecified, the firewall policy rule will be
15761
+ enabled.
15762
+ """
15763
+ return pulumi.get(self, "disabled")
15764
+
15765
+ @property
15766
+ @pulumi.getter(name="enableLogging")
15767
+ def enable_logging(self) -> Optional[bool]:
15768
+ """
15769
+ Denotes whether to enable logging for a particular rule.
15770
+ If logging is enabled, logs will be exported to the
15771
+ configured export destination in Stackdriver.
15772
+ """
15773
+ return pulumi.get(self, "enable_logging")
15774
+
15775
+ @property
15776
+ @pulumi.getter(name="ruleName")
15777
+ def rule_name(self) -> Optional[str]:
15778
+ """
15779
+ An optional name for the rule. This field is not a unique identifier
15780
+ and can be updated.
15781
+ """
15782
+ return pulumi.get(self, "rule_name")
15783
+
15784
+ @property
15785
+ @pulumi.getter(name="securityProfileGroup")
15786
+ def security_profile_group(self) -> Optional[str]:
15787
+ """
15788
+ A fully-qualified URL of a SecurityProfile resource instance.
15789
+ Example:
15790
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
15791
+ Must be specified if action is 'apply_security_profile_group'.
15792
+ """
15793
+ return pulumi.get(self, "security_profile_group")
15794
+
15795
+ @property
15796
+ @pulumi.getter(name="targetSecureTags")
15797
+ def target_secure_tags(self) -> Optional[Sequence['outputs.NetworkFirewallPolicyWithRulesRuleTargetSecureTag']]:
15798
+ """
15799
+ A list of secure tags that controls which instances the firewall rule
15800
+ applies to. If <code>targetSecureTag</code> are specified, then the
15801
+ firewall rule applies only to instances in the VPC network that have one
15802
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
15803
+ INEFFECTIVE state, then this rule will be ignored.
15804
+ <code>targetSecureTag</code> may not be set at the same time as
15805
+ <code>targetServiceAccounts</code>.
15806
+ If neither <code>targetServiceAccounts</code> nor
15807
+ <code>targetSecureTag</code> are specified, the firewall rule applies
15808
+ to all instances on the specified network.
15809
+ Maximum number of target label tags allowed is 256.
15810
+ Structure is documented below.
15811
+ """
15812
+ return pulumi.get(self, "target_secure_tags")
15813
+
15814
+ @property
15815
+ @pulumi.getter(name="targetServiceAccounts")
15816
+ def target_service_accounts(self) -> Optional[Sequence[str]]:
15817
+ """
15818
+ A list of service accounts indicating the sets of
15819
+ instances that are applied with this rule.
15820
+ """
15821
+ return pulumi.get(self, "target_service_accounts")
15822
+
15823
+ @property
15824
+ @pulumi.getter(name="tlsInspect")
15825
+ def tls_inspect(self) -> Optional[bool]:
15826
+ """
15827
+ Boolean flag indicating if the traffic should be TLS decrypted.
15828
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
15829
+ """
15830
+ return pulumi.get(self, "tls_inspect")
15831
+
15832
+
15833
+ @pulumi.output_type
15834
+ class NetworkFirewallPolicyWithRulesRuleMatch(dict):
15835
+ @staticmethod
15836
+ def __key_warning(key: str):
15837
+ suggest = None
15838
+ if key == "layer4Configs":
15839
+ suggest = "layer4_configs"
15840
+ elif key == "destAddressGroups":
15841
+ suggest = "dest_address_groups"
15842
+ elif key == "destFqdns":
15843
+ suggest = "dest_fqdns"
15844
+ elif key == "destIpRanges":
15845
+ suggest = "dest_ip_ranges"
15846
+ elif key == "destRegionCodes":
15847
+ suggest = "dest_region_codes"
15848
+ elif key == "destThreatIntelligences":
15849
+ suggest = "dest_threat_intelligences"
15850
+ elif key == "srcAddressGroups":
15851
+ suggest = "src_address_groups"
15852
+ elif key == "srcFqdns":
15853
+ suggest = "src_fqdns"
15854
+ elif key == "srcIpRanges":
15855
+ suggest = "src_ip_ranges"
15856
+ elif key == "srcRegionCodes":
15857
+ suggest = "src_region_codes"
15858
+ elif key == "srcSecureTags":
15859
+ suggest = "src_secure_tags"
15860
+ elif key == "srcThreatIntelligences":
15861
+ suggest = "src_threat_intelligences"
15862
+
15863
+ if suggest:
15864
+ pulumi.log.warn(f"Key '{key}' not found in NetworkFirewallPolicyWithRulesRuleMatch. Access the value via the '{suggest}' property getter instead.")
15865
+
15866
+ def __getitem__(self, key: str) -> Any:
15867
+ NetworkFirewallPolicyWithRulesRuleMatch.__key_warning(key)
15868
+ return super().__getitem__(key)
15869
+
15870
+ def get(self, key: str, default = None) -> Any:
15871
+ NetworkFirewallPolicyWithRulesRuleMatch.__key_warning(key)
15872
+ return super().get(key, default)
15873
+
15874
+ def __init__(__self__, *,
15875
+ layer4_configs: Sequence['outputs.NetworkFirewallPolicyWithRulesRuleMatchLayer4Config'],
15876
+ dest_address_groups: Optional[Sequence[str]] = None,
15877
+ dest_fqdns: Optional[Sequence[str]] = None,
15878
+ dest_ip_ranges: Optional[Sequence[str]] = None,
15879
+ dest_region_codes: Optional[Sequence[str]] = None,
15880
+ dest_threat_intelligences: Optional[Sequence[str]] = None,
15881
+ src_address_groups: Optional[Sequence[str]] = None,
15882
+ src_fqdns: Optional[Sequence[str]] = None,
15883
+ src_ip_ranges: Optional[Sequence[str]] = None,
15884
+ src_region_codes: Optional[Sequence[str]] = None,
15885
+ src_secure_tags: Optional[Sequence['outputs.NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTag']] = None,
15886
+ src_threat_intelligences: Optional[Sequence[str]] = None):
15887
+ """
15888
+ :param Sequence['NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs'] layer4_configs: Pairs of IP protocols and ports that the rule should match.
15889
+ Structure is documented below.
15890
+ :param Sequence[str] dest_address_groups: Address groups which should be matched against the traffic destination.
15891
+ Maximum number of destination address groups is 10.
15892
+ :param Sequence[str] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
15893
+ traffic destination. Maximum number of destination fqdn allowed is 100.
15894
+ :param Sequence[str] dest_ip_ranges: Destination IP address range in CIDR format. Required for
15895
+ EGRESS rules.
15896
+ :param Sequence[str] dest_region_codes: Region codes whose IP addresses will be used to match for destination
15897
+ of traffic. Should be specified as 2 letter country code defined as per
15898
+ ISO 3166 alpha-2 country codes. ex."US"
15899
+ Maximum number of destination region codes allowed is 5000.
15900
+ :param Sequence[str] dest_threat_intelligences: Names of Network Threat Intelligence lists.
15901
+ The IPs in these lists will be matched against traffic destination.
15902
+ :param Sequence[str] src_address_groups: Address groups which should be matched against the traffic source.
15903
+ Maximum number of source address groups is 10.
15904
+ :param Sequence[str] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
15905
+ traffic source. Maximum number of source fqdn allowed is 100.
15906
+ :param Sequence[str] src_ip_ranges: Source IP address range in CIDR format. Required for
15907
+ INGRESS rules.
15908
+ :param Sequence[str] src_region_codes: Region codes whose IP addresses will be used to match for source
15909
+ of traffic. Should be specified as 2 letter country code defined as per
15910
+ ISO 3166 alpha-2 country codes. ex."US"
15911
+ Maximum number of source region codes allowed is 5000.
15912
+ :param Sequence['NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs'] src_secure_tags: List of secure tag values, which should be matched at the source
15913
+ of the traffic.
15914
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
15915
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
15916
+ Maximum number of source tag values allowed is 256.
15917
+ Structure is documented below.
15918
+
15919
+
15920
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
15921
+ :param Sequence[str] src_threat_intelligences: Names of Network Threat Intelligence lists.
15922
+ The IPs in these lists will be matched against traffic source.
15923
+ """
15924
+ pulumi.set(__self__, "layer4_configs", layer4_configs)
15925
+ if dest_address_groups is not None:
15926
+ pulumi.set(__self__, "dest_address_groups", dest_address_groups)
15927
+ if dest_fqdns is not None:
15928
+ pulumi.set(__self__, "dest_fqdns", dest_fqdns)
15929
+ if dest_ip_ranges is not None:
15930
+ pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges)
15931
+ if dest_region_codes is not None:
15932
+ pulumi.set(__self__, "dest_region_codes", dest_region_codes)
15933
+ if dest_threat_intelligences is not None:
15934
+ pulumi.set(__self__, "dest_threat_intelligences", dest_threat_intelligences)
15935
+ if src_address_groups is not None:
15936
+ pulumi.set(__self__, "src_address_groups", src_address_groups)
15937
+ if src_fqdns is not None:
15938
+ pulumi.set(__self__, "src_fqdns", src_fqdns)
15939
+ if src_ip_ranges is not None:
15940
+ pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
15941
+ if src_region_codes is not None:
15942
+ pulumi.set(__self__, "src_region_codes", src_region_codes)
15943
+ if src_secure_tags is not None:
15944
+ pulumi.set(__self__, "src_secure_tags", src_secure_tags)
15945
+ if src_threat_intelligences is not None:
15946
+ pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
15947
+
15948
+ @property
15949
+ @pulumi.getter(name="layer4Configs")
15950
+ def layer4_configs(self) -> Sequence['outputs.NetworkFirewallPolicyWithRulesRuleMatchLayer4Config']:
15951
+ """
15952
+ Pairs of IP protocols and ports that the rule should match.
15953
+ Structure is documented below.
15954
+ """
15955
+ return pulumi.get(self, "layer4_configs")
15956
+
15957
+ @property
15958
+ @pulumi.getter(name="destAddressGroups")
15959
+ def dest_address_groups(self) -> Optional[Sequence[str]]:
15960
+ """
15961
+ Address groups which should be matched against the traffic destination.
15962
+ Maximum number of destination address groups is 10.
15963
+ """
15964
+ return pulumi.get(self, "dest_address_groups")
15965
+
15966
+ @property
15967
+ @pulumi.getter(name="destFqdns")
15968
+ def dest_fqdns(self) -> Optional[Sequence[str]]:
15969
+ """
15970
+ Fully Qualified Domain Name (FQDN) which should be matched against
15971
+ traffic destination. Maximum number of destination fqdn allowed is 100.
15972
+ """
15973
+ return pulumi.get(self, "dest_fqdns")
15974
+
15975
+ @property
15976
+ @pulumi.getter(name="destIpRanges")
15977
+ def dest_ip_ranges(self) -> Optional[Sequence[str]]:
15978
+ """
15979
+ Destination IP address range in CIDR format. Required for
15980
+ EGRESS rules.
15981
+ """
15982
+ return pulumi.get(self, "dest_ip_ranges")
15983
+
15984
+ @property
15985
+ @pulumi.getter(name="destRegionCodes")
15986
+ def dest_region_codes(self) -> Optional[Sequence[str]]:
15987
+ """
15988
+ Region codes whose IP addresses will be used to match for destination
15989
+ of traffic. Should be specified as 2 letter country code defined as per
15990
+ ISO 3166 alpha-2 country codes. ex."US"
15991
+ Maximum number of destination region codes allowed is 5000.
15992
+ """
15993
+ return pulumi.get(self, "dest_region_codes")
15994
+
15995
+ @property
15996
+ @pulumi.getter(name="destThreatIntelligences")
15997
+ def dest_threat_intelligences(self) -> Optional[Sequence[str]]:
15998
+ """
15999
+ Names of Network Threat Intelligence lists.
16000
+ The IPs in these lists will be matched against traffic destination.
16001
+ """
16002
+ return pulumi.get(self, "dest_threat_intelligences")
16003
+
16004
+ @property
16005
+ @pulumi.getter(name="srcAddressGroups")
16006
+ def src_address_groups(self) -> Optional[Sequence[str]]:
16007
+ """
16008
+ Address groups which should be matched against the traffic source.
16009
+ Maximum number of source address groups is 10.
16010
+ """
16011
+ return pulumi.get(self, "src_address_groups")
16012
+
16013
+ @property
16014
+ @pulumi.getter(name="srcFqdns")
16015
+ def src_fqdns(self) -> Optional[Sequence[str]]:
16016
+ """
16017
+ Fully Qualified Domain Name (FQDN) which should be matched against
16018
+ traffic source. Maximum number of source fqdn allowed is 100.
16019
+ """
16020
+ return pulumi.get(self, "src_fqdns")
16021
+
16022
+ @property
16023
+ @pulumi.getter(name="srcIpRanges")
16024
+ def src_ip_ranges(self) -> Optional[Sequence[str]]:
16025
+ """
16026
+ Source IP address range in CIDR format. Required for
16027
+ INGRESS rules.
16028
+ """
16029
+ return pulumi.get(self, "src_ip_ranges")
16030
+
16031
+ @property
16032
+ @pulumi.getter(name="srcRegionCodes")
16033
+ def src_region_codes(self) -> Optional[Sequence[str]]:
16034
+ """
16035
+ Region codes whose IP addresses will be used to match for source
16036
+ of traffic. Should be specified as 2 letter country code defined as per
16037
+ ISO 3166 alpha-2 country codes. ex."US"
16038
+ Maximum number of source region codes allowed is 5000.
16039
+ """
16040
+ return pulumi.get(self, "src_region_codes")
16041
+
16042
+ @property
16043
+ @pulumi.getter(name="srcSecureTags")
16044
+ def src_secure_tags(self) -> Optional[Sequence['outputs.NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTag']]:
16045
+ """
16046
+ List of secure tag values, which should be matched at the source
16047
+ of the traffic.
16048
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
16049
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
16050
+ Maximum number of source tag values allowed is 256.
16051
+ Structure is documented below.
16052
+
16053
+
16054
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
16055
+ """
16056
+ return pulumi.get(self, "src_secure_tags")
16057
+
16058
+ @property
16059
+ @pulumi.getter(name="srcThreatIntelligences")
16060
+ def src_threat_intelligences(self) -> Optional[Sequence[str]]:
16061
+ """
16062
+ Names of Network Threat Intelligence lists.
16063
+ The IPs in these lists will be matched against traffic source.
16064
+ """
16065
+ return pulumi.get(self, "src_threat_intelligences")
16066
+
16067
+
16068
+ @pulumi.output_type
16069
+ class NetworkFirewallPolicyWithRulesRuleMatchLayer4Config(dict):
16070
+ @staticmethod
16071
+ def __key_warning(key: str):
16072
+ suggest = None
16073
+ if key == "ipProtocol":
16074
+ suggest = "ip_protocol"
16075
+
16076
+ if suggest:
16077
+ pulumi.log.warn(f"Key '{key}' not found in NetworkFirewallPolicyWithRulesRuleMatchLayer4Config. Access the value via the '{suggest}' property getter instead.")
16078
+
16079
+ def __getitem__(self, key: str) -> Any:
16080
+ NetworkFirewallPolicyWithRulesRuleMatchLayer4Config.__key_warning(key)
16081
+ return super().__getitem__(key)
16082
+
16083
+ def get(self, key: str, default = None) -> Any:
16084
+ NetworkFirewallPolicyWithRulesRuleMatchLayer4Config.__key_warning(key)
16085
+ return super().get(key, default)
16086
+
16087
+ def __init__(__self__, *,
16088
+ ip_protocol: str,
16089
+ ports: Optional[Sequence[str]] = None):
16090
+ """
16091
+ :param str ip_protocol: (Output)
16092
+ The IP protocol to which this rule applies. The protocol
16093
+ type is required when creating a firewall rule.
16094
+ This value can either be one of the following well
16095
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
16096
+ or the IP protocol number.
16097
+ :param Sequence[str] ports: (Output)
16098
+ An optional list of ports to which this rule applies. This field
16099
+ is only applicable for UDP or TCP protocol. Each entry must be
16100
+ either an integer or a range. If not specified, this rule
16101
+ applies to connections through any port.
16102
+ Example inputs include: ["22"], ["80","443"], and
16103
+ ["12345-12349"].
16104
+ """
16105
+ pulumi.set(__self__, "ip_protocol", ip_protocol)
16106
+ if ports is not None:
16107
+ pulumi.set(__self__, "ports", ports)
16108
+
16109
+ @property
16110
+ @pulumi.getter(name="ipProtocol")
16111
+ def ip_protocol(self) -> str:
16112
+ """
16113
+ (Output)
16114
+ The IP protocol to which this rule applies. The protocol
16115
+ type is required when creating a firewall rule.
16116
+ This value can either be one of the following well
16117
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
16118
+ or the IP protocol number.
16119
+ """
16120
+ return pulumi.get(self, "ip_protocol")
16121
+
16122
+ @property
16123
+ @pulumi.getter
16124
+ def ports(self) -> Optional[Sequence[str]]:
16125
+ """
16126
+ (Output)
16127
+ An optional list of ports to which this rule applies. This field
16128
+ is only applicable for UDP or TCP protocol. Each entry must be
16129
+ either an integer or a range. If not specified, this rule
16130
+ applies to connections through any port.
16131
+ Example inputs include: ["22"], ["80","443"], and
16132
+ ["12345-12349"].
16133
+ """
16134
+ return pulumi.get(self, "ports")
16135
+
16136
+
16137
+ @pulumi.output_type
16138
+ class NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTag(dict):
16139
+ def __init__(__self__, *,
16140
+ name: Optional[str] = None,
16141
+ state: Optional[str] = None):
16142
+ """
16143
+ :param str name: Name of the secure tag, created with TagManager's TagValue API.
16144
+ @pattern tagValues/[0-9]+
16145
+ :param str state: (Output)
16146
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
16147
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
16148
+ or its network is deleted.
16149
+ """
16150
+ if name is not None:
16151
+ pulumi.set(__self__, "name", name)
16152
+ if state is not None:
16153
+ pulumi.set(__self__, "state", state)
16154
+
16155
+ @property
16156
+ @pulumi.getter
16157
+ def name(self) -> Optional[str]:
16158
+ """
16159
+ Name of the secure tag, created with TagManager's TagValue API.
16160
+ @pattern tagValues/[0-9]+
16161
+ """
16162
+ return pulumi.get(self, "name")
16163
+
16164
+ @property
16165
+ @pulumi.getter
16166
+ def state(self) -> Optional[str]:
16167
+ """
16168
+ (Output)
16169
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
16170
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
16171
+ or its network is deleted.
16172
+ """
16173
+ return pulumi.get(self, "state")
16174
+
16175
+
16176
+ @pulumi.output_type
16177
+ class NetworkFirewallPolicyWithRulesRuleTargetSecureTag(dict):
16178
+ def __init__(__self__, *,
16179
+ name: Optional[str] = None,
16180
+ state: Optional[str] = None):
16181
+ """
16182
+ :param str name: Name of the secure tag, created with TagManager's TagValue API.
16183
+ @pattern tagValues/[0-9]+
16184
+ :param str state: (Output)
16185
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
16186
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
16187
+ or its network is deleted.
16188
+
16189
+ - - -
16190
+ """
16191
+ if name is not None:
16192
+ pulumi.set(__self__, "name", name)
16193
+ if state is not None:
16194
+ pulumi.set(__self__, "state", state)
16195
+
16196
+ @property
16197
+ @pulumi.getter
16198
+ def name(self) -> Optional[str]:
16199
+ """
16200
+ Name of the secure tag, created with TagManager's TagValue API.
16201
+ @pattern tagValues/[0-9]+
16202
+ """
16203
+ return pulumi.get(self, "name")
16204
+
16205
+ @property
16206
+ @pulumi.getter
16207
+ def state(self) -> Optional[str]:
16208
+ """
16209
+ (Output)
16210
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
16211
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
16212
+ or its network is deleted.
16213
+
16214
+ - - -
16215
+ """
16216
+ return pulumi.get(self, "state")
16217
+
16218
+
14910
16219
  @pulumi.output_type
14911
16220
  class NodeGroupAutoscalingPolicy(dict):
14912
16221
  @staticmethod
@@ -34573,21 +35882,66 @@ class SecurityScanConfigSchedule(dict):
34573
35882
 
34574
35883
  @pulumi.output_type
34575
35884
  class ServiceAttachmentConnectedEndpoint(dict):
35885
+ @staticmethod
35886
+ def __key_warning(key: str):
35887
+ suggest = None
35888
+ if key == "consumerNetwork":
35889
+ suggest = "consumer_network"
35890
+ elif key == "propagatedConnectionCount":
35891
+ suggest = "propagated_connection_count"
35892
+ elif key == "pscConnectionId":
35893
+ suggest = "psc_connection_id"
35894
+
35895
+ if suggest:
35896
+ pulumi.log.warn(f"Key '{key}' not found in ServiceAttachmentConnectedEndpoint. Access the value via the '{suggest}' property getter instead.")
35897
+
35898
+ def __getitem__(self, key: str) -> Any:
35899
+ ServiceAttachmentConnectedEndpoint.__key_warning(key)
35900
+ return super().__getitem__(key)
35901
+
35902
+ def get(self, key: str, default = None) -> Any:
35903
+ ServiceAttachmentConnectedEndpoint.__key_warning(key)
35904
+ return super().get(key, default)
35905
+
34576
35906
  def __init__(__self__, *,
35907
+ consumer_network: Optional[str] = None,
34577
35908
  endpoint: Optional[str] = None,
35909
+ propagated_connection_count: Optional[int] = None,
35910
+ psc_connection_id: Optional[str] = None,
34578
35911
  status: Optional[str] = None):
34579
35912
  """
35913
+ :param str consumer_network: (Output)
35914
+ The url of the consumer network.
34580
35915
  :param str endpoint: (Output)
34581
35916
  The URL of the consumer forwarding rule.
35917
+ :param int propagated_connection_count: (Output, Beta)
35918
+ The number of consumer Network Connectivity Center spokes that the connected Private Service Connect endpoint has propagated to.
35919
+ :param str psc_connection_id: (Output)
35920
+ The PSC connection id of the connected endpoint.
34582
35921
  :param str status: (Output)
34583
35922
  The status of the connection from the consumer forwarding rule to
34584
35923
  this service attachment.
34585
35924
  """
35925
+ if consumer_network is not None:
35926
+ pulumi.set(__self__, "consumer_network", consumer_network)
34586
35927
  if endpoint is not None:
34587
35928
  pulumi.set(__self__, "endpoint", endpoint)
35929
+ if propagated_connection_count is not None:
35930
+ pulumi.set(__self__, "propagated_connection_count", propagated_connection_count)
35931
+ if psc_connection_id is not None:
35932
+ pulumi.set(__self__, "psc_connection_id", psc_connection_id)
34588
35933
  if status is not None:
34589
35934
  pulumi.set(__self__, "status", status)
34590
35935
 
35936
+ @property
35937
+ @pulumi.getter(name="consumerNetwork")
35938
+ def consumer_network(self) -> Optional[str]:
35939
+ """
35940
+ (Output)
35941
+ The url of the consumer network.
35942
+ """
35943
+ return pulumi.get(self, "consumer_network")
35944
+
34591
35945
  @property
34592
35946
  @pulumi.getter
34593
35947
  def endpoint(self) -> Optional[str]:
@@ -34597,6 +35951,24 @@ class ServiceAttachmentConnectedEndpoint(dict):
34597
35951
  """
34598
35952
  return pulumi.get(self, "endpoint")
34599
35953
 
35954
+ @property
35955
+ @pulumi.getter(name="propagatedConnectionCount")
35956
+ def propagated_connection_count(self) -> Optional[int]:
35957
+ """
35958
+ (Output, Beta)
35959
+ The number of consumer Network Connectivity Center spokes that the connected Private Service Connect endpoint has propagated to.
35960
+ """
35961
+ return pulumi.get(self, "propagated_connection_count")
35962
+
35963
+ @property
35964
+ @pulumi.getter(name="pscConnectionId")
35965
+ def psc_connection_id(self) -> Optional[str]:
35966
+ """
35967
+ (Output)
35968
+ The PSC connection id of the connected endpoint.
35969
+ """
35970
+ return pulumi.get(self, "psc_connection_id")
35971
+
34600
35972
  @property
34601
35973
  @pulumi.getter
34602
35974
  def status(self) -> Optional[str]:
@@ -46116,6 +47488,7 @@ class GetInstanceBootDiskInitializeParamResult(dict):
46116
47488
  provisioned_iops: int,
46117
47489
  provisioned_throughput: int,
46118
47490
  resource_manager_tags: Mapping[str, str],
47491
+ resource_policies: Sequence[str],
46119
47492
  size: int,
46120
47493
  storage_pool: str,
46121
47494
  type: str):
@@ -46126,6 +47499,7 @@ class GetInstanceBootDiskInitializeParamResult(dict):
46126
47499
  :param int provisioned_iops: Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle.
46127
47500
  :param int provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle.
46128
47501
  :param Mapping[str, str] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
47502
+ :param Sequence[str] resource_policies: A list of self_links to resource policies attached to the selected `boot_disk`
46129
47503
  :param int size: The size of the image in gigabytes.
46130
47504
  :param str storage_pool: The URL of the storage pool in which the new disk is created
46131
47505
  :param str type: The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`.
@@ -46136,6 +47510,7 @@ class GetInstanceBootDiskInitializeParamResult(dict):
46136
47510
  pulumi.set(__self__, "provisioned_iops", provisioned_iops)
46137
47511
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
46138
47512
  pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
47513
+ pulumi.set(__self__, "resource_policies", resource_policies)
46139
47514
  pulumi.set(__self__, "size", size)
46140
47515
  pulumi.set(__self__, "storage_pool", storage_pool)
46141
47516
  pulumi.set(__self__, "type", type)
@@ -46188,6 +47563,14 @@ class GetInstanceBootDiskInitializeParamResult(dict):
46188
47563
  """
46189
47564
  return pulumi.get(self, "resource_manager_tags")
46190
47565
 
47566
+ @property
47567
+ @pulumi.getter(name="resourcePolicies")
47568
+ def resource_policies(self) -> Sequence[str]:
47569
+ """
47570
+ A list of self_links to resource policies attached to the selected `boot_disk`
47571
+ """
47572
+ return pulumi.get(self, "resource_policies")
47573
+
46191
47574
  @property
46192
47575
  @pulumi.getter
46193
47576
  def size(self) -> int: