pulumi-gcp 8.1.0a1726293903__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 (128) hide show
  1. pulumi_gcp/__init__.py +62 -0
  2. pulumi_gcp/alloydb/_inputs.py +94 -0
  3. pulumi_gcp/alloydb/cluster.py +94 -1
  4. pulumi_gcp/alloydb/outputs.py +79 -0
  5. pulumi_gcp/assuredworkloads/workload.py +135 -16
  6. pulumi_gcp/backupdisasterrecovery/__init__.py +1 -0
  7. pulumi_gcp/backupdisasterrecovery/backup_vault.py +1203 -0
  8. pulumi_gcp/bigquery/__init__.py +1 -0
  9. pulumi_gcp/bigquery/_inputs.py +33 -0
  10. pulumi_gcp/bigquery/data_transfer_config.py +134 -6
  11. pulumi_gcp/bigquery/get_tables.py +143 -0
  12. pulumi_gcp/bigquery/outputs.py +66 -0
  13. pulumi_gcp/bigqueryanalyticshub/_inputs.py +169 -7
  14. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +96 -3
  15. pulumi_gcp/bigqueryanalyticshub/listing.py +114 -0
  16. pulumi_gcp/bigqueryanalyticshub/outputs.py +138 -5
  17. pulumi_gcp/bigtable/_inputs.py +21 -1
  18. pulumi_gcp/bigtable/outputs.py +13 -1
  19. pulumi_gcp/bigtable/table.py +34 -0
  20. pulumi_gcp/certificateauthority/authority.py +14 -7
  21. pulumi_gcp/certificatemanager/__init__.py +1 -0
  22. pulumi_gcp/certificatemanager/certificate.py +28 -0
  23. pulumi_gcp/certificatemanager/get_certificates.py +150 -0
  24. pulumi_gcp/certificatemanager/outputs.py +322 -0
  25. pulumi_gcp/cloudbuild/_inputs.py +6 -6
  26. pulumi_gcp/cloudbuild/outputs.py +4 -4
  27. pulumi_gcp/cloudrun/_inputs.py +6 -12
  28. pulumi_gcp/cloudrun/outputs.py +8 -16
  29. pulumi_gcp/cloudrunv2/_inputs.py +72 -15
  30. pulumi_gcp/cloudrunv2/outputs.py +82 -16
  31. pulumi_gcp/cloudrunv2/service.py +50 -4
  32. pulumi_gcp/cloudtasks/_inputs.py +630 -0
  33. pulumi_gcp/cloudtasks/outputs.py +479 -0
  34. pulumi_gcp/cloudtasks/queue.py +238 -0
  35. pulumi_gcp/compute/__init__.py +1 -0
  36. pulumi_gcp/compute/_inputs.py +2300 -257
  37. pulumi_gcp/compute/get_instance.py +4 -1
  38. pulumi_gcp/compute/health_check.py +114 -0
  39. pulumi_gcp/compute/instance.py +86 -4
  40. pulumi_gcp/compute/instance_template.py +66 -0
  41. pulumi_gcp/compute/interconnect.py +28 -21
  42. pulumi_gcp/compute/network_firewall_policy_with_rules.py +826 -0
  43. pulumi_gcp/compute/node_template.py +93 -0
  44. pulumi_gcp/compute/outputs.py +1491 -6
  45. pulumi_gcp/compute/region_target_http_proxy.py +159 -0
  46. pulumi_gcp/compute/region_target_https_proxy.py +175 -0
  47. pulumi_gcp/compute/service_attachment.py +75 -0
  48. pulumi_gcp/compute/target_http_proxy.py +49 -28
  49. pulumi_gcp/compute/target_https_proxy.py +77 -28
  50. pulumi_gcp/config/__init__.pyi +4 -0
  51. pulumi_gcp/config/vars.py +8 -0
  52. pulumi_gcp/container/_inputs.py +236 -3
  53. pulumi_gcp/container/attached_cluster.py +61 -8
  54. pulumi_gcp/container/outputs.py +276 -2
  55. pulumi_gcp/databasemigrationservice/_inputs.py +176 -148
  56. pulumi_gcp/databasemigrationservice/connection_profile.py +206 -0
  57. pulumi_gcp/databasemigrationservice/outputs.py +109 -87
  58. pulumi_gcp/dataloss/_inputs.py +353 -1
  59. pulumi_gcp/dataloss/outputs.py +274 -3
  60. pulumi_gcp/dataproc/_inputs.py +27 -27
  61. pulumi_gcp/dataproc/metastore_federation.py +8 -8
  62. pulumi_gcp/dataproc/metastore_service.py +2 -0
  63. pulumi_gcp/dataproc/outputs.py +18 -18
  64. pulumi_gcp/datastream/_inputs.py +69 -1
  65. pulumi_gcp/datastream/outputs.py +44 -2
  66. pulumi_gcp/datastream/stream.py +201 -7
  67. pulumi_gcp/developerconnect/__init__.py +11 -0
  68. pulumi_gcp/developerconnect/_inputs.py +301 -0
  69. pulumi_gcp/developerconnect/connection.py +1034 -0
  70. pulumi_gcp/developerconnect/git_repository_link.py +873 -0
  71. pulumi_gcp/developerconnect/outputs.py +247 -0
  72. pulumi_gcp/discoveryengine/_inputs.py +188 -0
  73. pulumi_gcp/discoveryengine/data_store.py +14 -14
  74. pulumi_gcp/discoveryengine/outputs.py +153 -1
  75. pulumi_gcp/firebase/database_instance.py +7 -7
  76. pulumi_gcp/gkehub/_inputs.py +25 -1
  77. pulumi_gcp/gkehub/feature_membership.py +12 -6
  78. pulumi_gcp/gkehub/outputs.py +17 -1
  79. pulumi_gcp/gkeonprem/_inputs.py +3 -3
  80. pulumi_gcp/gkeonprem/outputs.py +2 -2
  81. pulumi_gcp/iam/_inputs.py +196 -0
  82. pulumi_gcp/iam/get_workload_identity_pool_provider.py +13 -3
  83. pulumi_gcp/iam/outputs.py +295 -0
  84. pulumi_gcp/iam/workload_identity_pool_provider.py +164 -3
  85. pulumi_gcp/kms/__init__.py +2 -0
  86. pulumi_gcp/kms/autokey_config.py +10 -2
  87. pulumi_gcp/kms/get_crypto_key_latest_version.py +222 -0
  88. pulumi_gcp/kms/get_crypto_key_versions.py +175 -0
  89. pulumi_gcp/kms/outputs.py +164 -0
  90. pulumi_gcp/memorystore/__init__.py +10 -0
  91. pulumi_gcp/memorystore/_inputs.py +731 -0
  92. pulumi_gcp/memorystore/instance.py +1663 -0
  93. pulumi_gcp/memorystore/outputs.py +598 -0
  94. pulumi_gcp/netapp/active_directory.py +6 -6
  95. pulumi_gcp/netapp/backup.py +6 -6
  96. pulumi_gcp/netapp/backup_policy.py +6 -6
  97. pulumi_gcp/netapp/backup_vault.py +6 -6
  98. pulumi_gcp/netapp/storage_pool.py +4 -4
  99. pulumi_gcp/netapp/volume.py +108 -0
  100. pulumi_gcp/networkconnectivity/_inputs.py +21 -1
  101. pulumi_gcp/networkconnectivity/outputs.py +15 -1
  102. pulumi_gcp/networkconnectivity/spoke.py +8 -0
  103. pulumi_gcp/networksecurity/client_tls_policy.py +24 -22
  104. pulumi_gcp/networksecurity/server_tls_policy.py +20 -32
  105. pulumi_gcp/organizations/folder.py +52 -33
  106. pulumi_gcp/organizations/get_project.py +13 -3
  107. pulumi_gcp/organizations/project.py +88 -3
  108. pulumi_gcp/parallelstore/instance.py +121 -121
  109. pulumi_gcp/projects/iam_member_remove.py +26 -0
  110. pulumi_gcp/projects/usage_export_bucket.py +38 -0
  111. pulumi_gcp/provider.py +40 -0
  112. pulumi_gcp/pubsub/_inputs.py +40 -0
  113. pulumi_gcp/pubsub/outputs.py +51 -1
  114. pulumi_gcp/pubsub/subscription.py +6 -0
  115. pulumi_gcp/pulumi-plugin.json +1 -1
  116. pulumi_gcp/redis/_inputs.py +419 -0
  117. pulumi_gcp/redis/cluster.py +123 -0
  118. pulumi_gcp/redis/outputs.py +315 -0
  119. pulumi_gcp/securitycenter/__init__.py +2 -0
  120. pulumi_gcp/securitycenter/v2_folder_scc_big_query_export.py +857 -0
  121. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +4 -4
  122. pulumi_gcp/securitycenter/v2_project_mute_config.py +2 -2
  123. pulumi_gcp/securitycenter/v2_project_scc_big_query_export.py +796 -0
  124. pulumi_gcp/vpcaccess/connector.py +21 -28
  125. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/METADATA +1 -1
  126. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/RECORD +128 -111
  127. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/WHEEL +1 -1
  128. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/top_level.txt +0 -0
