pulumi-gcp 8.40.0a1754721948__py3-none-any.whl → 8.40.0a1754951145__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 (157) hide show
  1. pulumi_gcp/__init__.py +128 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +24 -4
  3. pulumi_gcp/accesscontextmanager/outputs.py +15 -3
  4. pulumi_gcp/apigee/__init__.py +2 -0
  5. pulumi_gcp/apigee/_inputs.py +1435 -0
  6. pulumi_gcp/apigee/api_product.py +1698 -0
  7. pulumi_gcp/apigee/outputs.py +1081 -0
  8. pulumi_gcp/apigee/security_action.py +1010 -0
  9. pulumi_gcp/artifactregistry/__init__.py +1 -0
  10. pulumi_gcp/artifactregistry/get_docker_images.py +164 -0
  11. pulumi_gcp/artifactregistry/outputs.py +109 -2
  12. pulumi_gcp/artifactregistry/repository.py +6 -6
  13. pulumi_gcp/backupdisasterrecovery/backup_vault.py +56 -0
  14. pulumi_gcp/backupdisasterrecovery/get_backup_vault.py +12 -1
  15. pulumi_gcp/bigquery/_inputs.py +6 -0
  16. pulumi_gcp/bigquery/get_table.py +23 -1
  17. pulumi_gcp/bigquery/outputs.py +4 -0
  18. pulumi_gcp/bigquery/table.py +62 -0
  19. pulumi_gcp/bigqueryanalyticshub/_inputs.py +180 -0
  20. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +80 -0
  21. pulumi_gcp/bigqueryanalyticshub/listing.py +322 -2
  22. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +32 -0
  23. pulumi_gcp/bigqueryanalyticshub/outputs.py +159 -0
  24. pulumi_gcp/bigtable/__init__.py +1 -0
  25. pulumi_gcp/bigtable/_inputs.py +33 -0
  26. pulumi_gcp/bigtable/outputs.py +36 -0
  27. pulumi_gcp/bigtable/schema_bundle.py +568 -0
  28. pulumi_gcp/cloudfunctions/_inputs.py +48 -0
  29. pulumi_gcp/cloudfunctions/function.py +94 -0
  30. pulumi_gcp/cloudfunctions/get_function.py +23 -1
  31. pulumi_gcp/cloudfunctions/outputs.py +70 -0
  32. pulumi_gcp/cloudrunv2/_inputs.py +20 -0
  33. pulumi_gcp/cloudrunv2/job.py +2 -0
  34. pulumi_gcp/cloudrunv2/outputs.py +25 -0
  35. pulumi_gcp/cloudrunv2/worker_pool.py +2 -0
  36. pulumi_gcp/compute/__init__.py +1 -0
  37. pulumi_gcp/compute/_inputs.py +713 -22
  38. pulumi_gcp/compute/firewall_policy_with_rules.py +66 -0
  39. pulumi_gcp/compute/forwarding_rule.py +0 -21
  40. pulumi_gcp/compute/get_router.py +12 -1
  41. pulumi_gcp/compute/outputs.py +562 -22
  42. pulumi_gcp/compute/preview_feature.py +396 -0
  43. pulumi_gcp/compute/region_url_map.py +392 -0
  44. pulumi_gcp/compute/reservation.py +4 -4
  45. pulumi_gcp/compute/router.py +54 -0
  46. pulumi_gcp/compute/storage_pool.py +154 -0
  47. pulumi_gcp/compute/subnetwork.py +54 -0
  48. pulumi_gcp/config/__init__.pyi +2 -0
  49. pulumi_gcp/config/vars.py +4 -0
  50. pulumi_gcp/container/_inputs.py +278 -8
  51. pulumi_gcp/container/cluster.py +61 -21
  52. pulumi_gcp/container/get_cluster.py +12 -1
  53. pulumi_gcp/container/outputs.py +352 -8
  54. pulumi_gcp/dataproc/_inputs.py +249 -14
  55. pulumi_gcp/dataproc/batch.py +6 -0
  56. pulumi_gcp/dataproc/cluster.py +2 -0
  57. pulumi_gcp/dataproc/outputs.py +215 -12
  58. pulumi_gcp/dataproc/session_template.py +14 -2
  59. pulumi_gcp/developerconnect/__init__.py +1 -0
  60. pulumi_gcp/developerconnect/_inputs.py +583 -0
  61. pulumi_gcp/developerconnect/insights_config.py +895 -0
  62. pulumi_gcp/developerconnect/outputs.py +442 -0
  63. pulumi_gcp/diagflow/__init__.py +1 -0
  64. pulumi_gcp/diagflow/_inputs.py +1165 -58
  65. pulumi_gcp/diagflow/cx_generator.py +636 -0
  66. pulumi_gcp/diagflow/cx_tool.py +2 -2
  67. pulumi_gcp/diagflow/cx_webhook.py +380 -36
  68. pulumi_gcp/diagflow/outputs.py +848 -25
  69. pulumi_gcp/discoveryengine/__init__.py +2 -0
  70. pulumi_gcp/discoveryengine/_inputs.py +465 -0
  71. pulumi_gcp/discoveryengine/cmek_config.py +707 -0
  72. pulumi_gcp/discoveryengine/outputs.py +412 -0
  73. pulumi_gcp/discoveryengine/recommendation_engine.py +813 -0
  74. pulumi_gcp/firestore/field.py +6 -6
  75. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +107 -9
  76. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +2 -2
  77. pulumi_gcp/gkehub/membership_binding.py +6 -6
  78. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  79. pulumi_gcp/gkehub/namespace.py +4 -4
  80. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  81. pulumi_gcp/iam/__init__.py +4 -0
  82. pulumi_gcp/iam/_inputs.py +98 -0
  83. pulumi_gcp/iam/get_workforce_pool_iam_policy.py +161 -0
  84. pulumi_gcp/iam/outputs.py +56 -0
  85. pulumi_gcp/iam/workforce_pool_iam_binding.py +761 -0
  86. pulumi_gcp/iam/workforce_pool_iam_member.py +761 -0
  87. pulumi_gcp/iam/workforce_pool_iam_policy.py +600 -0
  88. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  89. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  90. pulumi_gcp/looker/instance.py +28 -7
  91. pulumi_gcp/managedkafka/_inputs.py +127 -0
  92. pulumi_gcp/managedkafka/cluster.py +131 -1
  93. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  94. pulumi_gcp/managedkafka/connector.py +4 -4
  95. pulumi_gcp/managedkafka/outputs.py +128 -0
  96. pulumi_gcp/memorystore/instance.py +8 -12
  97. pulumi_gcp/modelarmor/__init__.py +1 -0
  98. pulumi_gcp/modelarmor/_inputs.py +683 -0
  99. pulumi_gcp/modelarmor/floorsetting.py +736 -0
  100. pulumi_gcp/modelarmor/outputs.py +618 -0
  101. pulumi_gcp/networkconnectivity/_inputs.py +60 -0
  102. pulumi_gcp/networkconnectivity/internal_range.py +136 -0
  103. pulumi_gcp/networkconnectivity/outputs.py +55 -0
  104. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  105. pulumi_gcp/oracledatabase/__init__.py +2 -0
  106. pulumi_gcp/oracledatabase/autonomous_database.py +262 -38
  107. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +314 -50
  108. pulumi_gcp/oracledatabase/get_autonomous_database.py +23 -1
  109. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +34 -1
  110. pulumi_gcp/oracledatabase/odb_network.py +721 -0
  111. pulumi_gcp/oracledatabase/odb_subnet.py +803 -0
  112. pulumi_gcp/oracledatabase/outputs.py +83 -0
  113. pulumi_gcp/orgpolicy/policy.py +2 -2
  114. pulumi_gcp/parametermanager/parameter_version.py +62 -0
  115. pulumi_gcp/parametermanager/regional_parameter_version.py +64 -0
  116. pulumi_gcp/provider.py +20 -0
  117. pulumi_gcp/pubsub/subscription.py +46 -6
  118. pulumi_gcp/pubsub/topic.py +36 -0
  119. pulumi_gcp/pulumi-plugin.json +1 -1
  120. pulumi_gcp/redis/cluster.py +70 -0
  121. pulumi_gcp/redis/get_cluster.py +12 -1
  122. pulumi_gcp/redis/instance.py +8 -12
  123. pulumi_gcp/secretmanager/get_regional_secret.py +12 -1
  124. pulumi_gcp/secretmanager/get_secret.py +12 -1
  125. pulumi_gcp/secretmanager/outputs.py +30 -0
  126. pulumi_gcp/secretmanager/regional_secret.py +61 -0
  127. pulumi_gcp/secretmanager/secret.py +61 -0
  128. pulumi_gcp/securesourcemanager/branch_rule.py +16 -8
  129. pulumi_gcp/securesourcemanager/instance.py +112 -4
  130. pulumi_gcp/securesourcemanager/repository.py +112 -8
  131. pulumi_gcp/serviceaccount/get_account_key.py +1 -0
  132. pulumi_gcp/sql/_inputs.py +6 -6
  133. pulumi_gcp/sql/database.py +0 -12
  134. pulumi_gcp/sql/outputs.py +4 -4
  135. pulumi_gcp/storage/__init__.py +2 -0
  136. pulumi_gcp/storage/_inputs.py +451 -0
  137. pulumi_gcp/storage/bucket.py +7 -7
  138. pulumi_gcp/storage/bucket_object.py +34 -0
  139. pulumi_gcp/storage/get_bucket_object.py +12 -1
  140. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  141. pulumi_gcp/storage/get_insights_dataset_config.py +363 -0
  142. pulumi_gcp/storage/insights_dataset_config.py +1280 -0
  143. pulumi_gcp/storage/outputs.py +619 -0
  144. pulumi_gcp/vertex/__init__.py +1 -0
  145. pulumi_gcp/vertex/_inputs.py +3646 -3
  146. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  147. pulumi_gcp/vertex/ai_endpoint_with_model_garden_deployment.py +940 -0
  148. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  149. pulumi_gcp/vertex/outputs.py +2609 -2
  150. pulumi_gcp/vmwareengine/network_peering.py +7 -7
  151. pulumi_gcp/workbench/_inputs.py +118 -0
  152. pulumi_gcp/workbench/instance.py +171 -2
  153. pulumi_gcp/workbench/outputs.py +91 -0
  154. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.40.0a1754951145.dist-info}/METADATA +1 -1
  155. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.40.0a1754951145.dist-info}/RECORD +157 -138
  156. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.40.0a1754951145.dist-info}/WHEEL +0 -0
  157. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.40.0a1754951145.dist-info}/top_level.txt +0 -0