@@ -208,10 +208,21 @@ __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',
214
224
  'NodeGroupShareSettingsProjectMap',
225
+ 'NodeTemplateAccelerator',
215
226
  'NodeTemplateNodeTypeFlexibility',
216
227
  'NodeTemplateServerBinding',
217
228
  'OrganizationSecurityPolicyRuleMatch',
@@ -4290,7 +4301,7 @@ class FirewallAllow(dict):
4290
4301
  is only applicable for UDP or TCP protocol. Each entry must be
4291
4302
  either an integer or a range. If not specified, this rule
4292
4303
  applies to connections through any port.
4293
- Example inputs include: ["22"], ["80","443"], and
4304
+ Example inputs include: [22], [80, 443], and
4294
4305
  ["12345-12349"].
4295
4306
  """
4296
4307
  pulumi.set(__self__, "protocol", protocol)
@@ -4316,7 +4327,7 @@ class FirewallAllow(dict):
4316
4327
  is only applicable for UDP or TCP protocol. Each entry must be
4317
4328
  either an integer or a range. If not specified, this rule
4318
4329
  applies to connections through any port.
4319
- Example inputs include: ["22"], ["80","443"], and
4330
+ Example inputs include: [22], [80, 443], and
4320
4331
  ["12345-12349"].
4321
4332
  """
4322
4333
  return pulumi.get(self, "ports")
@@ -4336,7 +4347,7 @@ class FirewallDeny(dict):
4336
4347
  is only applicable for UDP or TCP protocol. Each entry must be
4337
4348
  either an integer or a range. If not specified, this rule
4338
4349
  applies to connections through any port.
4339
- Example inputs include: ["22"], ["80","443"], and
4350
+ Example inputs include: [22], [80, 443], and
4340
4351
  ["12345-12349"].
4341
4352
  """
4342
4353
  pulumi.set(__self__, "protocol", protocol)
@@ -4362,7 +4373,7 @@ class FirewallDeny(dict):
4362
4373
  is only applicable for UDP or TCP protocol. Each entry must be
4363
4374
  either an integer or a range. If not specified, this rule
4364
4375
  applies to connections through any port.
4365
- Example inputs include: ["22"], ["80","443"], and
4376
+ Example inputs include: [22], [80, 443], and
4366
4377
  ["12345-12349"].
4367
4378
  """
4368
4379
  return pulumi.get(self, "ports")
@@ -6218,6 +6229,7 @@ class InstanceBootDisk(dict):
6218
6229
  disk_encryption_key_raw: Optional[str] = None,
6219
6230
  disk_encryption_key_sha256: Optional[str] = None,
6220
6231
  initialize_params: Optional['outputs.InstanceBootDiskInitializeParams'] = None,
6232
+ interface: Optional[str] = None,
6221
6233
  kms_key_self_link: Optional[str] = None,
6222
6234
  mode: Optional[str] = None,
6223
6235
  source: Optional[str] = None):
@@ -6237,6 +6249,7 @@ class InstanceBootDisk(dict):
6237
6249
  :param 'InstanceBootDiskInitializeParamsArgs' initialize_params: Parameters for a new disk that will be created
6238
6250
  alongside the new instance. Either `initialize_params` or `source` must be set.
6239
6251
  Structure is documented below.
6252
+ :param str interface: The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
6240
6253
  :param str kms_key_self_link: The self_link of the encryption key that is
6241
6254
  stored in Google Cloud KMS to encrypt this disk. Only one of `kms_key_self_link`
6242
6255
  and `disk_encryption_key_raw` may be set.