@@ -85,9 +85,13 @@ __all__ = [
85
85
  'FirewallPolicyWithRulesPredefinedRule',
86
86
  'FirewallPolicyWithRulesPredefinedRuleMatch',
87
87
  'FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config',
88
+ 'FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag',
89
+ 'FirewallPolicyWithRulesPredefinedRuleTargetSecureTag',
88
90
  'FirewallPolicyWithRulesRule',
89
91
  'FirewallPolicyWithRulesRuleMatch',
90
92
  'FirewallPolicyWithRulesRuleMatchLayer4Config',
93
+ 'FirewallPolicyWithRulesRuleMatchSrcSecureTag',
94
+ 'FirewallPolicyWithRulesRuleTargetSecureTag',
91
95
  'ForwardingRuleServiceDirectoryRegistrations',
92
96
  'FutureReservationAggregateReservation',
93
97
  'FutureReservationAggregateReservationReservedResource',
@@ -348,6 +352,8 @@ __all__ = [
348
352
  'PerInstanceConfigPreservedStateExternalIpIpAddress',
349
353
  'PerInstanceConfigPreservedStateInternalIp',
350
354
  'PerInstanceConfigPreservedStateInternalIpIpAddress',
355
+ 'PreviewFeatureRolloutOperation',
356
+ 'PreviewFeatureRolloutOperationRolloutInput',
351
357
  'RegionAutoscalerAutoscalingPolicy',
352
358
  'RegionAutoscalerAutoscalingPolicyCpuUtilization',
353
359
  'RegionAutoscalerAutoscalingPolicyLoadBalancingUtilization',
@@ -634,6 +640,7 @@ __all__ = [
634
640
  'RouterNatRule',
635
641
  'RouterNatRuleAction',
636
642
  'RouterNatSubnetwork',
643
+ 'RouterParams',
637
644
  'RouterPeerAdvertisedIpRange',
638
645
  'RouterPeerBfd',
639
646
  'RouterPeerCustomLearnedIpRange',
@@ -698,6 +705,7 @@ __all__ = [
698
705
  'SubnetworkIAMBindingCondition',
699
706
  'SubnetworkIAMMemberCondition',
700
707
  'SubnetworkLogConfig',
708
+ 'SubnetworkParams',
701
709
  'SubnetworkSecondaryIpRange',
702
710
  'URLMapDefaultCustomErrorResponsePolicy',
703
711
  'URLMapDefaultCustomErrorResponsePolicyErrorResponseRule',
@@ -1049,6 +1057,7 @@ __all__ = [
1049
1057
  'GetRouterNatRuleResult',
1050
1058
  'GetRouterNatRuleActionResult',
1051
1059
  'GetRouterNatSubnetworkResult',
1060
+ 'GetRouterParamResult',
1052
1061
  'GetRouterStatusBestRouteResult',
1053
1062
  'GetRouterStatusBestRouteAsPathResult',
1054
1063
  'GetRouterStatusBestRouteParamResult',
@@ -5825,6 +5834,8 @@ class FirewallPolicyWithRulesPredefinedRule(dict):
5825
5834
  suggest = "security_profile_group"
5826
5835
  elif key == "targetResources":
5827
5836
  suggest = "target_resources"
5837
+ elif key == "targetSecureTags":
5838
+ suggest = "target_secure_tags"
5828
5839
  elif key == "targetServiceAccounts":
5829
5840
  suggest = "target_service_accounts"
5830
5841
  elif key == "tlsInspect":
@@ -5852,6 +5863,7 @@ class FirewallPolicyWithRulesPredefinedRule(dict):
5852
5863
  rule_name: Optional[_builtins.str] = None,
5853
5864
  security_profile_group: Optional[_builtins.str] = None,
5854
5865
  target_resources: Optional[Sequence[_builtins.str]] = None,
5866
+ target_secure_tags: Optional[Sequence['outputs.FirewallPolicyWithRulesPredefinedRuleTargetSecureTag']] = None,
5855
5867
  target_service_accounts: Optional[Sequence[_builtins.str]] = None,
5856
5868
  tls_inspect: Optional[_builtins.bool] = None):
5857
5869
  """
@@ -5890,6 +5902,19 @@ class FirewallPolicyWithRulesPredefinedRule(dict):
5890
5902
  This field allows you to control which network's VMs get
5891
5903
  this rule. If this field is left blank, all VMs
5892
5904
  within the organization will receive the rule.
5905
+ :param Sequence['FirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs'] target_secure_tags: (Output)
5906
+ A list of secure tags that controls which instances the firewall rule
5907
+ applies to. If <code>targetSecureTag</code> are specified, then the
5908
+ firewall rule applies only to instances in the VPC network that have one
5909
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
5910
+ INEFFECTIVE state, then this rule will be ignored.
5911
+ <code>targetSecureTag</code> may not be set at the same time as
5912
+ <code>targetServiceAccounts</code>.
5913
+ If neither <code>targetServiceAccounts</code> nor
5914
+ <code>targetSecureTag</code> are specified, the firewall rule applies
5915
+ to all instances on the specified network.
5916
+ Maximum number of target secure tags allowed is 256.
5917
+ Structure is documented below.
5893
5918
  :param Sequence[_builtins.str] target_service_accounts: (Output)
5894
5919
  A list of service accounts indicating the sets of
5895
5920
  instances that are applied with this rule.
@@ -5917,6 +5942,8 @@ class FirewallPolicyWithRulesPredefinedRule(dict):
5917
5942
  pulumi.set(__self__, "security_profile_group", security_profile_group)
5918
5943
  if target_resources is not None:
5919
5944
  pulumi.set(__self__, "target_resources", target_resources)
5945
+ if target_secure_tags is not None:
5946
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
5920
5947
  if target_service_accounts is not None:
5921
5948
  pulumi.set(__self__, "target_service_accounts", target_service_accounts)
5922
5949
  if tls_inspect is not None:
@@ -6027,6 +6054,26 @@ class FirewallPolicyWithRulesPredefinedRule(dict):
6027
6054
  """
6028
6055
  return pulumi.get(self, "target_resources")
6029
6056
 
6057
+ @_builtins.property
6058
+ @pulumi.getter(name="targetSecureTags")
6059
+ def target_secure_tags(self) -> Optional[Sequence['outputs.FirewallPolicyWithRulesPredefinedRuleTargetSecureTag']]:
6060
+ """
6061
+ (Output)
6062
+ A list of secure tags that controls which instances the firewall rule
6063
+ applies to. If <code>targetSecureTag</code> are specified, then the
6064
+ firewall rule applies only to instances in the VPC network that have one
6065
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
6066
+ INEFFECTIVE state, then this rule will be ignored.
6067
+ <code>targetSecureTag</code> may not be set at the same time as
6068
+ <code>targetServiceAccounts</code>.
6069
+ If neither <code>targetServiceAccounts</code> nor
6070
+ <code>targetSecureTag</code> are specified, the firewall rule applies
6071
+ to all instances on the specified network.
6072
+ Maximum number of target secure tags allowed is 256.
6073
+ Structure is documented below.
6074
+ """
6075
+ return pulumi.get(self, "target_secure_tags")
6076
+
6030
6077
  @_builtins.property
6031
6078
  @pulumi.getter(name="targetServiceAccounts")
6032
6079
  def target_service_accounts(self) -> Optional[Sequence[_builtins.str]]:
@@ -6073,6 +6120,8 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6073
6120
  suggest = "src_ip_ranges"
6074
6121
  elif key == "srcRegionCodes":
6075
6122
  suggest = "src_region_codes"
6123
+ elif key == "srcSecureTags":
6124
+ suggest = "src_secure_tags"
6076
6125
  elif key == "srcThreatIntelligences":
6077
6126
  suggest = "src_threat_intelligences"
6078
6127
 
@@ -6098,6 +6147,7 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6098
6147
  src_fqdns: Optional[Sequence[_builtins.str]] = None,
6099
6148
  src_ip_ranges: Optional[Sequence[_builtins.str]] = None,
6100
6149
  src_region_codes: Optional[Sequence[_builtins.str]] = None,
6150
+ src_secure_tags: Optional[Sequence['outputs.FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag']] = None,
6101
6151
  src_threat_intelligences: Optional[Sequence[_builtins.str]] = None):
6102
6152
  """
6103
6153
  :param Sequence[_builtins.str] dest_address_groups: Address groups which should be matched against the traffic destination.
@@ -6114,9 +6164,6 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6114
6164
  The IPs in these lists will be matched against traffic destination.
6115
6165
  :param Sequence['FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs'] layer4_configs: Pairs of IP protocols and ports that the rule should match.
6116
6166
  Structure is documented below.
6117
-
6118
-
6119
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
6120
6167
  :param Sequence[_builtins.str] src_address_groups: Address groups which should be matched against the traffic source.
6121
6168
  Maximum number of source address groups is 10.
6122
6169
  :param Sequence[_builtins.str] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
@@ -6127,6 +6174,12 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6127
6174
  of traffic. Should be specified as 2 letter country code defined as per
6128
6175
  ISO 3166 alpha-2 country codes. ex."US"
6129
6176
  Maximum number of source region codes allowed is 5000.
6177
+ :param Sequence['FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs'] src_secure_tags: List of secure tag values, which should be matched at the source
6178
+ of the traffic.
6179
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
6180
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
6181
+ Maximum number of source tag values allowed is 256.
6182
+ Structure is documented below.
6130
6183
  :param Sequence[_builtins.str] src_threat_intelligences: Names of Network Threat Intelligence lists.
6131
6184
  The IPs in these lists will be matched against traffic source.
6132
6185
  """
@@ -6150,6 +6203,8 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6150
6203
  pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
6151
6204
  if src_region_codes is not None:
6152
6205
  pulumi.set(__self__, "src_region_codes", src_region_codes)
6206
+ if src_secure_tags is not None:
6207
+ pulumi.set(__self__, "src_secure_tags", src_secure_tags)
6153
6208
  if src_threat_intelligences is not None:
6154
6209
  pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
6155
6210
 
@@ -6206,9 +6261,6 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6206
6261
  """
6207
6262
  Pairs of IP protocols and ports that the rule should match.
6208
6263
  Structure is documented below.
6209
-
6210
-
6211
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
6212
6264
  """
6213
6265
  return pulumi.get(self, "layer4_configs")
6214
6266
 
@@ -6250,6 +6302,19 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6250
6302
  """
6251
6303
  return pulumi.get(self, "src_region_codes")
6252
6304
 
6305
+ @_builtins.property
6306
+ @pulumi.getter(name="srcSecureTags")
6307
+ def src_secure_tags(self) -> Optional[Sequence['outputs.FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag']]:
6308
+ """
6309
+ List of secure tag values, which should be matched at the source
6310
+ of the traffic.
6311
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
6312
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
6313
+ Maximum number of source tag values allowed is 256.
6314
+ Structure is documented below.
6315
+ """
6316
+ return pulumi.get(self, "src_secure_tags")
6317
+
6253
6318
  @_builtins.property
6254
6319
  @pulumi.getter(name="srcThreatIntelligences")
6255
6320
  def src_threat_intelligences(self) -> Optional[Sequence[_builtins.str]]:
@@ -6330,6 +6395,88 @@ class FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config(dict):
6330
6395
  return pulumi.get(self, "ports")
6331
6396
 
6332
6397
 
6398
+ @pulumi.output_type
6399
+ class FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag(dict):
6400
+ def __init__(__self__, *,
6401
+ name: Optional[_builtins.str] = None,
6402
+ state: Optional[_builtins.str] = None):
6403
+ """
6404
+ :param _builtins.str name: Name of the secure tag, created with TagManager's TagValue API.
6405
+ @pattern tagValues/[0-9]+
6406
+ :param _builtins.str state: (Output)
6407
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
6408
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
6409
+ or its network is deleted.
6410
+
6411
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
6412
+ """
6413
+ if name is not None:
6414
+ pulumi.set(__self__, "name", name)
6415
+ if state is not None:
6416
+ pulumi.set(__self__, "state", state)
6417
+
6418
+ @_builtins.property
6419
+ @pulumi.getter
6420
+ def name(self) -> Optional[_builtins.str]:
6421
+ """
6422
+ Name of the secure tag, created with TagManager's TagValue API.
6423
+ @pattern tagValues/[0-9]+
6424
+ """
6425
+ return pulumi.get(self, "name")
6426
+
6427
+ @_builtins.property
6428
+ @pulumi.getter
6429
+ def state(self) -> Optional[_builtins.str]:
6430
+ """
6431
+ (Output)
6432
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
6433
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
6434
+ or its network is deleted.
6435
+
6436
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
6437
+ """
6438
+ return pulumi.get(self, "state")
6439
+
6440
+
6441
+ @pulumi.output_type
6442
+ class FirewallPolicyWithRulesPredefinedRuleTargetSecureTag(dict):
6443
+ def __init__(__self__, *,
6444
+ name: Optional[_builtins.str] = None,
6445
+ state: Optional[_builtins.str] = None):
6446
+ """
6447
+ :param _builtins.str name: Name of the secure tag, created with TagManager's TagValue API.
6448
+ @pattern tagValues/[0-9]+
6449
+ :param _builtins.str state: (Output)
6450
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
6451
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
6452
+ or its network is deleted.
6453
+ """
6454
+ if name is not None:
6455
+ pulumi.set(__self__, "name", name)
6456
+ if state is not None:
6457
+ pulumi.set(__self__, "state", state)
6458
+
6459
+ @_builtins.property
6460
+ @pulumi.getter
6461
+ def name(self) -> Optional[_builtins.str]:
6462
+ """
6463
+ Name of the secure tag, created with TagManager's TagValue API.
6464
+ @pattern tagValues/[0-9]+
6465
+ """
6466
+ return pulumi.get(self, "name")
6467
+
6468
+ @_builtins.property
6469
+ @pulumi.getter
6470
+ def state(self) -> Optional[_builtins.str]:
6471
+ """
6472
+ (Output)
6473
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
6474
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
6475
+ or its network is deleted.
6476
+ """
6477
+ return pulumi.get(self, "state")
6478
+
6479
+
6333
6480
  @pulumi.output_type
6334
6481
  class FirewallPolicyWithRulesRule(dict):
6335
6482
  @staticmethod
@@ -6343,6 +6490,8 @@ class FirewallPolicyWithRulesRule(dict):
6343
6490
  suggest = "security_profile_group"
6344
6491
  elif key == "targetResources":
6345
6492
  suggest = "target_resources"
6493
+ elif key == "targetSecureTags":
6494
+ suggest = "target_secure_tags"
6346
6495
  elif key == "targetServiceAccounts":
6347
6496
  suggest = "target_service_accounts"
6348
6497
  elif key == "tlsInspect":
@@ -6370,6 +6519,7 @@ class FirewallPolicyWithRulesRule(dict):
6370
6519
  rule_name: Optional[_builtins.str] = None,
6371
6520
  security_profile_group: Optional[_builtins.str] = None,
6372
6521
  target_resources: Optional[Sequence[_builtins.str]] = None,
6522
+ target_secure_tags: Optional[Sequence['outputs.FirewallPolicyWithRulesRuleTargetSecureTag']] = None,
6373
6523
  target_service_accounts: Optional[Sequence[_builtins.str]] = None,
6374
6524
  tls_inspect: Optional[_builtins.bool] = None):
6375
6525
  """
@@ -6400,6 +6550,18 @@ class FirewallPolicyWithRulesRule(dict):
6400
6550
  This field allows you to control which network's VMs get
6401
6551
  this rule. If this field is left blank, all VMs
6402
6552
  within the organization will receive the rule.
6553
+ :param Sequence['FirewallPolicyWithRulesRuleTargetSecureTagArgs'] target_secure_tags: A list of secure tags that controls which instances the firewall rule
6554
+ applies to. If <code>targetSecureTag</code> are specified, then the
6555
+ firewall rule applies only to instances in the VPC network that have one
6556
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
6557
+ INEFFECTIVE state, then this rule will be ignored.
6558
+ <code>targetSecureTag</code> may not be set at the same time as
6559
+ <code>targetServiceAccounts</code>.
6560
+ If neither <code>targetServiceAccounts</code> nor
6561
+ <code>targetSecureTag</code> are specified, the firewall rule applies
6562
+ to all instances on the specified network.
6563
+ Maximum number of target secure tags allowed is 256.
6564
+ Structure is documented below.
6403
6565
  :param Sequence[_builtins.str] target_service_accounts: A list of service accounts indicating the sets of
6404
6566
  instances that are applied with this rule.
6405
6567
  :param _builtins.bool tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted.
@@ -6422,6 +6584,8 @@ class FirewallPolicyWithRulesRule(dict):
6422
6584
  pulumi.set(__self__, "security_profile_group", security_profile_group)
6423
6585
  if target_resources is not None:
6424
6586
  pulumi.set(__self__, "target_resources", target_resources)
6587
+ if target_secure_tags is not None:
6588
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
6425
6589
  if target_service_accounts is not None:
6426
6590
  pulumi.set(__self__, "target_service_accounts", target_service_accounts)
6427
6591
  if tls_inspect is not None:
@@ -6524,6 +6688,25 @@ class FirewallPolicyWithRulesRule(dict):
6524
6688
  """
6525
6689
  return pulumi.get(self, "target_resources")
6526
6690
 
6691
+ @_builtins.property
6692
+ @pulumi.getter(name="targetSecureTags")
6693
+ def target_secure_tags(self) -> Optional[Sequence['outputs.FirewallPolicyWithRulesRuleTargetSecureTag']]:
6694
+ """
6695
+ A list of secure tags that controls which instances the firewall rule
6696
+ applies to. If <code>targetSecureTag</code> are specified, then the
6697
+ firewall rule applies only to instances in the VPC network that have one
6698
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
6699
+ INEFFECTIVE state, then this rule will be ignored.
6700
+ <code>targetSecureTag</code> may not be set at the same time as
6701
+ <code>targetServiceAccounts</code>.
6702
+ If neither <code>targetServiceAccounts</code> nor
6703
+ <code>targetSecureTag</code> are specified, the firewall rule applies
6704
+ to all instances on the specified network.
6705
+ Maximum number of target secure tags allowed is 256.
6706
+ Structure is documented below.
6707
+ """
6708
+ return pulumi.get(self, "target_secure_tags")
6709
+
6527
6710
  @_builtins.property
6528
6711
  @pulumi.getter(name="targetServiceAccounts")
6529
6712
  def target_service_accounts(self) -> Optional[Sequence[_builtins.str]]:
@@ -6574,6 +6757,8 @@ class FirewallPolicyWithRulesRuleMatch(dict):
6574
6757
  suggest = "src_networks"
6575
6758
  elif key == "srcRegionCodes":
6576
6759
  suggest = "src_region_codes"
6760
+ elif key == "srcSecureTags":
6761
+ suggest = "src_secure_tags"
6577
6762
  elif key == "srcThreatIntelligences":
6578
6763
  suggest = "src_threat_intelligences"
6579
6764
 
@@ -6602,13 +6787,11 @@ class FirewallPolicyWithRulesRuleMatch(dict):
6602
6787
  src_network_scope: Optional[_builtins.str] = None,
6603
6788
  src_networks: Optional[Sequence[_builtins.str]] = None,
6604
6789
  src_region_codes: Optional[Sequence[_builtins.str]] = None,
6790
+ src_secure_tags: Optional[Sequence['outputs.FirewallPolicyWithRulesRuleMatchSrcSecureTag']] = None,
6605
6791
  src_threat_intelligences: Optional[Sequence[_builtins.str]] = None):
6606
6792
  """
6607
6793
  :param Sequence['FirewallPolicyWithRulesRuleMatchLayer4ConfigArgs'] layer4_configs: Pairs of IP protocols and ports that the rule should match.
6608
6794
  Structure is documented below.
6609
-
6610
-
6611
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
6612
6795
  :param Sequence[_builtins.str] dest_address_groups: Address groups which should be matched against the traffic destination.
6613
6796
  Maximum number of destination address groups is 10.
6614
6797
  :param Sequence[_builtins.str] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
@@ -6636,6 +6819,12 @@ class FirewallPolicyWithRulesRuleMatch(dict):
6636
6819
  of traffic. Should be specified as 2 letter country code defined as per
6637
6820
  ISO 3166 alpha-2 country codes. ex."US"
6638
6821
  Maximum number of source region codes allowed is 5000.
6822
+ :param Sequence['FirewallPolicyWithRulesRuleMatchSrcSecureTagArgs'] src_secure_tags: List of secure tag values, which should be matched at the source
6823
+ of the traffic.
6824
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
6825
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
6826
+ Maximum number of source tag values allowed is 256.
6827
+ Structure is documented below.
6639
6828
  :param Sequence[_builtins.str] src_threat_intelligences: Names of Network Threat Intelligence lists.
6640
6829
  The IPs in these lists will be matched against traffic source.
6641
6830
  """
@@ -6664,6 +6853,8 @@ class FirewallPolicyWithRulesRuleMatch(dict):
6664
6853
  pulumi.set(__self__, "src_networks", src_networks)
6665
6854
  if src_region_codes is not None:
6666
6855
  pulumi.set(__self__, "src_region_codes", src_region_codes)
6856
+ if src_secure_tags is not None:
6857
+ pulumi.set(__self__, "src_secure_tags", src_secure_tags)
6667
6858
  if src_threat_intelligences is not None:
6668
6859
  pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
6669
6860
 
@@ -6673,9 +6864,6 @@ class FirewallPolicyWithRulesRuleMatch(dict):
6673
6864
  """
6674
6865
  Pairs of IP protocols and ports that the rule should match.
6675
6866
  Structure is documented below.
6676
-
6677
-
6678
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
6679
6867
  """
6680
6868
  return pulumi.get(self, "layer4_configs")
6681
6869
 
@@ -6790,6 +6978,19 @@ class FirewallPolicyWithRulesRuleMatch(dict):
6790
6978
  """
6791
6979
  return pulumi.get(self, "src_region_codes")
6792
6980
 
6981
+ @_builtins.property
6982
+ @pulumi.getter(name="srcSecureTags")
6983
+ def src_secure_tags(self) -> Optional[Sequence['outputs.FirewallPolicyWithRulesRuleMatchSrcSecureTag']]:
6984
+ """
6985
+ List of secure tag values, which should be matched at the source
6986
+ of the traffic.
6987
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
6988
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
6989
+ Maximum number of source tag values allowed is 256.
6990
+ Structure is documented below.
6991
+ """
6992
+ return pulumi.get(self, "src_secure_tags")
6993
+
6793
6994
  @_builtins.property
6794
6995
  @pulumi.getter(name="srcThreatIntelligences")
6795
6996
  def src_threat_intelligences(self) -> Optional[Sequence[_builtins.str]]:
@@ -6869,6 +7070,88 @@ class FirewallPolicyWithRulesRuleMatchLayer4Config(dict):
6869
7070
  return pulumi.get(self, "ports")
6870
7071
 
6871
7072
 
7073
+ @pulumi.output_type
7074
+ class FirewallPolicyWithRulesRuleMatchSrcSecureTag(dict):
7075
+ def __init__(__self__, *,
7076
+ name: Optional[_builtins.str] = None,
7077
+ state: Optional[_builtins.str] = None):
7078
+ """
7079
+ :param _builtins.str name: Name of the secure tag, created with TagManager's TagValue API.
7080
+ @pattern tagValues/[0-9]+
7081
+ :param _builtins.str state: (Output)
7082
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
7083
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
7084
+ or its network is deleted.
7085
+
7086
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
7087
+ """
7088
+ if name is not None:
7089
+ pulumi.set(__self__, "name", name)
7090
+ if state is not None:
7091
+ pulumi.set(__self__, "state", state)
7092
+
7093
+ @_builtins.property
7094
+ @pulumi.getter
7095
+ def name(self) -> Optional[_builtins.str]:
7096
+ """
7097
+ Name of the secure tag, created with TagManager's TagValue API.
7098
+ @pattern tagValues/[0-9]+
7099
+ """
7100
+ return pulumi.get(self, "name")
7101
+
7102
+ @_builtins.property
7103
+ @pulumi.getter
7104
+ def state(self) -> Optional[_builtins.str]:
7105
+ """
7106
+ (Output)
7107
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
7108
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
7109
+ or its network is deleted.
7110
+
7111
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
7112
+ """
7113
+ return pulumi.get(self, "state")
7114
+
7115
+
7116
+ @pulumi.output_type
7117
+ class FirewallPolicyWithRulesRuleTargetSecureTag(dict):
7118
+ def __init__(__self__, *,
7119
+ name: Optional[_builtins.str] = None,
7120
+ state: Optional[_builtins.str] = None):
7121
+ """
7122
+ :param _builtins.str name: Name of the secure tag, created with TagManager's TagValue API.
7123
+ @pattern tagValues/[0-9]+
7124
+ :param _builtins.str state: (Output)
7125
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
7126
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
7127
+ or its network is deleted.
7128
+ """
7129
+ if name is not None:
7130
+ pulumi.set(__self__, "name", name)
7131
+ if state is not None:
7132
+ pulumi.set(__self__, "state", state)
7133
+
7134
+ @_builtins.property
7135
+ @pulumi.getter
7136
+ def name(self) -> Optional[_builtins.str]:
7137
+ """
7138
+ Name of the secure tag, created with TagManager's TagValue API.
7139
+ @pattern tagValues/[0-9]+
7140
+ """
7141
+ return pulumi.get(self, "name")
7142
+
7143
+ @_builtins.property
7144
+ @pulumi.getter
7145
+ def state(self) -> Optional[_builtins.str]:
7146
+ """
7147
+ (Output)
7148
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
7149
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
7150
+ or its network is deleted.
7151
+ """
7152
+ return pulumi.get(self, "state")
7153
+
7154
+
6872
7155
  @pulumi.output_type
6873
7156
  class ForwardingRuleServiceDirectoryRegistrations(dict):
6874
7157
  def __init__(__self__, *,
@@ -25911,6 +26194,81 @@ class PerInstanceConfigPreservedStateInternalIpIpAddress(dict):
25911
26194
  return pulumi.get(self, "address")
25912
26195
 
25913
26196
 
26197
+ @pulumi.output_type
26198
+ class PreviewFeatureRolloutOperation(dict):
26199
+ @staticmethod
26200
+ def __key_warning(key: str):
26201
+ suggest = None
26202
+ if key == "rolloutInput":
26203
+ suggest = "rollout_input"
26204
+
26205
+ if suggest:
26206
+ pulumi.log.warn(f"Key '{key}' not found in PreviewFeatureRolloutOperation. Access the value via the '{suggest}' property getter instead.")
26207
+
26208
+ def __getitem__(self, key: str) -> Any:
26209
+ PreviewFeatureRolloutOperation.__key_warning(key)
26210
+ return super().__getitem__(key)
26211
+
26212
+ def get(self, key: str, default = None) -> Any:
26213
+ PreviewFeatureRolloutOperation.__key_warning(key)
26214
+ return super().get(key, default)
26215
+
26216
+ def __init__(__self__, *,
26217
+ rollout_input: Optional['outputs.PreviewFeatureRolloutOperationRolloutInput'] = None):
26218
+ """
26219
+ :param 'PreviewFeatureRolloutOperationRolloutInputArgs' rollout_input: The input for the rollout operation.
26220
+ Structure is documented below.
26221
+ """
26222
+ if rollout_input is not None:
26223
+ pulumi.set(__self__, "rollout_input", rollout_input)
26224
+
26225
+ @_builtins.property
26226
+ @pulumi.getter(name="rolloutInput")
26227
+ def rollout_input(self) -> Optional['outputs.PreviewFeatureRolloutOperationRolloutInput']:
26228
+ """
26229
+ The input for the rollout operation.
26230
+ Structure is documented below.
26231
+ """
26232
+ return pulumi.get(self, "rollout_input")
26233
+
26234
+
26235
+ @pulumi.output_type
26236
+ class PreviewFeatureRolloutOperationRolloutInput(dict):
26237
+ @staticmethod
26238
+ def __key_warning(key: str):
26239
+ suggest = None
26240
+ if key == "predefinedRolloutPlan":
26241
+ suggest = "predefined_rollout_plan"
26242
+
26243
+ if suggest:
26244
+ pulumi.log.warn(f"Key '{key}' not found in PreviewFeatureRolloutOperationRolloutInput. Access the value via the '{suggest}' property getter instead.")
26245
+
26246
+ def __getitem__(self, key: str) -> Any:
26247
+ PreviewFeatureRolloutOperationRolloutInput.__key_warning(key)
26248
+ return super().__getitem__(key)
26249
+
26250
+ def get(self, key: str, default = None) -> Any:
26251
+ PreviewFeatureRolloutOperationRolloutInput.__key_warning(key)
26252
+ return super().get(key, default)
26253
+
26254
+ def __init__(__self__, *,
26255
+ predefined_rollout_plan: _builtins.str):
26256
+ """
26257
+ :param _builtins.str predefined_rollout_plan: Predefined rollout plans.
26258
+ Possible values are: `ROLLOUT_PLAN_FAST_ROLLOUT`.
26259
+ """
26260
+ pulumi.set(__self__, "predefined_rollout_plan", predefined_rollout_plan)
26261
+
26262
+ @_builtins.property
26263
+ @pulumi.getter(name="predefinedRolloutPlan")
26264
+ def predefined_rollout_plan(self) -> _builtins.str:
26265
+ """
26266
+ Predefined rollout plans.
26267
+ Possible values are: `ROLLOUT_PLAN_FAST_ROLLOUT`.
26268
+ """
26269
+ return pulumi.get(self, "predefined_rollout_plan")
26270
+
26271
+
25914
26272
  @pulumi.output_type
25915
26273
  class RegionAutoscalerAutoscalingPolicy(dict):
25916
26274
  @staticmethod
@@ -38254,6 +38612,8 @@ class RegionUrlMapDefaultRouteActionRequestMirrorPolicy(dict):
38254
38612
  suggest = None
38255
38613
  if key == "backendService":
38256
38614
  suggest = "backend_service"
38615
+ elif key == "mirrorPercent":
38616
+ suggest = "mirror_percent"
38257
38617
 
38258
38618
  if suggest:
38259
38619
  pulumi.log.warn(f"Key '{key}' not found in RegionUrlMapDefaultRouteActionRequestMirrorPolicy. Access the value via the '{suggest}' property getter instead.")
@@ -38267,14 +38627,19 @@ class RegionUrlMapDefaultRouteActionRequestMirrorPolicy(dict):
38267
38627
  return super().get(key, default)
38268
38628
 
38269
38629
  def __init__(__self__, *,
38270
- backend_service: Optional[_builtins.str] = None):
38630
+ backend_service: Optional[_builtins.str] = None,
38631
+ mirror_percent: Optional[_builtins.float] = None):
38271
38632
  """
38272
38633
  :param _builtins.str backend_service: The full or partial URL to the RegionBackendService resource being mirrored to.
38273
38634
  The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map.
38274
38635
  Serverless NEG backends are not currently supported as a mirrored backend service.
38636
+ :param _builtins.float mirror_percent: The percentage of requests to be mirrored to backendService.
38637
+ The value must be between 0.0 and 100.0 inclusive.
38275
38638
  """
38276
38639
  if backend_service is not None:
38277
38640
  pulumi.set(__self__, "backend_service", backend_service)
38641
+ if mirror_percent is not None:
38642
+ pulumi.set(__self__, "mirror_percent", mirror_percent)
38278
38643
 
38279
38644
  @_builtins.property
38280
38645
  @pulumi.getter(name="backendService")
@@ -38286,6 +38651,15 @@ class RegionUrlMapDefaultRouteActionRequestMirrorPolicy(dict):
38286
38651
  """
38287
38652
  return pulumi.get(self, "backend_service")
38288
38653
 
38654
+ @_builtins.property
38655
+ @pulumi.getter(name="mirrorPercent")
38656
+ def mirror_percent(self) -> Optional[_builtins.float]:
38657
+ """
38658
+ The percentage of requests to be mirrored to backendService.
38659
+ The value must be between 0.0 and 100.0 inclusive.
38660
+ """
38661
+ return pulumi.get(self, "mirror_percent")
38662
+
38289
38663
 
38290
38664
  @pulumi.output_type
38291
38665
  class RegionUrlMapDefaultRouteActionRetryPolicy(dict):
@@ -39696,6 +40070,8 @@ class RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicy(dict):
39696
40070
  suggest = None
39697
40071
  if key == "backendService":
39698
40072
  suggest = "backend_service"
40073
+ elif key == "mirrorPercent":
40074
+ suggest = "mirror_percent"
39699
40075
 
39700
40076
  if suggest:
39701
40077
  pulumi.log.warn(f"Key '{key}' not found in RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicy. Access the value via the '{suggest}' property getter instead.")
@@ -39709,13 +40085,18 @@ class RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicy(dict):
39709
40085
  return super().get(key, default)
39710
40086
 
39711
40087
  def __init__(__self__, *,
39712
- backend_service: _builtins.str):
40088
+ backend_service: _builtins.str,
40089
+ mirror_percent: Optional[_builtins.float] = None):
39713
40090
  """
39714
40091
  :param _builtins.str backend_service: The full or partial URL to the RegionBackendService resource being mirrored to.
39715
40092
  The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map.
39716
40093
  Serverless NEG backends are not currently supported as a mirrored backend service.
40094
+ :param _builtins.float mirror_percent: The percentage of requests to be mirrored to backendService.
40095
+ The value must be between 0.0 and 100.0 inclusive.
39717
40096
  """
39718
40097
  pulumi.set(__self__, "backend_service", backend_service)
40098
+ if mirror_percent is not None:
40099
+ pulumi.set(__self__, "mirror_percent", mirror_percent)
39719
40100
 
39720
40101
  @_builtins.property
39721
40102
  @pulumi.getter(name="backendService")
@@ -39727,6 +40108,15 @@ class RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicy(dict):
39727
40108
  """
39728
40109
  return pulumi.get(self, "backend_service")
39729
40110
 
40111
+ @_builtins.property
40112
+ @pulumi.getter(name="mirrorPercent")
40113
+ def mirror_percent(self) -> Optional[_builtins.float]:
40114
+ """
40115
+ The percentage of requests to be mirrored to backendService.
40116
+ The value must be between 0.0 and 100.0 inclusive.
40117
+ """
40118
+ return pulumi.get(self, "mirror_percent")
40119
+
39730
40120
 
39731
40121
  @pulumi.output_type
39732
40122
  class RegionUrlMapPathMatcherDefaultRouteActionRetryPolicy(dict):
@@ -41005,6 +41395,8 @@ class RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy(dict):
41005
41395
  suggest = None
41006
41396
  if key == "backendService":
41007
41397
  suggest = "backend_service"
41398
+ elif key == "mirrorPercent":
41399
+ suggest = "mirror_percent"
41008
41400
 
41009
41401
  if suggest:
41010
41402
  pulumi.log.warn(f"Key '{key}' not found in RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy. Access the value via the '{suggest}' property getter instead.")
@@ -41018,13 +41410,18 @@ class RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy(dict):
41018
41410
  return super().get(key, default)
41019
41411
 
41020
41412
  def __init__(__self__, *,
41021
- backend_service: _builtins.str):
41413
+ backend_service: _builtins.str,
41414
+ mirror_percent: Optional[_builtins.float] = None):
41022
41415
  """
41023
41416
  :param _builtins.str backend_service: The full or partial URL to the RegionBackendService resource being mirrored to.
41024
41417
  The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map.
41025
41418
  Serverless NEG backends are not currently supported as a mirrored backend service.
41419
+ :param _builtins.float mirror_percent: The percentage of requests to be mirrored to backendService.
41420
+ The value must be between 0.0 and 100.0 inclusive.
41026
41421
  """
41027
41422
  pulumi.set(__self__, "backend_service", backend_service)
41423
+ if mirror_percent is not None:
41424
+ pulumi.set(__self__, "mirror_percent", mirror_percent)
41028
41425
 
41029
41426
  @_builtins.property
41030
41427
  @pulumi.getter(name="backendService")
@@ -41036,6 +41433,15 @@ class RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy(dict):
41036
41433
  """
41037
41434
  return pulumi.get(self, "backend_service")
41038
41435
 
41436
+ @_builtins.property
41437
+ @pulumi.getter(name="mirrorPercent")
41438
+ def mirror_percent(self) -> Optional[_builtins.float]:
41439
+ """
41440
+ The percentage of requests to be mirrored to backendService.
41441
+ The value must be between 0.0 and 100.0 inclusive.
41442
+ """
41443
+ return pulumi.get(self, "mirror_percent")
41444
+
41039
41445
 
41040
41446
  @pulumi.output_type
41041
41447
  class RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy(dict):
@@ -43168,6 +43574,8 @@ class RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy(dict):
43168
43574
  suggest = None
43169
43575
  if key == "backendService":
43170
43576
  suggest = "backend_service"
43577
+ elif key == "mirrorPercent":
43578
+ suggest = "mirror_percent"
43171
43579
 
43172
43580
  if suggest:
43173
43581
  pulumi.log.warn(f"Key '{key}' not found in RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy. Access the value via the '{suggest}' property getter instead.")
@@ -43181,13 +43589,18 @@ class RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy(dict):
43181
43589
  return super().get(key, default)
43182
43590
 
43183
43591
  def __init__(__self__, *,
43184
- backend_service: _builtins.str):
43592
+ backend_service: _builtins.str,
43593
+ mirror_percent: Optional[_builtins.float] = None):
43185
43594
  """
43186
43595
  :param _builtins.str backend_service: The full or partial URL to the RegionBackendService resource being mirrored to.
43187
43596
  The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map.
43188
43597
  Serverless NEG backends are not currently supported as a mirrored backend service.
43598
+ :param _builtins.float mirror_percent: The percentage of requests to be mirrored to backendService.
43599
+ The value must be between 0.0 and 100.0 inclusive.
43189
43600
  """
43190
43601
  pulumi.set(__self__, "backend_service", backend_service)
43602
+ if mirror_percent is not None:
43603
+ pulumi.set(__self__, "mirror_percent", mirror_percent)
43191
43604
 
43192
43605
  @_builtins.property
43193
43606
  @pulumi.getter(name="backendService")
@@ -43199,6 +43612,15 @@ class RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy(dict):
43199
43612
  """
43200
43613
  return pulumi.get(self, "backend_service")
43201
43614
 
43615
+ @_builtins.property
43616
+ @pulumi.getter(name="mirrorPercent")
43617
+ def mirror_percent(self) -> Optional[_builtins.float]:
43618
+ """
43619
+ The percentage of requests to be mirrored to backendService.
43620
+ The value must be between 0.0 and 100.0 inclusive.
43621
+ """
43622
+ return pulumi.get(self, "mirror_percent")
43623
+
43202
43624
 
43203
43625
  @pulumi.output_type
43204
43626
  class RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy(dict):
@@ -46953,6 +47375,46 @@ class RouterNatSubnetwork(dict):
46953
47375
  return pulumi.get(self, "secondary_ip_range_names")
46954
47376
 
46955
47377
 
47378
+ @pulumi.output_type
47379
+ class RouterParams(dict):
47380
+ @staticmethod
47381
+ def __key_warning(key: str):
47382
+ suggest = None
47383
+ if key == "resourceManagerTags":
47384
+ suggest = "resource_manager_tags"
47385
+
47386
+ if suggest:
47387
+ pulumi.log.warn(f"Key '{key}' not found in RouterParams. Access the value via the '{suggest}' property getter instead.")
47388
+
47389
+ def __getitem__(self, key: str) -> Any:
47390
+ RouterParams.__key_warning(key)
47391
+ return super().__getitem__(key)
47392
+
47393
+ def get(self, key: str, default = None) -> Any:
47394
+ RouterParams.__key_warning(key)
47395
+ return super().get(key, default)
47396
+
47397
+ def __init__(__self__, *,
47398
+ resource_manager_tags: Optional[Mapping[str, _builtins.str]] = None):
47399
+ """
47400
+ :param Mapping[str, _builtins.str] resource_manager_tags: Resource manager tags to be bound to the router. Tag keys and values have the
47401
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
47402
+ and values are in the format tagValues/456.
47403
+ """
47404
+ if resource_manager_tags is not None:
47405
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
47406
+
47407
+ @_builtins.property
47408
+ @pulumi.getter(name="resourceManagerTags")
47409
+ def resource_manager_tags(self) -> Optional[Mapping[str, _builtins.str]]:
47410
+ """
47411
+ Resource manager tags to be bound to the router. Tag keys and values have the
47412
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
47413
+ and values are in the format tagValues/456.
47414
+ """
47415
+ return pulumi.get(self, "resource_manager_tags")
47416
+
47417
+
46956
47418
  @pulumi.output_type
46957
47419
  class RouterPeerAdvertisedIpRange(dict):
46958
47420
  def __init__(__self__, *,
@@ -51467,6 +51929,52 @@ class SubnetworkLogConfig(dict):
51467
51929
  return pulumi.get(self, "metadata_fields")
51468
51930
 
51469
51931
 
51932
+ @pulumi.output_type
51933
+ class SubnetworkParams(dict):
51934
+ @staticmethod
51935
+ def __key_warning(key: str):
51936
+ suggest = None
51937
+ if key == "resourceManagerTags":
51938
+ suggest = "resource_manager_tags"
51939
+
51940
+ if suggest:
51941
+ pulumi.log.warn(f"Key '{key}' not found in SubnetworkParams. Access the value via the '{suggest}' property getter instead.")
51942
+
51943
+ def __getitem__(self, key: str) -> Any:
51944
+ SubnetworkParams.__key_warning(key)
51945
+ return super().__getitem__(key)
51946
+
51947
+ def get(self, key: str, default = None) -> Any:
51948
+ SubnetworkParams.__key_warning(key)
51949
+ return super().get(key, default)
51950
+
51951
+ def __init__(__self__, *,
51952
+ resource_manager_tags: Optional[Mapping[str, _builtins.str]] = None):
51953
+ """
51954
+ :param Mapping[str, _builtins.str] resource_manager_tags: Resource manager tags to be bound to the subnetwork. Tag keys and values have the
51955
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
51956
+ and values are in the format tagValues/456. The field is ignored when empty.
51957
+ The field is immutable and causes resource replacement when mutated. This field is only
51958
+ set at create time and modifying this field after creation will trigger recreation.
51959
+ To apply tags to an existing resource, see the tags.TagBinding resource.
51960
+ """
51961
+ if resource_manager_tags is not None:
51962
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
51963
+
51964
+ @_builtins.property
51965
+ @pulumi.getter(name="resourceManagerTags")
51966
+ def resource_manager_tags(self) -> Optional[Mapping[str, _builtins.str]]:
51967
+ """
51968
+ Resource manager tags to be bound to the subnetwork. Tag keys and values have the
51969
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
51970
+ and values are in the format tagValues/456. The field is ignored when empty.
51971
+ The field is immutable and causes resource replacement when mutated. This field is only
51972
+ set at create time and modifying this field after creation will trigger recreation.
51973
+ To apply tags to an existing resource, see the tags.TagBinding resource.
51974
+ """
51975
+ return pulumi.get(self, "resource_manager_tags")
51976
+
51977
+
51470
51978
  @pulumi.output_type
51471
51979
  class SubnetworkSecondaryIpRange(dict):
51472
51980
  @staticmethod
@@ -62575,9 +63083,6 @@ class GetForwardingRulesRuleResult(dict):
62575
63083
 
62576
63084
  The forwarded traffic must be of a type appropriate to the target object.
62577
63085
  * For load balancers, see the "Target" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
62578
- * For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle:
62579
- * 'vpc-sc' - [ APIs that support VPC Service Controls](https://cloud.google.com/vpc-service-controls/docs/supported-products).
62580
- * 'all-apis' - [All supported Google APIs](https://cloud.google.com/vpc/docs/private-service-connect#supported-apis).
62581
63086
 
62582
63087
  For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment.
62583
63088
  """
@@ -63107,9 +63612,6 @@ class GetForwardingRulesRuleResult(dict):
63107
63612
 
63108
63613
  The forwarded traffic must be of a type appropriate to the target object.
63109
63614
  * For load balancers, see the "Target" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
63110
- * For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle:
63111
- * 'vpc-sc' - [ APIs that support VPC Service Controls](https://cloud.google.com/vpc-service-controls/docs/supported-products).
63112
- * 'all-apis' - [All supported Google APIs](https://cloud.google.com/vpc/docs/private-service-connect#supported-apis).
63113
63615
 
63114
63616
  For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment.
63115
63617
  """
@@ -73759,6 +74261,28 @@ class GetRouterNatSubnetworkResult(dict):
73759
74261
  return pulumi.get(self, "source_ip_ranges_to_nats")
73760
74262
 
73761
74263
 
74264
+ @pulumi.output_type
74265
+ class GetRouterParamResult(dict):
74266
+ def __init__(__self__, *,
74267
+ resource_manager_tags: Mapping[str, _builtins.str]):
74268
+ """
74269
+ :param Mapping[str, _builtins.str] resource_manager_tags: Resource manager tags to be bound to the router. Tag keys and values have the
74270
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
74271
+ and values are in the format tagValues/456.
74272
+ """
74273
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
74274
+
74275
+ @_builtins.property
74276
+ @pulumi.getter(name="resourceManagerTags")
74277
+ def resource_manager_tags(self) -> Mapping[str, _builtins.str]:
74278
+ """
74279
+ Resource manager tags to be bound to the router. Tag keys and values have the
74280
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
74281
+ and values are in the format tagValues/456.
74282
+ """
74283
+ return pulumi.get(self, "resource_manager_tags")
74284
+
74285
+
73762
74286
  @pulumi.output_type
73763
74287
  class GetRouterStatusBestRouteResult(dict):
73764
74288
  def __init__(__self__, *,
@@ -76095,6 +76619,7 @@ class GetSubnetworksSubnetworkResult(dict):
76095
76619
  ip_cidr_range: _builtins.str,
76096
76620
  name: _builtins.str,
76097
76621
  network: _builtins.str,
76622
+ network_name: _builtins.str,
76098
76623
  network_self_link: _builtins.str,
76099
76624
  private_ip_google_access: _builtins.bool,
76100
76625
  self_link: _builtins.str):
@@ -76103,6 +76628,8 @@ class GetSubnetworksSubnetworkResult(dict):
76103
76628
  :param _builtins.str ip_cidr_range: The IP address range represented as a CIDR block.
76104
76629
  :param _builtins.str name: The name of the subnetwork.
76105
76630
  :param _builtins.str network: The self link of the parent network.
76631
+ :param _builtins.str network_name: The name of the parent network computed from `network` attribute.
76632
+ :param _builtins.str network_self_link: (Deprecated) The name of the parent network computed from `network` attribute. (deprecated and will be removed in a future major release. Use `network_name` instead.)
76106
76633
  :param _builtins.bool private_ip_google_access: Whether the VMs in the subnet can access Google services without assigned external IP addresses.
76107
76634
  :param _builtins.str self_link: The self link of the subnetwork.
76108
76635
  """
@@ -76110,6 +76637,7 @@ class GetSubnetworksSubnetworkResult(dict):
76110
76637
  pulumi.set(__self__, "ip_cidr_range", ip_cidr_range)
76111
76638
  pulumi.set(__self__, "name", name)
76112
76639
  pulumi.set(__self__, "network", network)
76640
+ pulumi.set(__self__, "network_name", network_name)
76113
76641
  pulumi.set(__self__, "network_self_link", network_self_link)
76114
76642
  pulumi.set(__self__, "private_ip_google_access", private_ip_google_access)
76115
76643
  pulumi.set(__self__, "self_link", self_link)
@@ -76146,9 +76674,21 @@ class GetSubnetworksSubnetworkResult(dict):
76146
76674
  """
76147
76675
  return pulumi.get(self, "network")
76148
76676
 
76677
+ @_builtins.property
76678
+ @pulumi.getter(name="networkName")
76679
+ def network_name(self) -> _builtins.str:
76680
+ """
76681
+ The name of the parent network computed from `network` attribute.
76682
+ """
76683
+ return pulumi.get(self, "network_name")
76684
+
76149
76685
  @_builtins.property
76150
76686
  @pulumi.getter(name="networkSelfLink")
76687
+ @_utilities.deprecated("""Use `network_name` instead. This field will be removed in a future major release.""")
76151
76688
  def network_self_link(self) -> _builtins.str:
76689
+ """
76690
+ (Deprecated) The name of the parent network computed from `network` attribute. (deprecated and will be removed in a future major release. Use `network_name` instead.)
76691
+ """
76152
76692
  return pulumi.get(self, "network_self_link")
76153
76693
 
76154
76694
  @_builtins.property