@@ -6256,6 +6269,8 @@ class InstanceBootDisk(dict):
6256
6269
  pulumi.set(__self__, "disk_encryption_key_sha256", disk_encryption_key_sha256)
6257
6270
  if initialize_params is not None:
6258
6271
  pulumi.set(__self__, "initialize_params", initialize_params)
6272
+ if interface is not None:
6273
+ pulumi.set(__self__, "interface", interface)
6259
6274
  if kms_key_self_link is not None:
6260
6275
  pulumi.set(__self__, "kms_key_self_link", kms_key_self_link)
6261
6276
  if mode is not None:
@@ -6313,6 +6328,14 @@ class InstanceBootDisk(dict):
6313
6328
  """
6314
6329
  return pulumi.get(self, "initialize_params")
6315
6330
 
6331
+ @property
6332
+ @pulumi.getter
6333
+ def interface(self) -> Optional[str]:
6334
+ """
6335
+ The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
6336
+ """
6337
+ return pulumi.get(self, "interface")
6338
+
6316
6339
  @property
6317
6340
  @pulumi.getter(name="kmsKeySelfLink")
6318
6341
  def kms_key_self_link(self) -> Optional[str]:
@@ -6356,6 +6379,8 @@ class InstanceBootDiskInitializeParams(dict):
6356
6379
  suggest = "provisioned_throughput"
6357
6380
  elif key == "resourceManagerTags":
6358
6381
  suggest = "resource_manager_tags"
6382
+ elif key == "resourcePolicies":
6383
+ suggest = "resource_policies"
6359
6384
  elif key == "storagePool":
6360
6385
  suggest = "storage_pool"
6361
6386
 
@@ -6377,6 +6402,7 @@ class InstanceBootDiskInitializeParams(dict):
6377
6402
  provisioned_iops: Optional[int] = None,
6378
6403
  provisioned_throughput: Optional[int] = None,
6379
6404
  resource_manager_tags: Optional[Mapping[str, str]] = None,
6405
+ resource_policies: Optional[str] = None,
6380
6406
  size: Optional[int] = None,
6381
6407
  storage_pool: Optional[str] = None,
6382
6408
  type: Optional[str] = None):
@@ -6409,6 +6435,7 @@ class InstanceBootDiskInitializeParams(dict):
6409
6435
  for an update of throughput every 4 hours. To update your hyperdisk more
6410
6436
  frequently, you'll need to manually delete and recreate it.
6411
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.
6412
6439
  :param int size: The size of the image in gigabytes. If not specified, it
6413
6440
  will inherit the size of its base image.
6414
6441
  :param str storage_pool: The URL of the storage pool in which the new disk is created.
@@ -6429,6 +6456,8 @@ class InstanceBootDiskInitializeParams(dict):
6429
6456
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
6430
6457
  if resource_manager_tags is not None:
6431
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)
6432
6461
  if size is not None:
6433
6462
  pulumi.set(__self__, "size", size)
6434
6463
  if storage_pool is not None:
@@ -6506,6 +6535,14 @@ class InstanceBootDiskInitializeParams(dict):
6506
6535
  """
6507
6536
  return pulumi.get(self, "resource_manager_tags")
6508
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
+
6509
6546
  @property
6510
6547
  @pulumi.getter
6511
6548
  def size(self) -> Optional[int]:
@@ -6785,6 +6822,7 @@ class InstanceFromMachineImageBootDisk(dict):
6785
6822
  disk_encryption_key_raw: Optional[str] = None,
6786
6823
  disk_encryption_key_sha256: Optional[str] = None,
6787
6824
  initialize_params: Optional['outputs.InstanceFromMachineImageBootDiskInitializeParams'] = None,
6825
+ interface: Optional[str] = None,
6788
6826
  kms_key_self_link: Optional[str] = None,
6789
6827
  mode: Optional[str] = None,
6790
6828
  source: Optional[str] = None):
@@ -6794,6 +6832,7 @@ class InstanceFromMachineImageBootDisk(dict):
6794
6832
  :param str disk_encryption_key_raw: A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
6795
6833
  :param str disk_encryption_key_sha256: The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
6796
6834
  :param 'InstanceFromMachineImageBootDiskInitializeParamsArgs' initialize_params: Parameters with which a disk was created alongside the instance.
6835
+ :param str interface: The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
6797
6836
  :param str kms_key_self_link: The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
6798
6837
  :param str mode: Read/write mode for the disk. One of "READ_ONLY" or "READ_WRITE".
6799
6838
  :param str source: The name or self_link of the disk attached to this instance.
@@ -6808,6 +6847,8 @@ class InstanceFromMachineImageBootDisk(dict):
6808
6847
  pulumi.set(__self__, "disk_encryption_key_sha256", disk_encryption_key_sha256)
6809
6848
  if initialize_params is not None:
6810
6849
  pulumi.set(__self__, "initialize_params", initialize_params)
6850
+ if interface is not None:
6851
+ pulumi.set(__self__, "interface", interface)
6811
6852
  if kms_key_self_link is not None:
6812
6853
  pulumi.set(__self__, "kms_key_self_link", kms_key_self_link)
6813
6854
  if mode is not None:
@@ -6855,6 +6896,14 @@ class InstanceFromMachineImageBootDisk(dict):
6855
6896
  """
6856
6897
  return pulumi.get(self, "initialize_params")
6857
6898
 
6899
+ @property
6900
+ @pulumi.getter
6901
+ def interface(self) -> Optional[str]:
6902
+ """
6903
+ The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
6904
+ """
6905
+ return pulumi.get(self, "interface")
6906
+
6858
6907
  @property
6859
6908
  @pulumi.getter(name="kmsKeySelfLink")
6860
6909
  def kms_key_self_link(self) -> Optional[str]:
@@ -6893,6 +6942,8 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6893
6942
  suggest = "provisioned_throughput"
6894
6943
  elif key == "resourceManagerTags":
6895
6944
  suggest = "resource_manager_tags"
6945
+ elif key == "resourcePolicies":
6946
+ suggest = "resource_policies"
6896
6947
  elif key == "storagePool":
6897
6948
  suggest = "storage_pool"
6898
6949
 
@@ -6914,6 +6965,7 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6914
6965
  provisioned_iops: Optional[int] = None,
6915
6966
  provisioned_throughput: Optional[int] = None,
6916
6967
  resource_manager_tags: Optional[Mapping[str, str]] = None,
6968
+ resource_policies: Optional[str] = None,
6917
6969
  size: Optional[int] = None,
6918
6970
  storage_pool: Optional[str] = None,
6919
6971
  type: Optional[str] = None):
@@ -6924,6 +6976,7 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6924
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.
6925
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.
6926
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.
6927
6980
  :param int size: The size of the image in gigabytes.
6928
6981
  :param str storage_pool: The URL of the storage pool in which the new disk is created
6929
6982
  :param str type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced.
@@ -6940,6 +6993,8 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6940
6993
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
6941
6994
  if resource_manager_tags is not None:
6942
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)
6943
6998
  if size is not None:
6944
6999
  pulumi.set(__self__, "size", size)
6945
7000
  if storage_pool is not None:
@@ -6995,6 +7050,14 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6995
7050
  """
6996
7051
  return pulumi.get(self, "resource_manager_tags")
6997
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
+
6998
7061
  @property
6999
7062
  @pulumi.getter
7000
7063
  def size(self) -> Optional[int]:
@@ -8393,6 +8456,7 @@ class InstanceFromTemplateBootDisk(dict):
8393
8456
  disk_encryption_key_raw: Optional[str] = None,
8394
8457
  disk_encryption_key_sha256: Optional[str] = None,
8395
8458
  initialize_params: Optional['outputs.InstanceFromTemplateBootDiskInitializeParams'] = None,
8459
+ interface: Optional[str] = None,
8396
8460
  kms_key_self_link: Optional[str] = None,
8397
8461
  mode: Optional[str] = None,
8398
8462
  source: Optional[str] = None):
@@ -8402,6 +8466,7 @@ class InstanceFromTemplateBootDisk(dict):
8402
8466
  :param str disk_encryption_key_raw: A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
8403
8467
  :param str disk_encryption_key_sha256: The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
8404
8468
  :param 'InstanceFromTemplateBootDiskInitializeParamsArgs' initialize_params: Parameters with which a disk was created alongside the instance.
8469
+ :param str interface: The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
8405
8470
  :param str kms_key_self_link: The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
8406
8471
  :param str mode: Read/write mode for the disk. One of "READ_ONLY" or "READ_WRITE".
8407
8472
  :param str source: The name or self_link of the disk attached to this instance.
@@ -8416,6 +8481,8 @@ class InstanceFromTemplateBootDisk(dict):
8416
8481
  pulumi.set(__self__, "disk_encryption_key_sha256", disk_encryption_key_sha256)
8417
8482
  if initialize_params is not None:
8418
8483
  pulumi.set(__self__, "initialize_params", initialize_params)
8484
+ if interface is not None:
8485
+ pulumi.set(__self__, "interface", interface)
8419
8486
  if kms_key_self_link is not None:
8420
8487
  pulumi.set(__self__, "kms_key_self_link", kms_key_self_link)
8421
8488
  if mode is not None:
@@ -8463,6 +8530,14 @@ class InstanceFromTemplateBootDisk(dict):
8463
8530
  """
8464
8531
  return pulumi.get(self, "initialize_params")
8465
8532
 
8533
+ @property
8534
+ @pulumi.getter
8535
+ def interface(self) -> Optional[str]:
8536
+ """
8537
+ The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
8538
+ """
8539
+ return pulumi.get(self, "interface")
8540
+
8466
8541
  @property
8467
8542
  @pulumi.getter(name="kmsKeySelfLink")
8468
8543
  def kms_key_self_link(self) -> Optional[str]:
@@ -8501,6 +8576,8 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8501
8576
  suggest = "provisioned_throughput"
8502
8577
  elif key == "resourceManagerTags":
8503
8578
  suggest = "resource_manager_tags"
8579
+ elif key == "resourcePolicies":
8580
+ suggest = "resource_policies"
8504
8581
  elif key == "storagePool":
8505
8582
  suggest = "storage_pool"
8506
8583
 
@@ -8522,6 +8599,7 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8522
8599
  provisioned_iops: Optional[int] = None,
8523
8600
  provisioned_throughput: Optional[int] = None,
8524
8601
  resource_manager_tags: Optional[Mapping[str, str]] = None,
8602
+ resource_policies: Optional[str] = None,
8525
8603
  size: Optional[int] = None,
8526
8604
  storage_pool: Optional[str] = None,
8527
8605
  type: Optional[str] = None):
@@ -8532,6 +8610,7 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8532
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.
8533
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.
8534
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.
8535
8614
  :param int size: The size of the image in gigabytes.
8536
8615
  :param str storage_pool: The URL of the storage pool in which the new disk is created
8537
8616
  :param str type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced.
@@ -8548,6 +8627,8 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8548
8627
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
8549
8628
  if resource_manager_tags is not None:
8550
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)
8551
8632
  if size is not None:
8552
8633
  pulumi.set(__self__, "size", size)
8553
8634
  if storage_pool is not None:
@@ -8603,6 +8684,14 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8603
8684
  """
8604
8685
  return pulumi.get(self, "resource_manager_tags")
8605
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
+
8606
8695
  @property
8607
8696
  @pulumi.getter
8608
8697
  def size(self) -> Optional[int]:
@@ -10950,7 +11039,7 @@ class InstanceNetworkInterface(dict):
10950
11039
  network is in auto subnet mode, specifying the subnetwork is optional. If the network is
10951
11040
  in custom subnet mode, specifying the subnetwork is required.
10952
11041
  :param str subnetwork_project: The project in which the subnetwork belongs.
10953
- If the `subnetwork` is a self_link, this field is ignored in favor of the project
11042
+ If the `subnetwork` is a self_link, this field is set to the project
10954
11043
  defined in the subnetwork self_link. If the `subnetwork` is a name and this
10955
11044
  field is not provided, the provider project is used.
10956
11045
  """
@@ -11127,7 +11216,7 @@ class InstanceNetworkInterface(dict):
11127
11216
  def subnetwork_project(self) -> Optional[str]:
11128
11217
  """
11129
11218
  The project in which the subnetwork belongs.
11130
- If the `subnetwork` is a self_link, this field is ignored in favor of the project
11219
+ If the `subnetwork` is a self_link, this field is set to the project
11131
11220
  defined in the subnetwork self_link. If the `subnetwork` is a name and this
11132
11221
  field is not provided, the provider project is used.
11133
11222
  """
@@ -14870,6 +14959,1263 @@ class NetworkFirewallPolicyRuleTargetSecureTag(dict):
14870
14959
  return pulumi.get(self, "state")
14871
14960
 
14872
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
+
14873
16219
  @pulumi.output_type
14874
16220
  class NodeGroupAutoscalingPolicy(dict):
14875
16221
  @staticmethod
@@ -15082,6 +16428,60 @@ class NodeGroupShareSettingsProjectMap(dict):
15082
16428
  return pulumi.get(self, "project_id")
15083
16429
 
15084
16430
 
16431
+ @pulumi.output_type
16432
+ class NodeTemplateAccelerator(dict):
16433
+ @staticmethod
16434
+ def __key_warning(key: str):
16435
+ suggest = None
16436
+ if key == "acceleratorCount":
16437
+ suggest = "accelerator_count"
16438
+ elif key == "acceleratorType":
16439
+ suggest = "accelerator_type"
16440
+
16441
+ if suggest:
16442
+ pulumi.log.warn(f"Key '{key}' not found in NodeTemplateAccelerator. Access the value via the '{suggest}' property getter instead.")
16443
+
16444
+ def __getitem__(self, key: str) -> Any:
16445
+ NodeTemplateAccelerator.__key_warning(key)
16446
+ return super().__getitem__(key)
16447
+
16448
+ def get(self, key: str, default = None) -> Any:
16449
+ NodeTemplateAccelerator.__key_warning(key)
16450
+ return super().get(key, default)
16451
+
16452
+ def __init__(__self__, *,
16453
+ accelerator_count: Optional[int] = None,
16454
+ accelerator_type: Optional[str] = None):
16455
+ """
16456
+ :param int accelerator_count: The number of the guest accelerator cards exposed to this
16457
+ node template.
16458
+ :param str accelerator_type: Full or partial URL of the accelerator type resource to expose
16459
+ to this node template.
16460
+ """
16461
+ if accelerator_count is not None:
16462
+ pulumi.set(__self__, "accelerator_count", accelerator_count)
16463
+ if accelerator_type is not None:
16464
+ pulumi.set(__self__, "accelerator_type", accelerator_type)
16465
+
16466
+ @property
16467
+ @pulumi.getter(name="acceleratorCount")
16468
+ def accelerator_count(self) -> Optional[int]:
16469
+ """
16470
+ The number of the guest accelerator cards exposed to this
16471
+ node template.
16472
+ """
16473
+ return pulumi.get(self, "accelerator_count")
16474
+
16475
+ @property
16476
+ @pulumi.getter(name="acceleratorType")
16477
+ def accelerator_type(self) -> Optional[str]:
16478
+ """
16479
+ Full or partial URL of the accelerator type resource to expose
16480
+ to this node template.
16481
+ """
16482
+ return pulumi.get(self, "accelerator_type")
16483
+
16484
+
15085
16485
  @pulumi.output_type
15086
16486
  class NodeTemplateNodeTypeFlexibility(dict):
15087
16487
  @staticmethod
@@ -34482,21 +35882,66 @@ class SecurityScanConfigSchedule(dict):
34482
35882
 
34483
35883
  @pulumi.output_type
34484
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
+
34485
35906
  def __init__(__self__, *,
35907
+ consumer_network: Optional[str] = None,
34486
35908
  endpoint: Optional[str] = None,
35909
+ propagated_connection_count: Optional[int] = None,
35910
+ psc_connection_id: Optional[str] = None,
34487
35911
  status: Optional[str] = None):
34488
35912
  """
35913
+ :param str consumer_network: (Output)
35914
+ The url of the consumer network.
34489
35915
  :param str endpoint: (Output)
34490
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.
34491
35921
  :param str status: (Output)
34492
35922
  The status of the connection from the consumer forwarding rule to
34493
35923
  this service attachment.
34494
35924
  """
35925
+ if consumer_network is not None:
35926
+ pulumi.set(__self__, "consumer_network", consumer_network)
34495
35927
  if endpoint is not None:
34496
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)
34497
35933
  if status is not None:
34498
35934
  pulumi.set(__self__, "status", status)
34499
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
+
34500
35945
  @property
34501
35946
  @pulumi.getter
34502
35947
  def endpoint(self) -> Optional[str]:
@@ -34506,6 +35951,24 @@ class ServiceAttachmentConnectedEndpoint(dict):
34506
35951
  """
34507
35952
  return pulumi.get(self, "endpoint")
34508
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
+
34509
35972
  @property
34510
35973
  @pulumi.getter
34511
35974
  def status(self) -> Optional[str]:
@@ -45910,6 +47373,7 @@ class GetInstanceBootDiskResult(dict):
45910
47373
  disk_encryption_key_raw: str,
45911
47374
  disk_encryption_key_sha256: str,
45912
47375
  initialize_params: Sequence['outputs.GetInstanceBootDiskInitializeParamResult'],
47376
+ interface: str,
45913
47377
  kms_key_self_link: str,
45914
47378
  mode: str,
45915
47379
  source: str):
@@ -45923,6 +47387,7 @@ class GetInstanceBootDiskResult(dict):
45923
47387
  (<https://cloud.google.com/compute/docs/disks/customer-supplied-encryption>) that protects this resource.
45924
47388
  :param Sequence['GetInstanceBootDiskInitializeParamArgs'] initialize_params: Parameters with which a disk was created alongside the instance.
45925
47389
  Structure is documented below.
47390
+ :param str interface: The disk interface used for attaching this disk. One of `SCSI` or `NVME`.
45926
47391
  :param str kms_key_self_link: The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
45927
47392
  :param str mode: Read/write mode for the disk. One of `"READ_ONLY"` or `"READ_WRITE"`.
45928
47393
  :param str source: The name or self_link of the disk attached to this instance.
@@ -45932,6 +47397,7 @@ class GetInstanceBootDiskResult(dict):
45932
47397
  pulumi.set(__self__, "disk_encryption_key_raw", disk_encryption_key_raw)
45933
47398
  pulumi.set(__self__, "disk_encryption_key_sha256", disk_encryption_key_sha256)
45934
47399
  pulumi.set(__self__, "initialize_params", initialize_params)
47400
+ pulumi.set(__self__, "interface", interface)
45935
47401
  pulumi.set(__self__, "kms_key_self_link", kms_key_self_link)
45936
47402
  pulumi.set(__self__, "mode", mode)
45937
47403
  pulumi.set(__self__, "source", source)
@@ -45980,6 +47446,14 @@ class GetInstanceBootDiskResult(dict):
45980
47446
  """
45981
47447
  return pulumi.get(self, "initialize_params")
45982
47448
 
47449
+ @property
47450
+ @pulumi.getter
47451
+ def interface(self) -> str:
47452
+ """
47453
+ The disk interface used for attaching this disk. One of `SCSI` or `NVME`.
47454
+ """
47455
+ return pulumi.get(self, "interface")
47456
+
45983
47457
  @property
45984
47458
  @pulumi.getter(name="kmsKeySelfLink")
45985
47459
  def kms_key_self_link(self) -> str:
@@ -46014,6 +47488,7 @@ class GetInstanceBootDiskInitializeParamResult(dict):
46014
47488
  provisioned_iops: int,
46015
47489
  provisioned_throughput: int,
46016
47490
  resource_manager_tags: Mapping[str, str],
47491
+ resource_policies: Sequence[str],
46017
47492
  size: int,
46018
47493
  storage_pool: str,
46019
47494
  type: str):
@@ -46024,6 +47499,7 @@ class GetInstanceBootDiskInitializeParamResult(dict):
46024
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.
46025
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.
46026
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`
46027
47503
  :param int size: The size of the image in gigabytes.
46028
47504
  :param str storage_pool: The URL of the storage pool in which the new disk is created
46029
47505
  :param str type: The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`.
@@ -46034,6 +47510,7 @@ class GetInstanceBootDiskInitializeParamResult(dict):
46034
47510
  pulumi.set(__self__, "provisioned_iops", provisioned_iops)
46035
47511
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
46036
47512
  pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
47513
+ pulumi.set(__self__, "resource_policies", resource_policies)
46037
47514
  pulumi.set(__self__, "size", size)
46038
47515
  pulumi.set(__self__, "storage_pool", storage_pool)
46039
47516
  pulumi.set(__self__, "type", type)
@@ -46086,6 +47563,14 @@ class GetInstanceBootDiskInitializeParamResult(dict):
46086
47563
  """
46087
47564
  return pulumi.get(self, "resource_manager_tags")
46088
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
+
46089
47574
  @property
46090
47575
  @pulumi.getter
46091
47576
  def size(self) -> int: