pulumi-gcp 8.23.0a1742538920__py3-none-any.whl → 8.24.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 (106) hide show
  1. pulumi_gcp/__init__.py +59 -0
  2. pulumi_gcp/alloydb/_inputs.py +27 -1
  3. pulumi_gcp/alloydb/outputs.py +33 -2
  4. pulumi_gcp/applicationintegration/client.py +18 -24
  5. pulumi_gcp/bigquery/_inputs.py +178 -0
  6. pulumi_gcp/bigquery/outputs.py +127 -0
  7. pulumi_gcp/bigquery/reservation.py +189 -1
  8. pulumi_gcp/bigquery/table.py +61 -0
  9. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +11 -7
  10. pulumi_gcp/bigtable/table.py +7 -7
  11. pulumi_gcp/chronicle/data_access_label.py +16 -0
  12. pulumi_gcp/clouddeploy/_inputs.py +20 -0
  13. pulumi_gcp/clouddeploy/outputs.py +15 -1
  14. pulumi_gcp/cloudfunctions/function.py +11 -11
  15. pulumi_gcp/cloudfunctionsv2/function.py +24 -24
  16. pulumi_gcp/cloudidentity/get_group_transitive_memberships.py +41 -2
  17. pulumi_gcp/cloudidentity/outputs.py +18 -38
  18. pulumi_gcp/cloudrunv2/service.py +14 -14
  19. pulumi_gcp/compute/__init__.py +1 -0
  20. pulumi_gcp/compute/_inputs.py +616 -18
  21. pulumi_gcp/compute/firewall_policy.py +20 -0
  22. pulumi_gcp/compute/get_images.py +172 -0
  23. pulumi_gcp/compute/get_resource_policy.py +15 -4
  24. pulumi_gcp/compute/image.py +54 -0
  25. pulumi_gcp/compute/interconnect.py +14 -7
  26. pulumi_gcp/compute/outputs.py +710 -18
  27. pulumi_gcp/compute/region_network_endpoint_group.py +2 -2
  28. pulumi_gcp/compute/resource_policy.py +169 -3
  29. pulumi_gcp/compute/router_route_policy.py +16 -0
  30. pulumi_gcp/compute/subnetwork.py +109 -1
  31. pulumi_gcp/compute/target_https_proxy.py +7 -7
  32. pulumi_gcp/config/__init__.pyi +8 -0
  33. pulumi_gcp/config/vars.py +16 -0
  34. pulumi_gcp/container/_inputs.py +265 -4
  35. pulumi_gcp/container/cluster.py +54 -0
  36. pulumi_gcp/container/get_attached_versions.py +2 -2
  37. pulumi_gcp/container/get_cluster.py +12 -1
  38. pulumi_gcp/container/outputs.py +301 -6
  39. pulumi_gcp/dataform/repository.py +49 -0
  40. pulumi_gcp/dataproc/_inputs.py +23 -0
  41. pulumi_gcp/dataproc/get_metastore_service.py +26 -4
  42. pulumi_gcp/dataproc/metastore_federation.py +56 -0
  43. pulumi_gcp/dataproc/metastore_service.py +58 -2
  44. pulumi_gcp/dataproc/outputs.py +27 -0
  45. pulumi_gcp/eventarc/__init__.py +1 -0
  46. pulumi_gcp/eventarc/_inputs.py +1758 -0
  47. pulumi_gcp/eventarc/outputs.py +1337 -0
  48. pulumi_gcp/eventarc/pipeline.py +1596 -0
  49. pulumi_gcp/firebase/__init__.py +1 -0
  50. pulumi_gcp/firebase/_inputs.py +154 -0
  51. pulumi_gcp/firebase/app_hosting_backend.py +1303 -0
  52. pulumi_gcp/firebase/hosting_version.py +2 -2
  53. pulumi_gcp/firebase/outputs.py +127 -0
  54. pulumi_gcp/kms/get_key_rings.py +39 -2
  55. pulumi_gcp/lustre/__init__.py +8 -0
  56. pulumi_gcp/lustre/instance.py +983 -0
  57. pulumi_gcp/managedkafka/__init__.py +2 -0
  58. pulumi_gcp/managedkafka/_inputs.py +263 -0
  59. pulumi_gcp/managedkafka/connect_cluster.py +795 -0
  60. pulumi_gcp/managedkafka/connector.py +695 -0
  61. pulumi_gcp/managedkafka/outputs.py +248 -0
  62. pulumi_gcp/memorystore/_inputs.py +419 -0
  63. pulumi_gcp/memorystore/get_instance.py +23 -1
  64. pulumi_gcp/memorystore/instance.py +144 -14
  65. pulumi_gcp/memorystore/outputs.py +544 -0
  66. pulumi_gcp/monitoring/uptime_check_config.py +2 -2
  67. pulumi_gcp/networkmanagement/_inputs.py +422 -91
  68. pulumi_gcp/networkmanagement/connectivity_test.py +233 -211
  69. pulumi_gcp/networkmanagement/outputs.py +280 -61
  70. pulumi_gcp/networksecurity/_inputs.py +1277 -242
  71. pulumi_gcp/networksecurity/gateway_security_policy.py +0 -7
  72. pulumi_gcp/networksecurity/intercept_deployment_group.py +44 -16
  73. pulumi_gcp/networksecurity/intercept_endpoint_group.py +90 -36
  74. pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +53 -8
  75. pulumi_gcp/networksecurity/mirroring_deployment.py +22 -0
  76. pulumi_gcp/networksecurity/mirroring_deployment_group.py +20 -0
  77. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +24 -0
  78. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +28 -0
  79. pulumi_gcp/networksecurity/outputs.py +723 -8
  80. pulumi_gcp/networksecurity/tls_inspection_policy.py +14 -0
  81. pulumi_gcp/networkservices/gateway.py +242 -120
  82. pulumi_gcp/organizations/__init__.py +1 -0
  83. pulumi_gcp/organizations/get_iam_custom_role.py +198 -0
  84. pulumi_gcp/osconfig/__init__.py +1 -0
  85. pulumi_gcp/osconfig/_inputs.py +5413 -0
  86. pulumi_gcp/osconfig/outputs.py +3962 -0
  87. pulumi_gcp/osconfig/v2_policy_orchestrator.py +971 -0
  88. pulumi_gcp/projects/__init__.py +2 -0
  89. pulumi_gcp/projects/get_iam_custom_role.py +198 -0
  90. pulumi_gcp/projects/get_iam_custom_roles.py +164 -0
  91. pulumi_gcp/projects/outputs.py +96 -0
  92. pulumi_gcp/provider.py +80 -0
  93. pulumi_gcp/pulumi-plugin.json +1 -1
  94. pulumi_gcp/servicenetworking/peered_dns_domain.py +4 -0
  95. pulumi_gcp/sql/outputs.py +8 -8
  96. pulumi_gcp/storage/__init__.py +2 -0
  97. pulumi_gcp/storage/_inputs.py +740 -6
  98. pulumi_gcp/storage/control_project_intelligence_config.py +366 -0
  99. pulumi_gcp/storage/get_control_project_intelligence_config.py +130 -0
  100. pulumi_gcp/storage/insights_report_config.py +121 -20
  101. pulumi_gcp/storage/outputs.py +723 -4
  102. pulumi_gcp/workflows/workflow.py +75 -7
  103. {pulumi_gcp-8.23.0a1742538920.dist-info → pulumi_gcp-8.24.0.dist-info}/METADATA +1 -1
  104. {pulumi_gcp-8.23.0a1742538920.dist-info → pulumi_gcp-8.24.0.dist-info}/RECORD +106 -93
  105. {pulumi_gcp-8.23.0a1742538920.dist-info → pulumi_gcp-8.24.0.dist-info}/WHEEL +1 -1
  106. {pulumi_gcp-8.23.0a1742538920.dist-info → pulumi_gcp-8.24.0.dist-info}/top_level.txt +0 -0
@@ -59,6 +59,18 @@ __all__ = [
59
59
  'AuthzPolicyHttpRuleFromSourceResourceTagValueIdSetArgsDict',
60
60
  'AuthzPolicyHttpRuleToArgs',
61
61
  'AuthzPolicyHttpRuleToArgsDict',
62
+ 'AuthzPolicyHttpRuleToNotOperationArgs',
63
+ 'AuthzPolicyHttpRuleToNotOperationArgsDict',
64
+ 'AuthzPolicyHttpRuleToNotOperationHeaderSetArgs',
65
+ 'AuthzPolicyHttpRuleToNotOperationHeaderSetArgsDict',
66
+ 'AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderArgs',
67
+ 'AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderArgsDict',
68
+ 'AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderValueArgs',
69
+ 'AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderValueArgsDict',
70
+ 'AuthzPolicyHttpRuleToNotOperationHostArgs',
71
+ 'AuthzPolicyHttpRuleToNotOperationHostArgsDict',
72
+ 'AuthzPolicyHttpRuleToNotOperationPathArgs',
73
+ 'AuthzPolicyHttpRuleToNotOperationPathArgsDict',
62
74
  'AuthzPolicyHttpRuleToOperationArgs',
63
75
  'AuthzPolicyHttpRuleToOperationArgsDict',
64
76
  'AuthzPolicyHttpRuleToOperationHeaderSetArgs',
@@ -87,8 +99,18 @@ __all__ = [
87
99
  'ClientTlsPolicyServerValidationCaGrpcEndpointArgsDict',
88
100
  'InterceptDeploymentGroupConnectedEndpointGroupArgs',
89
101
  'InterceptDeploymentGroupConnectedEndpointGroupArgsDict',
102
+ 'InterceptDeploymentGroupLocationArgs',
103
+ 'InterceptDeploymentGroupLocationArgsDict',
104
+ 'InterceptEndpointGroupAssociationArgs',
105
+ 'InterceptEndpointGroupAssociationArgsDict',
106
+ 'InterceptEndpointGroupAssociationLocationArgs',
107
+ 'InterceptEndpointGroupAssociationLocationArgsDict',
90
108
  'InterceptEndpointGroupAssociationLocationsDetailArgs',
91
109
  'InterceptEndpointGroupAssociationLocationsDetailArgsDict',
110
+ 'InterceptEndpointGroupConnectedDeploymentGroupArgs',
111
+ 'InterceptEndpointGroupConnectedDeploymentGroupArgsDict',
112
+ 'InterceptEndpointGroupConnectedDeploymentGroupLocationArgs',
113
+ 'InterceptEndpointGroupConnectedDeploymentGroupLocationArgsDict',
92
114
  'MirroringDeploymentGroupConnectedEndpointGroupArgs',
93
115
  'MirroringDeploymentGroupConnectedEndpointGroupArgsDict',
94
116
  'MirroringEndpointGroupAssociationLocationsDetailArgs',
@@ -1598,6 +1620,11 @@ class AuthzPolicyHttpRuleFromSourceResourceTagValueIdSetArgs:
1598
1620
 
1599
1621
  if not MYPY:
1600
1622
  class AuthzPolicyHttpRuleToArgsDict(TypedDict):
1623
+ not_operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationArgsDict']]]]
1624
+ """
1625
+ Describes the negated properties of the targets of a request. Matches requests for operations that do not match the criteria specified in this field. At least one of operations or notOperations must be specified.
1626
+ Structure is documented below.
1627
+ """
1601
1628
  operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationArgsDict']]]]
1602
1629
  """
1603
1630
  Describes properties of one or more targets of a request. At least one of operations or notOperations must be specified. Limited to 5 operations. A match occurs when ANY operation (in operations or notOperations) matches. Within an operation, the match follows AND semantics across fields and OR semantics within a field, i.e. a match occurs when ANY path matches AND ANY header matches and ANY method matches.
@@ -1609,14 +1636,32 @@ elif False:
1609
1636
  @pulumi.input_type
1610
1637
  class AuthzPolicyHttpRuleToArgs:
1611
1638
  def __init__(__self__, *,
1639
+ not_operations: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationArgs']]]] = None,
1612
1640
  operations: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationArgs']]]] = None):
1613
1641
  """
1642
+ :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationArgs']]] not_operations: Describes the negated properties of the targets of a request. Matches requests for operations that do not match the criteria specified in this field. At least one of operations or notOperations must be specified.
1643
+ Structure is documented below.
1614
1644
  :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationArgs']]] operations: Describes properties of one or more targets of a request. At least one of operations or notOperations must be specified. Limited to 5 operations. A match occurs when ANY operation (in operations or notOperations) matches. Within an operation, the match follows AND semantics across fields and OR semantics within a field, i.e. a match occurs when ANY path matches AND ANY header matches and ANY method matches.
1615
1645
  Structure is documented below.
1616
1646
  """
1647
+ if not_operations is not None:
1648
+ pulumi.set(__self__, "not_operations", not_operations)
1617
1649
  if operations is not None:
1618
1650
  pulumi.set(__self__, "operations", operations)
1619
1651
 
1652
+ @property
1653
+ @pulumi.getter(name="notOperations")
1654
+ def not_operations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationArgs']]]]:
1655
+ """
1656
+ Describes the negated properties of the targets of a request. Matches requests for operations that do not match the criteria specified in this field. At least one of operations or notOperations must be specified.
1657
+ Structure is documented below.
1658
+ """
1659
+ return pulumi.get(self, "not_operations")
1660
+
1661
+ @not_operations.setter
1662
+ def not_operations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationArgs']]]]):
1663
+ pulumi.set(self, "not_operations", value)
1664
+
1620
1665
  @property
1621
1666
  @pulumi.getter
1622
1667
  def operations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationArgs']]]]:
@@ -1632,13 +1677,13 @@ class AuthzPolicyHttpRuleToArgs:
1632
1677
 
1633
1678
 
1634
1679
  if not MYPY:
1635
- class AuthzPolicyHttpRuleToOperationArgsDict(TypedDict):
1636
- header_set: NotRequired[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgsDict']]
1680
+ class AuthzPolicyHttpRuleToNotOperationArgsDict(TypedDict):
1681
+ header_set: NotRequired[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetArgsDict']]
1637
1682
  """
1638
1683
  A list of headers to match against in http header.
1639
1684
  Structure is documented below.
1640
1685
  """
1641
- hosts: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgsDict']]]]
1686
+ hosts: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHostArgsDict']]]]
1642
1687
  """
1643
1688
  A list of HTTP Hosts to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
1644
1689
  Limited to 5 matches.
@@ -1648,7 +1693,7 @@ if not MYPY:
1648
1693
  """
1649
1694
  A list of HTTP methods to match against. Each entry must be a valid HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It only allows exact match and is always case sensitive.
1650
1695
  """
1651
- paths: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgsDict']]]]
1696
+ paths: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationPathArgsDict']]]]
1652
1697
  """
1653
1698
  A list of paths to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
1654
1699
  Limited to 5 matches.
@@ -1656,23 +1701,23 @@ if not MYPY:
1656
1701
  Structure is documented below.
1657
1702
  """
1658
1703
  elif False:
1659
- AuthzPolicyHttpRuleToOperationArgsDict: TypeAlias = Mapping[str, Any]
1704
+ AuthzPolicyHttpRuleToNotOperationArgsDict: TypeAlias = Mapping[str, Any]
1660
1705
 
1661
1706
  @pulumi.input_type
1662
- class AuthzPolicyHttpRuleToOperationArgs:
1707
+ class AuthzPolicyHttpRuleToNotOperationArgs:
1663
1708
  def __init__(__self__, *,
1664
- header_set: Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgs']] = None,
1665
- hosts: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgs']]]] = None,
1709
+ header_set: Optional[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetArgs']] = None,
1710
+ hosts: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHostArgs']]]] = None,
1666
1711
  methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1667
- paths: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgs']]]] = None):
1712
+ paths: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationPathArgs']]]] = None):
1668
1713
  """
1669
- :param pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgs'] header_set: A list of headers to match against in http header.
1714
+ :param pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetArgs'] header_set: A list of headers to match against in http header.
1670
1715
  Structure is documented below.
1671
- :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgs']]] hosts: A list of HTTP Hosts to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
1716
+ :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHostArgs']]] hosts: A list of HTTP Hosts to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
1672
1717
  Limited to 5 matches.
1673
1718
  Structure is documented below.
1674
1719
  :param pulumi.Input[Sequence[pulumi.Input[str]]] methods: A list of HTTP methods to match against. Each entry must be a valid HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It only allows exact match and is always case sensitive.
1675
- :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgs']]] paths: A list of paths to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
1720
+ :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationPathArgs']]] paths: A list of paths to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
1676
1721
  Limited to 5 matches.
1677
1722
  Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
1678
1723
  Structure is documented below.
@@ -1688,7 +1733,7 @@ class AuthzPolicyHttpRuleToOperationArgs:
1688
1733
 
1689
1734
  @property
1690
1735
  @pulumi.getter(name="headerSet")
1691
- def header_set(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgs']]:
1736
+ def header_set(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetArgs']]:
1692
1737
  """
1693
1738
  A list of headers to match against in http header.
1694
1739
  Structure is documented below.
@@ -1696,12 +1741,12 @@ class AuthzPolicyHttpRuleToOperationArgs:
1696
1741
  return pulumi.get(self, "header_set")
1697
1742
 
1698
1743
  @header_set.setter
1699
- def header_set(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgs']]):
1744
+ def header_set(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetArgs']]):
1700
1745
  pulumi.set(self, "header_set", value)
1701
1746
 
1702
1747
  @property
1703
1748
  @pulumi.getter
1704
- def hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgs']]]]:
1749
+ def hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHostArgs']]]]:
1705
1750
  """
1706
1751
  A list of HTTP Hosts to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
1707
1752
  Limited to 5 matches.
@@ -1710,7 +1755,7 @@ class AuthzPolicyHttpRuleToOperationArgs:
1710
1755
  return pulumi.get(self, "hosts")
1711
1756
 
1712
1757
  @hosts.setter
1713
- def hosts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgs']]]]):
1758
+ def hosts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHostArgs']]]]):
1714
1759
  pulumi.set(self, "hosts", value)
1715
1760
 
1716
1761
  @property
@@ -1727,7 +1772,7 @@ class AuthzPolicyHttpRuleToOperationArgs:
1727
1772
 
1728
1773
  @property
1729
1774
  @pulumi.getter
1730
- def paths(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgs']]]]:
1775
+ def paths(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationPathArgs']]]]:
1731
1776
  """
1732
1777
  A list of paths to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
1733
1778
  Limited to 5 matches.
@@ -1737,26 +1782,26 @@ class AuthzPolicyHttpRuleToOperationArgs:
1737
1782
  return pulumi.get(self, "paths")
1738
1783
 
1739
1784
  @paths.setter
1740
- def paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgs']]]]):
1785
+ def paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationPathArgs']]]]):
1741
1786
  pulumi.set(self, "paths", value)
1742
1787
 
1743
1788
 
1744
1789
  if not MYPY:
1745
- class AuthzPolicyHttpRuleToOperationHeaderSetArgsDict(TypedDict):
1746
- headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgsDict']]]]
1790
+ class AuthzPolicyHttpRuleToNotOperationHeaderSetArgsDict(TypedDict):
1791
+ headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderArgsDict']]]]
1747
1792
  """
1748
1793
  A list of headers to match against in http header. The match can be one of exact, prefix, suffix, or contains (substring match). The match follows AND semantics which means all the headers must match. Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.
1749
1794
  Structure is documented below.
1750
1795
  """
1751
1796
  elif False:
1752
- AuthzPolicyHttpRuleToOperationHeaderSetArgsDict: TypeAlias = Mapping[str, Any]
1797
+ AuthzPolicyHttpRuleToNotOperationHeaderSetArgsDict: TypeAlias = Mapping[str, Any]
1753
1798
 
1754
1799
  @pulumi.input_type
1755
- class AuthzPolicyHttpRuleToOperationHeaderSetArgs:
1800
+ class AuthzPolicyHttpRuleToNotOperationHeaderSetArgs:
1756
1801
  def __init__(__self__, *,
1757
- headers: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs']]]] = None):
1802
+ headers: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderArgs']]]] = None):
1758
1803
  """
1759
- :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs']]] headers: A list of headers to match against in http header. The match can be one of exact, prefix, suffix, or contains (substring match). The match follows AND semantics which means all the headers must match. Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.
1804
+ :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderArgs']]] headers: A list of headers to match against in http header. The match can be one of exact, prefix, suffix, or contains (substring match). The match follows AND semantics which means all the headers must match. Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.
1760
1805
  Structure is documented below.
1761
1806
  """
1762
1807
  if headers is not None:
@@ -1764,7 +1809,7 @@ class AuthzPolicyHttpRuleToOperationHeaderSetArgs:
1764
1809
 
1765
1810
  @property
1766
1811
  @pulumi.getter
1767
- def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs']]]]:
1812
+ def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderArgs']]]]:
1768
1813
  """
1769
1814
  A list of headers to match against in http header. The match can be one of exact, prefix, suffix, or contains (substring match). The match follows AND semantics which means all the headers must match. Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.
1770
1815
  Structure is documented below.
@@ -1772,32 +1817,32 @@ class AuthzPolicyHttpRuleToOperationHeaderSetArgs:
1772
1817
  return pulumi.get(self, "headers")
1773
1818
 
1774
1819
  @headers.setter
1775
- def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs']]]]):
1820
+ def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderArgs']]]]):
1776
1821
  pulumi.set(self, "headers", value)
1777
1822
 
1778
1823
 
1779
1824
  if not MYPY:
1780
- class AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgsDict(TypedDict):
1825
+ class AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderArgsDict(TypedDict):
1781
1826
  name: NotRequired[pulumi.Input[str]]
1782
1827
  """
1783
1828
  Specifies the name of the header in the request.
1784
1829
  """
1785
- value: NotRequired[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgsDict']]
1830
+ value: NotRequired[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderValueArgsDict']]
1786
1831
  """
1787
1832
  Specifies how the header match will be performed.
1788
1833
  Structure is documented below.
1789
1834
  """
1790
1835
  elif False:
1791
- AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgsDict: TypeAlias = Mapping[str, Any]
1836
+ AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderArgsDict: TypeAlias = Mapping[str, Any]
1792
1837
 
1793
1838
  @pulumi.input_type
1794
- class AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs:
1839
+ class AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderArgs:
1795
1840
  def __init__(__self__, *,
1796
1841
  name: Optional[pulumi.Input[str]] = None,
1797
- value: Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs']] = None):
1842
+ value: Optional[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderValueArgs']] = None):
1798
1843
  """
1799
1844
  :param pulumi.Input[str] name: Specifies the name of the header in the request.
1800
- :param pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs'] value: Specifies how the header match will be performed.
1845
+ :param pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderValueArgs'] value: Specifies how the header match will be performed.
1801
1846
  Structure is documented below.
1802
1847
  """
1803
1848
  if name is not None:
@@ -1819,7 +1864,7 @@ class AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs:
1819
1864
 
1820
1865
  @property
1821
1866
  @pulumi.getter
1822
- def value(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs']]:
1867
+ def value(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderValueArgs']]:
1823
1868
  """
1824
1869
  Specifies how the header match will be performed.
1825
1870
  Structure is documented below.
@@ -1827,12 +1872,12 @@ class AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs:
1827
1872
  return pulumi.get(self, "value")
1828
1873
 
1829
1874
  @value.setter
1830
- def value(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs']]):
1875
+ def value(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderValueArgs']]):
1831
1876
  pulumi.set(self, "value", value)
1832
1877
 
1833
1878
 
1834
1879
  if not MYPY:
1835
- class AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgsDict(TypedDict):
1880
+ class AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderValueArgsDict(TypedDict):
1836
1881
  contains: NotRequired[pulumi.Input[str]]
1837
1882
  """
1838
1883
  The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
@@ -1862,10 +1907,10 @@ if not MYPY:
1862
1907
  * abc matches the value xyz.abc
1863
1908
  """
1864
1909
  elif False:
1865
- AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgsDict: TypeAlias = Mapping[str, Any]
1910
+ AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderValueArgsDict: TypeAlias = Mapping[str, Any]
1866
1911
 
1867
1912
  @pulumi.input_type
1868
- class AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs:
1913
+ class AuthzPolicyHttpRuleToNotOperationHeaderSetHeaderValueArgs:
1869
1914
  def __init__(__self__, *,
1870
1915
  contains: Optional[pulumi.Input[str]] = None,
1871
1916
  exact: Optional[pulumi.Input[str]] = None,
@@ -1968,7 +2013,7 @@ class AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs:
1968
2013
 
1969
2014
 
1970
2015
  if not MYPY:
1971
- class AuthzPolicyHttpRuleToOperationHostArgsDict(TypedDict):
2016
+ class AuthzPolicyHttpRuleToNotOperationHostArgsDict(TypedDict):
1972
2017
  contains: NotRequired[pulumi.Input[str]]
1973
2018
  """
1974
2019
  The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
@@ -1998,10 +2043,10 @@ if not MYPY:
1998
2043
  * abc matches the value xyz.abc
1999
2044
  """
2000
2045
  elif False:
2001
- AuthzPolicyHttpRuleToOperationHostArgsDict: TypeAlias = Mapping[str, Any]
2046
+ AuthzPolicyHttpRuleToNotOperationHostArgsDict: TypeAlias = Mapping[str, Any]
2002
2047
 
2003
2048
  @pulumi.input_type
2004
- class AuthzPolicyHttpRuleToOperationHostArgs:
2049
+ class AuthzPolicyHttpRuleToNotOperationHostArgs:
2005
2050
  def __init__(__self__, *,
2006
2051
  contains: Optional[pulumi.Input[str]] = None,
2007
2052
  exact: Optional[pulumi.Input[str]] = None,
@@ -2104,7 +2149,7 @@ class AuthzPolicyHttpRuleToOperationHostArgs:
2104
2149
 
2105
2150
 
2106
2151
  if not MYPY:
2107
- class AuthzPolicyHttpRuleToOperationPathArgsDict(TypedDict):
2152
+ class AuthzPolicyHttpRuleToNotOperationPathArgsDict(TypedDict):
2108
2153
  contains: NotRequired[pulumi.Input[str]]
2109
2154
  """
2110
2155
  The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
@@ -2134,10 +2179,10 @@ if not MYPY:
2134
2179
  * abc matches the value xyz.abc
2135
2180
  """
2136
2181
  elif False:
2137
- AuthzPolicyHttpRuleToOperationPathArgsDict: TypeAlias = Mapping[str, Any]
2182
+ AuthzPolicyHttpRuleToNotOperationPathArgsDict: TypeAlias = Mapping[str, Any]
2138
2183
 
2139
2184
  @pulumi.input_type
2140
- class AuthzPolicyHttpRuleToOperationPathArgs:
2185
+ class AuthzPolicyHttpRuleToNotOperationPathArgs:
2141
2186
  def __init__(__self__, *,
2142
2187
  contains: Optional[pulumi.Input[str]] = None,
2143
2188
  exact: Optional[pulumi.Input[str]] = None,
@@ -2240,143 +2285,871 @@ class AuthzPolicyHttpRuleToOperationPathArgs:
2240
2285
 
2241
2286
 
2242
2287
  if not MYPY:
2243
- class AuthzPolicyTargetArgsDict(TypedDict):
2244
- load_balancing_scheme: pulumi.Input[str]
2288
+ class AuthzPolicyHttpRuleToOperationArgsDict(TypedDict):
2289
+ header_set: NotRequired[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgsDict']]
2245
2290
  """
2246
- All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme.
2247
- For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
2248
- Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`, `INTERNAL_SELF_MANAGED`.
2291
+ A list of headers to match against in http header.
2292
+ Structure is documented below.
2249
2293
  """
2250
- resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2294
+ hosts: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgsDict']]]]
2251
2295
  """
2252
- A list of references to the Forwarding Rules on which this policy will be applied.
2253
-
2254
- - - -
2296
+ A list of HTTP Hosts to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
2297
+ Limited to 5 matches.
2298
+ Structure is documented below.
2299
+ """
2300
+ methods: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2301
+ """
2302
+ A list of HTTP methods to match against. Each entry must be a valid HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It only allows exact match and is always case sensitive.
2303
+ """
2304
+ paths: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgsDict']]]]
2305
+ """
2306
+ A list of paths to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
2307
+ Limited to 5 matches.
2308
+ Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
2309
+ Structure is documented below.
2255
2310
  """
2256
2311
  elif False:
2257
- AuthzPolicyTargetArgsDict: TypeAlias = Mapping[str, Any]
2312
+ AuthzPolicyHttpRuleToOperationArgsDict: TypeAlias = Mapping[str, Any]
2258
2313
 
2259
2314
  @pulumi.input_type
2260
- class AuthzPolicyTargetArgs:
2315
+ class AuthzPolicyHttpRuleToOperationArgs:
2261
2316
  def __init__(__self__, *,
2262
- load_balancing_scheme: pulumi.Input[str],
2263
- resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
2317
+ header_set: Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgs']] = None,
2318
+ hosts: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgs']]]] = None,
2319
+ methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2320
+ paths: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgs']]]] = None):
2264
2321
  """
2265
- :param pulumi.Input[str] load_balancing_scheme: All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme.
2266
- For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
2267
- Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`, `INTERNAL_SELF_MANAGED`.
2268
- :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: A list of references to the Forwarding Rules on which this policy will be applied.
2269
-
2270
- - - -
2322
+ :param pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgs'] header_set: A list of headers to match against in http header.
2323
+ Structure is documented below.
2324
+ :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgs']]] hosts: A list of HTTP Hosts to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
2325
+ Limited to 5 matches.
2326
+ Structure is documented below.
2327
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] methods: A list of HTTP methods to match against. Each entry must be a valid HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It only allows exact match and is always case sensitive.
2328
+ :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgs']]] paths: A list of paths to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
2329
+ Limited to 5 matches.
2330
+ Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
2331
+ Structure is documented below.
2271
2332
  """
2272
- pulumi.set(__self__, "load_balancing_scheme", load_balancing_scheme)
2273
- if resources is not None:
2274
- pulumi.set(__self__, "resources", resources)
2333
+ if header_set is not None:
2334
+ pulumi.set(__self__, "header_set", header_set)
2335
+ if hosts is not None:
2336
+ pulumi.set(__self__, "hosts", hosts)
2337
+ if methods is not None:
2338
+ pulumi.set(__self__, "methods", methods)
2339
+ if paths is not None:
2340
+ pulumi.set(__self__, "paths", paths)
2275
2341
 
2276
2342
  @property
2277
- @pulumi.getter(name="loadBalancingScheme")
2278
- def load_balancing_scheme(self) -> pulumi.Input[str]:
2343
+ @pulumi.getter(name="headerSet")
2344
+ def header_set(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgs']]:
2279
2345
  """
2280
- All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme.
2281
- For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
2282
- Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`, `INTERNAL_SELF_MANAGED`.
2346
+ A list of headers to match against in http header.
2347
+ Structure is documented below.
2283
2348
  """
2284
- return pulumi.get(self, "load_balancing_scheme")
2349
+ return pulumi.get(self, "header_set")
2285
2350
 
2286
- @load_balancing_scheme.setter
2287
- def load_balancing_scheme(self, value: pulumi.Input[str]):
2288
- pulumi.set(self, "load_balancing_scheme", value)
2351
+ @header_set.setter
2352
+ def header_set(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgs']]):
2353
+ pulumi.set(self, "header_set", value)
2289
2354
 
2290
2355
  @property
2291
2356
  @pulumi.getter
2292
- def resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2357
+ def hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgs']]]]:
2293
2358
  """
2294
- A list of references to the Forwarding Rules on which this policy will be applied.
2295
-
2296
- - - -
2359
+ A list of HTTP Hosts to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
2360
+ Limited to 5 matches.
2361
+ Structure is documented below.
2297
2362
  """
2298
- return pulumi.get(self, "resources")
2363
+ return pulumi.get(self, "hosts")
2299
2364
 
2300
- @resources.setter
2301
- def resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2302
- pulumi.set(self, "resources", value)
2365
+ @hosts.setter
2366
+ def hosts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgs']]]]):
2367
+ pulumi.set(self, "hosts", value)
2303
2368
 
2369
+ @property
2370
+ @pulumi.getter
2371
+ def methods(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2372
+ """
2373
+ A list of HTTP methods to match against. Each entry must be a valid HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It only allows exact match and is always case sensitive.
2374
+ """
2375
+ return pulumi.get(self, "methods")
2304
2376
 
2305
- if not MYPY:
2306
- class ClientTlsPolicyClientCertificateArgsDict(TypedDict):
2307
- certificate_provider_instance: NotRequired[pulumi.Input['ClientTlsPolicyClientCertificateCertificateProviderInstanceArgsDict']]
2377
+ @methods.setter
2378
+ def methods(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2379
+ pulumi.set(self, "methods", value)
2380
+
2381
+ @property
2382
+ @pulumi.getter
2383
+ def paths(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgs']]]]:
2308
2384
  """
2309
- The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
2385
+ A list of paths to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
2386
+ Limited to 5 matches.
2387
+ Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
2310
2388
  Structure is documented below.
2311
2389
  """
2312
- grpc_endpoint: NotRequired[pulumi.Input['ClientTlsPolicyClientCertificateGrpcEndpointArgsDict']]
2390
+ return pulumi.get(self, "paths")
2391
+
2392
+ @paths.setter
2393
+ def paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgs']]]]):
2394
+ pulumi.set(self, "paths", value)
2395
+
2396
+
2397
+ if not MYPY:
2398
+ class AuthzPolicyHttpRuleToOperationHeaderSetArgsDict(TypedDict):
2399
+ headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgsDict']]]]
2313
2400
  """
2314
- gRPC specific configuration to access the gRPC server to obtain the cert and private key.
2401
+ A list of headers to match against in http header. The match can be one of exact, prefix, suffix, or contains (substring match). The match follows AND semantics which means all the headers must match. Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.
2315
2402
  Structure is documented below.
2316
2403
  """
2317
2404
  elif False:
2318
- ClientTlsPolicyClientCertificateArgsDict: TypeAlias = Mapping[str, Any]
2405
+ AuthzPolicyHttpRuleToOperationHeaderSetArgsDict: TypeAlias = Mapping[str, Any]
2319
2406
 
2320
2407
  @pulumi.input_type
2321
- class ClientTlsPolicyClientCertificateArgs:
2408
+ class AuthzPolicyHttpRuleToOperationHeaderSetArgs:
2322
2409
  def __init__(__self__, *,
2323
- certificate_provider_instance: Optional[pulumi.Input['ClientTlsPolicyClientCertificateCertificateProviderInstanceArgs']] = None,
2324
- grpc_endpoint: Optional[pulumi.Input['ClientTlsPolicyClientCertificateGrpcEndpointArgs']] = None):
2410
+ headers: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs']]]] = None):
2325
2411
  """
2326
- :param pulumi.Input['ClientTlsPolicyClientCertificateCertificateProviderInstanceArgs'] certificate_provider_instance: The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
2327
- Structure is documented below.
2328
- :param pulumi.Input['ClientTlsPolicyClientCertificateGrpcEndpointArgs'] grpc_endpoint: gRPC specific configuration to access the gRPC server to obtain the cert and private key.
2412
+ :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs']]] headers: A list of headers to match against in http header. The match can be one of exact, prefix, suffix, or contains (substring match). The match follows AND semantics which means all the headers must match. Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.
2329
2413
  Structure is documented below.
2330
2414
  """
2331
- if certificate_provider_instance is not None:
2332
- pulumi.set(__self__, "certificate_provider_instance", certificate_provider_instance)
2333
- if grpc_endpoint is not None:
2334
- pulumi.set(__self__, "grpc_endpoint", grpc_endpoint)
2335
-
2336
- @property
2337
- @pulumi.getter(name="certificateProviderInstance")
2338
- def certificate_provider_instance(self) -> Optional[pulumi.Input['ClientTlsPolicyClientCertificateCertificateProviderInstanceArgs']]:
2339
- """
2340
- The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
2341
- Structure is documented below.
2342
- """
2343
- return pulumi.get(self, "certificate_provider_instance")
2344
-
2345
- @certificate_provider_instance.setter
2346
- def certificate_provider_instance(self, value: Optional[pulumi.Input['ClientTlsPolicyClientCertificateCertificateProviderInstanceArgs']]):
2347
- pulumi.set(self, "certificate_provider_instance", value)
2415
+ if headers is not None:
2416
+ pulumi.set(__self__, "headers", headers)
2348
2417
 
2349
2418
  @property
2350
- @pulumi.getter(name="grpcEndpoint")
2351
- def grpc_endpoint(self) -> Optional[pulumi.Input['ClientTlsPolicyClientCertificateGrpcEndpointArgs']]:
2419
+ @pulumi.getter
2420
+ def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs']]]]:
2352
2421
  """
2353
- gRPC specific configuration to access the gRPC server to obtain the cert and private key.
2422
+ A list of headers to match against in http header. The match can be one of exact, prefix, suffix, or contains (substring match). The match follows AND semantics which means all the headers must match. Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.
2354
2423
  Structure is documented below.
2355
2424
  """
2356
- return pulumi.get(self, "grpc_endpoint")
2425
+ return pulumi.get(self, "headers")
2357
2426
 
2358
- @grpc_endpoint.setter
2359
- def grpc_endpoint(self, value: Optional[pulumi.Input['ClientTlsPolicyClientCertificateGrpcEndpointArgs']]):
2360
- pulumi.set(self, "grpc_endpoint", value)
2427
+ @headers.setter
2428
+ def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs']]]]):
2429
+ pulumi.set(self, "headers", value)
2361
2430
 
2362
2431
 
2363
2432
  if not MYPY:
2364
- class ClientTlsPolicyClientCertificateCertificateProviderInstanceArgsDict(TypedDict):
2365
- plugin_instance: pulumi.Input[str]
2433
+ class AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgsDict(TypedDict):
2434
+ name: NotRequired[pulumi.Input[str]]
2366
2435
  """
2367
- Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance.
2436
+ Specifies the name of the header in the request.
2437
+ """
2438
+ value: NotRequired[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgsDict']]
2439
+ """
2440
+ Specifies how the header match will be performed.
2441
+ Structure is documented below.
2368
2442
  """
2369
2443
  elif False:
2370
- ClientTlsPolicyClientCertificateCertificateProviderInstanceArgsDict: TypeAlias = Mapping[str, Any]
2444
+ AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgsDict: TypeAlias = Mapping[str, Any]
2371
2445
 
2372
2446
  @pulumi.input_type
2373
- class ClientTlsPolicyClientCertificateCertificateProviderInstanceArgs:
2447
+ class AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs:
2374
2448
  def __init__(__self__, *,
2375
- plugin_instance: pulumi.Input[str]):
2449
+ name: Optional[pulumi.Input[str]] = None,
2450
+ value: Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs']] = None):
2376
2451
  """
2377
- :param pulumi.Input[str] plugin_instance: Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance.
2452
+ :param pulumi.Input[str] name: Specifies the name of the header in the request.
2453
+ :param pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs'] value: Specifies how the header match will be performed.
2454
+ Structure is documented below.
2378
2455
  """
2379
- pulumi.set(__self__, "plugin_instance", plugin_instance)
2456
+ if name is not None:
2457
+ pulumi.set(__self__, "name", name)
2458
+ if value is not None:
2459
+ pulumi.set(__self__, "value", value)
2460
+
2461
+ @property
2462
+ @pulumi.getter
2463
+ def name(self) -> Optional[pulumi.Input[str]]:
2464
+ """
2465
+ Specifies the name of the header in the request.
2466
+ """
2467
+ return pulumi.get(self, "name")
2468
+
2469
+ @name.setter
2470
+ def name(self, value: Optional[pulumi.Input[str]]):
2471
+ pulumi.set(self, "name", value)
2472
+
2473
+ @property
2474
+ @pulumi.getter
2475
+ def value(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs']]:
2476
+ """
2477
+ Specifies how the header match will be performed.
2478
+ Structure is documented below.
2479
+ """
2480
+ return pulumi.get(self, "value")
2481
+
2482
+ @value.setter
2483
+ def value(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs']]):
2484
+ pulumi.set(self, "value", value)
2485
+
2486
+
2487
+ if not MYPY:
2488
+ class AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgsDict(TypedDict):
2489
+ contains: NotRequired[pulumi.Input[str]]
2490
+ """
2491
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2492
+ Examples:
2493
+ * abc matches the value xyz.abc.def
2494
+ """
2495
+ exact: NotRequired[pulumi.Input[str]]
2496
+ """
2497
+ The input string must match exactly the string specified here.
2498
+ Examples:
2499
+ * abc only matches the value abc.
2500
+ """
2501
+ ignore_case: NotRequired[pulumi.Input[bool]]
2502
+ """
2503
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
2504
+ """
2505
+ prefix: NotRequired[pulumi.Input[str]]
2506
+ """
2507
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2508
+ Examples:
2509
+ * abc matches the value abc.xyz
2510
+ """
2511
+ suffix: NotRequired[pulumi.Input[str]]
2512
+ """
2513
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2514
+ Examples:
2515
+ * abc matches the value xyz.abc
2516
+ """
2517
+ elif False:
2518
+ AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgsDict: TypeAlias = Mapping[str, Any]
2519
+
2520
+ @pulumi.input_type
2521
+ class AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs:
2522
+ def __init__(__self__, *,
2523
+ contains: Optional[pulumi.Input[str]] = None,
2524
+ exact: Optional[pulumi.Input[str]] = None,
2525
+ ignore_case: Optional[pulumi.Input[bool]] = None,
2526
+ prefix: Optional[pulumi.Input[str]] = None,
2527
+ suffix: Optional[pulumi.Input[str]] = None):
2528
+ """
2529
+ :param pulumi.Input[str] contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2530
+ Examples:
2531
+ * abc matches the value xyz.abc.def
2532
+ :param pulumi.Input[str] exact: The input string must match exactly the string specified here.
2533
+ Examples:
2534
+ * abc only matches the value abc.
2535
+ :param pulumi.Input[bool] ignore_case: If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
2536
+ :param pulumi.Input[str] prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2537
+ Examples:
2538
+ * abc matches the value abc.xyz
2539
+ :param pulumi.Input[str] suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2540
+ Examples:
2541
+ * abc matches the value xyz.abc
2542
+ """
2543
+ if contains is not None:
2544
+ pulumi.set(__self__, "contains", contains)
2545
+ if exact is not None:
2546
+ pulumi.set(__self__, "exact", exact)
2547
+ if ignore_case is not None:
2548
+ pulumi.set(__self__, "ignore_case", ignore_case)
2549
+ if prefix is not None:
2550
+ pulumi.set(__self__, "prefix", prefix)
2551
+ if suffix is not None:
2552
+ pulumi.set(__self__, "suffix", suffix)
2553
+
2554
+ @property
2555
+ @pulumi.getter
2556
+ def contains(self) -> Optional[pulumi.Input[str]]:
2557
+ """
2558
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2559
+ Examples:
2560
+ * abc matches the value xyz.abc.def
2561
+ """
2562
+ return pulumi.get(self, "contains")
2563
+
2564
+ @contains.setter
2565
+ def contains(self, value: Optional[pulumi.Input[str]]):
2566
+ pulumi.set(self, "contains", value)
2567
+
2568
+ @property
2569
+ @pulumi.getter
2570
+ def exact(self) -> Optional[pulumi.Input[str]]:
2571
+ """
2572
+ The input string must match exactly the string specified here.
2573
+ Examples:
2574
+ * abc only matches the value abc.
2575
+ """
2576
+ return pulumi.get(self, "exact")
2577
+
2578
+ @exact.setter
2579
+ def exact(self, value: Optional[pulumi.Input[str]]):
2580
+ pulumi.set(self, "exact", value)
2581
+
2582
+ @property
2583
+ @pulumi.getter(name="ignoreCase")
2584
+ def ignore_case(self) -> Optional[pulumi.Input[bool]]:
2585
+ """
2586
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
2587
+ """
2588
+ return pulumi.get(self, "ignore_case")
2589
+
2590
+ @ignore_case.setter
2591
+ def ignore_case(self, value: Optional[pulumi.Input[bool]]):
2592
+ pulumi.set(self, "ignore_case", value)
2593
+
2594
+ @property
2595
+ @pulumi.getter
2596
+ def prefix(self) -> Optional[pulumi.Input[str]]:
2597
+ """
2598
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2599
+ Examples:
2600
+ * abc matches the value abc.xyz
2601
+ """
2602
+ return pulumi.get(self, "prefix")
2603
+
2604
+ @prefix.setter
2605
+ def prefix(self, value: Optional[pulumi.Input[str]]):
2606
+ pulumi.set(self, "prefix", value)
2607
+
2608
+ @property
2609
+ @pulumi.getter
2610
+ def suffix(self) -> Optional[pulumi.Input[str]]:
2611
+ """
2612
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2613
+ Examples:
2614
+ * abc matches the value xyz.abc
2615
+ """
2616
+ return pulumi.get(self, "suffix")
2617
+
2618
+ @suffix.setter
2619
+ def suffix(self, value: Optional[pulumi.Input[str]]):
2620
+ pulumi.set(self, "suffix", value)
2621
+
2622
+
2623
+ if not MYPY:
2624
+ class AuthzPolicyHttpRuleToOperationHostArgsDict(TypedDict):
2625
+ contains: NotRequired[pulumi.Input[str]]
2626
+ """
2627
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2628
+ Examples:
2629
+ * abc matches the value xyz.abc.def
2630
+ """
2631
+ exact: NotRequired[pulumi.Input[str]]
2632
+ """
2633
+ The input string must match exactly the string specified here.
2634
+ Examples:
2635
+ * abc only matches the value abc.
2636
+ """
2637
+ ignore_case: NotRequired[pulumi.Input[bool]]
2638
+ """
2639
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
2640
+ """
2641
+ prefix: NotRequired[pulumi.Input[str]]
2642
+ """
2643
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2644
+ Examples:
2645
+ * abc matches the value abc.xyz
2646
+ """
2647
+ suffix: NotRequired[pulumi.Input[str]]
2648
+ """
2649
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2650
+ Examples:
2651
+ * abc matches the value xyz.abc
2652
+ """
2653
+ elif False:
2654
+ AuthzPolicyHttpRuleToOperationHostArgsDict: TypeAlias = Mapping[str, Any]
2655
+
2656
+ @pulumi.input_type
2657
+ class AuthzPolicyHttpRuleToOperationHostArgs:
2658
+ def __init__(__self__, *,
2659
+ contains: Optional[pulumi.Input[str]] = None,
2660
+ exact: Optional[pulumi.Input[str]] = None,
2661
+ ignore_case: Optional[pulumi.Input[bool]] = None,
2662
+ prefix: Optional[pulumi.Input[str]] = None,
2663
+ suffix: Optional[pulumi.Input[str]] = None):
2664
+ """
2665
+ :param pulumi.Input[str] contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2666
+ Examples:
2667
+ * abc matches the value xyz.abc.def
2668
+ :param pulumi.Input[str] exact: The input string must match exactly the string specified here.
2669
+ Examples:
2670
+ * abc only matches the value abc.
2671
+ :param pulumi.Input[bool] ignore_case: If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
2672
+ :param pulumi.Input[str] prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2673
+ Examples:
2674
+ * abc matches the value abc.xyz
2675
+ :param pulumi.Input[str] suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2676
+ Examples:
2677
+ * abc matches the value xyz.abc
2678
+ """
2679
+ if contains is not None:
2680
+ pulumi.set(__self__, "contains", contains)
2681
+ if exact is not None:
2682
+ pulumi.set(__self__, "exact", exact)
2683
+ if ignore_case is not None:
2684
+ pulumi.set(__self__, "ignore_case", ignore_case)
2685
+ if prefix is not None:
2686
+ pulumi.set(__self__, "prefix", prefix)
2687
+ if suffix is not None:
2688
+ pulumi.set(__self__, "suffix", suffix)
2689
+
2690
+ @property
2691
+ @pulumi.getter
2692
+ def contains(self) -> Optional[pulumi.Input[str]]:
2693
+ """
2694
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2695
+ Examples:
2696
+ * abc matches the value xyz.abc.def
2697
+ """
2698
+ return pulumi.get(self, "contains")
2699
+
2700
+ @contains.setter
2701
+ def contains(self, value: Optional[pulumi.Input[str]]):
2702
+ pulumi.set(self, "contains", value)
2703
+
2704
+ @property
2705
+ @pulumi.getter
2706
+ def exact(self) -> Optional[pulumi.Input[str]]:
2707
+ """
2708
+ The input string must match exactly the string specified here.
2709
+ Examples:
2710
+ * abc only matches the value abc.
2711
+ """
2712
+ return pulumi.get(self, "exact")
2713
+
2714
+ @exact.setter
2715
+ def exact(self, value: Optional[pulumi.Input[str]]):
2716
+ pulumi.set(self, "exact", value)
2717
+
2718
+ @property
2719
+ @pulumi.getter(name="ignoreCase")
2720
+ def ignore_case(self) -> Optional[pulumi.Input[bool]]:
2721
+ """
2722
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
2723
+ """
2724
+ return pulumi.get(self, "ignore_case")
2725
+
2726
+ @ignore_case.setter
2727
+ def ignore_case(self, value: Optional[pulumi.Input[bool]]):
2728
+ pulumi.set(self, "ignore_case", value)
2729
+
2730
+ @property
2731
+ @pulumi.getter
2732
+ def prefix(self) -> Optional[pulumi.Input[str]]:
2733
+ """
2734
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2735
+ Examples:
2736
+ * abc matches the value abc.xyz
2737
+ """
2738
+ return pulumi.get(self, "prefix")
2739
+
2740
+ @prefix.setter
2741
+ def prefix(self, value: Optional[pulumi.Input[str]]):
2742
+ pulumi.set(self, "prefix", value)
2743
+
2744
+ @property
2745
+ @pulumi.getter
2746
+ def suffix(self) -> Optional[pulumi.Input[str]]:
2747
+ """
2748
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2749
+ Examples:
2750
+ * abc matches the value xyz.abc
2751
+ """
2752
+ return pulumi.get(self, "suffix")
2753
+
2754
+ @suffix.setter
2755
+ def suffix(self, value: Optional[pulumi.Input[str]]):
2756
+ pulumi.set(self, "suffix", value)
2757
+
2758
+
2759
+ if not MYPY:
2760
+ class AuthzPolicyHttpRuleToOperationPathArgsDict(TypedDict):
2761
+ contains: NotRequired[pulumi.Input[str]]
2762
+ """
2763
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2764
+ Examples:
2765
+ * abc matches the value xyz.abc.def
2766
+ """
2767
+ exact: NotRequired[pulumi.Input[str]]
2768
+ """
2769
+ The input string must match exactly the string specified here.
2770
+ Examples:
2771
+ * abc only matches the value abc.
2772
+ """
2773
+ ignore_case: NotRequired[pulumi.Input[bool]]
2774
+ """
2775
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
2776
+ """
2777
+ prefix: NotRequired[pulumi.Input[str]]
2778
+ """
2779
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2780
+ Examples:
2781
+ * abc matches the value abc.xyz
2782
+ """
2783
+ suffix: NotRequired[pulumi.Input[str]]
2784
+ """
2785
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2786
+ Examples:
2787
+ * abc matches the value xyz.abc
2788
+ """
2789
+ elif False:
2790
+ AuthzPolicyHttpRuleToOperationPathArgsDict: TypeAlias = Mapping[str, Any]
2791
+
2792
+ @pulumi.input_type
2793
+ class AuthzPolicyHttpRuleToOperationPathArgs:
2794
+ def __init__(__self__, *,
2795
+ contains: Optional[pulumi.Input[str]] = None,
2796
+ exact: Optional[pulumi.Input[str]] = None,
2797
+ ignore_case: Optional[pulumi.Input[bool]] = None,
2798
+ prefix: Optional[pulumi.Input[str]] = None,
2799
+ suffix: Optional[pulumi.Input[str]] = None):
2800
+ """
2801
+ :param pulumi.Input[str] contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2802
+ Examples:
2803
+ * abc matches the value xyz.abc.def
2804
+ :param pulumi.Input[str] exact: The input string must match exactly the string specified here.
2805
+ Examples:
2806
+ * abc only matches the value abc.
2807
+ :param pulumi.Input[bool] ignore_case: If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
2808
+ :param pulumi.Input[str] prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2809
+ Examples:
2810
+ * abc matches the value abc.xyz
2811
+ :param pulumi.Input[str] suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2812
+ Examples:
2813
+ * abc matches the value xyz.abc
2814
+ """
2815
+ if contains is not None:
2816
+ pulumi.set(__self__, "contains", contains)
2817
+ if exact is not None:
2818
+ pulumi.set(__self__, "exact", exact)
2819
+ if ignore_case is not None:
2820
+ pulumi.set(__self__, "ignore_case", ignore_case)
2821
+ if prefix is not None:
2822
+ pulumi.set(__self__, "prefix", prefix)
2823
+ if suffix is not None:
2824
+ pulumi.set(__self__, "suffix", suffix)
2825
+
2826
+ @property
2827
+ @pulumi.getter
2828
+ def contains(self) -> Optional[pulumi.Input[str]]:
2829
+ """
2830
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2831
+ Examples:
2832
+ * abc matches the value xyz.abc.def
2833
+ """
2834
+ return pulumi.get(self, "contains")
2835
+
2836
+ @contains.setter
2837
+ def contains(self, value: Optional[pulumi.Input[str]]):
2838
+ pulumi.set(self, "contains", value)
2839
+
2840
+ @property
2841
+ @pulumi.getter
2842
+ def exact(self) -> Optional[pulumi.Input[str]]:
2843
+ """
2844
+ The input string must match exactly the string specified here.
2845
+ Examples:
2846
+ * abc only matches the value abc.
2847
+ """
2848
+ return pulumi.get(self, "exact")
2849
+
2850
+ @exact.setter
2851
+ def exact(self, value: Optional[pulumi.Input[str]]):
2852
+ pulumi.set(self, "exact", value)
2853
+
2854
+ @property
2855
+ @pulumi.getter(name="ignoreCase")
2856
+ def ignore_case(self) -> Optional[pulumi.Input[bool]]:
2857
+ """
2858
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
2859
+ """
2860
+ return pulumi.get(self, "ignore_case")
2861
+
2862
+ @ignore_case.setter
2863
+ def ignore_case(self, value: Optional[pulumi.Input[bool]]):
2864
+ pulumi.set(self, "ignore_case", value)
2865
+
2866
+ @property
2867
+ @pulumi.getter
2868
+ def prefix(self) -> Optional[pulumi.Input[str]]:
2869
+ """
2870
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2871
+ Examples:
2872
+ * abc matches the value abc.xyz
2873
+ """
2874
+ return pulumi.get(self, "prefix")
2875
+
2876
+ @prefix.setter
2877
+ def prefix(self, value: Optional[pulumi.Input[str]]):
2878
+ pulumi.set(self, "prefix", value)
2879
+
2880
+ @property
2881
+ @pulumi.getter
2882
+ def suffix(self) -> Optional[pulumi.Input[str]]:
2883
+ """
2884
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2885
+ Examples:
2886
+ * abc matches the value xyz.abc
2887
+ """
2888
+ return pulumi.get(self, "suffix")
2889
+
2890
+ @suffix.setter
2891
+ def suffix(self, value: Optional[pulumi.Input[str]]):
2892
+ pulumi.set(self, "suffix", value)
2893
+
2894
+
2895
+ if not MYPY:
2896
+ class AuthzPolicyTargetArgsDict(TypedDict):
2897
+ load_balancing_scheme: pulumi.Input[str]
2898
+ """
2899
+ All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme.
2900
+ For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
2901
+ Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`, `INTERNAL_SELF_MANAGED`.
2902
+ """
2903
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2904
+ """
2905
+ A list of references to the Forwarding Rules on which this policy will be applied.
2906
+
2907
+ - - -
2908
+ """
2909
+ elif False:
2910
+ AuthzPolicyTargetArgsDict: TypeAlias = Mapping[str, Any]
2911
+
2912
+ @pulumi.input_type
2913
+ class AuthzPolicyTargetArgs:
2914
+ def __init__(__self__, *,
2915
+ load_balancing_scheme: pulumi.Input[str],
2916
+ resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
2917
+ """
2918
+ :param pulumi.Input[str] load_balancing_scheme: All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme.
2919
+ For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
2920
+ Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`, `INTERNAL_SELF_MANAGED`.
2921
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: A list of references to the Forwarding Rules on which this policy will be applied.
2922
+
2923
+ - - -
2924
+ """
2925
+ pulumi.set(__self__, "load_balancing_scheme", load_balancing_scheme)
2926
+ if resources is not None:
2927
+ pulumi.set(__self__, "resources", resources)
2928
+
2929
+ @property
2930
+ @pulumi.getter(name="loadBalancingScheme")
2931
+ def load_balancing_scheme(self) -> pulumi.Input[str]:
2932
+ """
2933
+ All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme.
2934
+ For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
2935
+ Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`, `INTERNAL_SELF_MANAGED`.
2936
+ """
2937
+ return pulumi.get(self, "load_balancing_scheme")
2938
+
2939
+ @load_balancing_scheme.setter
2940
+ def load_balancing_scheme(self, value: pulumi.Input[str]):
2941
+ pulumi.set(self, "load_balancing_scheme", value)
2942
+
2943
+ @property
2944
+ @pulumi.getter
2945
+ def resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2946
+ """
2947
+ A list of references to the Forwarding Rules on which this policy will be applied.
2948
+
2949
+ - - -
2950
+ """
2951
+ return pulumi.get(self, "resources")
2952
+
2953
+ @resources.setter
2954
+ def resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2955
+ pulumi.set(self, "resources", value)
2956
+
2957
+
2958
+ if not MYPY:
2959
+ class ClientTlsPolicyClientCertificateArgsDict(TypedDict):
2960
+ certificate_provider_instance: NotRequired[pulumi.Input['ClientTlsPolicyClientCertificateCertificateProviderInstanceArgsDict']]
2961
+ """
2962
+ The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
2963
+ Structure is documented below.
2964
+ """
2965
+ grpc_endpoint: NotRequired[pulumi.Input['ClientTlsPolicyClientCertificateGrpcEndpointArgsDict']]
2966
+ """
2967
+ gRPC specific configuration to access the gRPC server to obtain the cert and private key.
2968
+ Structure is documented below.
2969
+ """
2970
+ elif False:
2971
+ ClientTlsPolicyClientCertificateArgsDict: TypeAlias = Mapping[str, Any]
2972
+
2973
+ @pulumi.input_type
2974
+ class ClientTlsPolicyClientCertificateArgs:
2975
+ def __init__(__self__, *,
2976
+ certificate_provider_instance: Optional[pulumi.Input['ClientTlsPolicyClientCertificateCertificateProviderInstanceArgs']] = None,
2977
+ grpc_endpoint: Optional[pulumi.Input['ClientTlsPolicyClientCertificateGrpcEndpointArgs']] = None):
2978
+ """
2979
+ :param pulumi.Input['ClientTlsPolicyClientCertificateCertificateProviderInstanceArgs'] certificate_provider_instance: The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
2980
+ Structure is documented below.
2981
+ :param pulumi.Input['ClientTlsPolicyClientCertificateGrpcEndpointArgs'] grpc_endpoint: gRPC specific configuration to access the gRPC server to obtain the cert and private key.
2982
+ Structure is documented below.
2983
+ """
2984
+ if certificate_provider_instance is not None:
2985
+ pulumi.set(__self__, "certificate_provider_instance", certificate_provider_instance)
2986
+ if grpc_endpoint is not None:
2987
+ pulumi.set(__self__, "grpc_endpoint", grpc_endpoint)
2988
+
2989
+ @property
2990
+ @pulumi.getter(name="certificateProviderInstance")
2991
+ def certificate_provider_instance(self) -> Optional[pulumi.Input['ClientTlsPolicyClientCertificateCertificateProviderInstanceArgs']]:
2992
+ """
2993
+ The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
2994
+ Structure is documented below.
2995
+ """
2996
+ return pulumi.get(self, "certificate_provider_instance")
2997
+
2998
+ @certificate_provider_instance.setter
2999
+ def certificate_provider_instance(self, value: Optional[pulumi.Input['ClientTlsPolicyClientCertificateCertificateProviderInstanceArgs']]):
3000
+ pulumi.set(self, "certificate_provider_instance", value)
3001
+
3002
+ @property
3003
+ @pulumi.getter(name="grpcEndpoint")
3004
+ def grpc_endpoint(self) -> Optional[pulumi.Input['ClientTlsPolicyClientCertificateGrpcEndpointArgs']]:
3005
+ """
3006
+ gRPC specific configuration to access the gRPC server to obtain the cert and private key.
3007
+ Structure is documented below.
3008
+ """
3009
+ return pulumi.get(self, "grpc_endpoint")
3010
+
3011
+ @grpc_endpoint.setter
3012
+ def grpc_endpoint(self, value: Optional[pulumi.Input['ClientTlsPolicyClientCertificateGrpcEndpointArgs']]):
3013
+ pulumi.set(self, "grpc_endpoint", value)
3014
+
3015
+
3016
+ if not MYPY:
3017
+ class ClientTlsPolicyClientCertificateCertificateProviderInstanceArgsDict(TypedDict):
3018
+ plugin_instance: pulumi.Input[str]
3019
+ """
3020
+ Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance.
3021
+ """
3022
+ elif False:
3023
+ ClientTlsPolicyClientCertificateCertificateProviderInstanceArgsDict: TypeAlias = Mapping[str, Any]
3024
+
3025
+ @pulumi.input_type
3026
+ class ClientTlsPolicyClientCertificateCertificateProviderInstanceArgs:
3027
+ def __init__(__self__, *,
3028
+ plugin_instance: pulumi.Input[str]):
3029
+ """
3030
+ :param pulumi.Input[str] plugin_instance: Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance.
3031
+ """
3032
+ pulumi.set(__self__, "plugin_instance", plugin_instance)
3033
+
3034
+ @property
3035
+ @pulumi.getter(name="pluginInstance")
3036
+ def plugin_instance(self) -> pulumi.Input[str]:
3037
+ """
3038
+ Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance.
3039
+ """
3040
+ return pulumi.get(self, "plugin_instance")
3041
+
3042
+ @plugin_instance.setter
3043
+ def plugin_instance(self, value: pulumi.Input[str]):
3044
+ pulumi.set(self, "plugin_instance", value)
3045
+
3046
+
3047
+ if not MYPY:
3048
+ class ClientTlsPolicyClientCertificateGrpcEndpointArgsDict(TypedDict):
3049
+ target_uri: pulumi.Input[str]
3050
+ """
3051
+ The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
3052
+ """
3053
+ elif False:
3054
+ ClientTlsPolicyClientCertificateGrpcEndpointArgsDict: TypeAlias = Mapping[str, Any]
3055
+
3056
+ @pulumi.input_type
3057
+ class ClientTlsPolicyClientCertificateGrpcEndpointArgs:
3058
+ def __init__(__self__, *,
3059
+ target_uri: pulumi.Input[str]):
3060
+ """
3061
+ :param pulumi.Input[str] target_uri: The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
3062
+ """
3063
+ pulumi.set(__self__, "target_uri", target_uri)
3064
+
3065
+ @property
3066
+ @pulumi.getter(name="targetUri")
3067
+ def target_uri(self) -> pulumi.Input[str]:
3068
+ """
3069
+ The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
3070
+ """
3071
+ return pulumi.get(self, "target_uri")
3072
+
3073
+ @target_uri.setter
3074
+ def target_uri(self, value: pulumi.Input[str]):
3075
+ pulumi.set(self, "target_uri", value)
3076
+
3077
+
3078
+ if not MYPY:
3079
+ class ClientTlsPolicyServerValidationCaArgsDict(TypedDict):
3080
+ certificate_provider_instance: NotRequired[pulumi.Input['ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgsDict']]
3081
+ """
3082
+ The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
3083
+ Structure is documented below.
3084
+ """
3085
+ grpc_endpoint: NotRequired[pulumi.Input['ClientTlsPolicyServerValidationCaGrpcEndpointArgsDict']]
3086
+ """
3087
+ gRPC specific configuration to access the gRPC server to obtain the cert and private key.
3088
+ Structure is documented below.
3089
+ """
3090
+ elif False:
3091
+ ClientTlsPolicyServerValidationCaArgsDict: TypeAlias = Mapping[str, Any]
3092
+
3093
+ @pulumi.input_type
3094
+ class ClientTlsPolicyServerValidationCaArgs:
3095
+ def __init__(__self__, *,
3096
+ certificate_provider_instance: Optional[pulumi.Input['ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgs']] = None,
3097
+ grpc_endpoint: Optional[pulumi.Input['ClientTlsPolicyServerValidationCaGrpcEndpointArgs']] = None):
3098
+ """
3099
+ :param pulumi.Input['ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgs'] certificate_provider_instance: The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
3100
+ Structure is documented below.
3101
+ :param pulumi.Input['ClientTlsPolicyServerValidationCaGrpcEndpointArgs'] grpc_endpoint: gRPC specific configuration to access the gRPC server to obtain the cert and private key.
3102
+ Structure is documented below.
3103
+ """
3104
+ if certificate_provider_instance is not None:
3105
+ pulumi.set(__self__, "certificate_provider_instance", certificate_provider_instance)
3106
+ if grpc_endpoint is not None:
3107
+ pulumi.set(__self__, "grpc_endpoint", grpc_endpoint)
3108
+
3109
+ @property
3110
+ @pulumi.getter(name="certificateProviderInstance")
3111
+ def certificate_provider_instance(self) -> Optional[pulumi.Input['ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgs']]:
3112
+ """
3113
+ The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
3114
+ Structure is documented below.
3115
+ """
3116
+ return pulumi.get(self, "certificate_provider_instance")
3117
+
3118
+ @certificate_provider_instance.setter
3119
+ def certificate_provider_instance(self, value: Optional[pulumi.Input['ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgs']]):
3120
+ pulumi.set(self, "certificate_provider_instance", value)
3121
+
3122
+ @property
3123
+ @pulumi.getter(name="grpcEndpoint")
3124
+ def grpc_endpoint(self) -> Optional[pulumi.Input['ClientTlsPolicyServerValidationCaGrpcEndpointArgs']]:
3125
+ """
3126
+ gRPC specific configuration to access the gRPC server to obtain the cert and private key.
3127
+ Structure is documented below.
3128
+ """
3129
+ return pulumi.get(self, "grpc_endpoint")
3130
+
3131
+ @grpc_endpoint.setter
3132
+ def grpc_endpoint(self, value: Optional[pulumi.Input['ClientTlsPolicyServerValidationCaGrpcEndpointArgs']]):
3133
+ pulumi.set(self, "grpc_endpoint", value)
3134
+
3135
+
3136
+ if not MYPY:
3137
+ class ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgsDict(TypedDict):
3138
+ plugin_instance: pulumi.Input[str]
3139
+ """
3140
+ Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance.
3141
+ """
3142
+ elif False:
3143
+ ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgsDict: TypeAlias = Mapping[str, Any]
3144
+
3145
+ @pulumi.input_type
3146
+ class ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgs:
3147
+ def __init__(__self__, *,
3148
+ plugin_instance: pulumi.Input[str]):
3149
+ """
3150
+ :param pulumi.Input[str] plugin_instance: Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance.
3151
+ """
3152
+ pulumi.set(__self__, "plugin_instance", plugin_instance)
2380
3153
 
2381
3154
  @property
2382
3155
  @pulumi.getter(name="pluginInstance")
@@ -2392,188 +3165,459 @@ class ClientTlsPolicyClientCertificateCertificateProviderInstanceArgs:
2392
3165
 
2393
3166
 
2394
3167
  if not MYPY:
2395
- class ClientTlsPolicyClientCertificateGrpcEndpointArgsDict(TypedDict):
3168
+ class ClientTlsPolicyServerValidationCaGrpcEndpointArgsDict(TypedDict):
2396
3169
  target_uri: pulumi.Input[str]
2397
3170
  """
2398
- The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
3171
+ The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
3172
+ """
3173
+ elif False:
3174
+ ClientTlsPolicyServerValidationCaGrpcEndpointArgsDict: TypeAlias = Mapping[str, Any]
3175
+
3176
+ @pulumi.input_type
3177
+ class ClientTlsPolicyServerValidationCaGrpcEndpointArgs:
3178
+ def __init__(__self__, *,
3179
+ target_uri: pulumi.Input[str]):
3180
+ """
3181
+ :param pulumi.Input[str] target_uri: The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
3182
+ """
3183
+ pulumi.set(__self__, "target_uri", target_uri)
3184
+
3185
+ @property
3186
+ @pulumi.getter(name="targetUri")
3187
+ def target_uri(self) -> pulumi.Input[str]:
3188
+ """
3189
+ The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
3190
+ """
3191
+ return pulumi.get(self, "target_uri")
3192
+
3193
+ @target_uri.setter
3194
+ def target_uri(self, value: pulumi.Input[str]):
3195
+ pulumi.set(self, "target_uri", value)
3196
+
3197
+
3198
+ if not MYPY:
3199
+ class InterceptDeploymentGroupConnectedEndpointGroupArgsDict(TypedDict):
3200
+ name: NotRequired[pulumi.Input[str]]
3201
+ """
3202
+ (Output)
3203
+ The connected endpoint group's resource name, for example:
3204
+ `projects/123456789/locations/global/interceptEndpointGroups/my-eg`.
3205
+ See https://google.aip.dev/124.
3206
+ """
3207
+ elif False:
3208
+ InterceptDeploymentGroupConnectedEndpointGroupArgsDict: TypeAlias = Mapping[str, Any]
3209
+
3210
+ @pulumi.input_type
3211
+ class InterceptDeploymentGroupConnectedEndpointGroupArgs:
3212
+ def __init__(__self__, *,
3213
+ name: Optional[pulumi.Input[str]] = None):
3214
+ """
3215
+ :param pulumi.Input[str] name: (Output)
3216
+ The connected endpoint group's resource name, for example:
3217
+ `projects/123456789/locations/global/interceptEndpointGroups/my-eg`.
3218
+ See https://google.aip.dev/124.
3219
+ """
3220
+ if name is not None:
3221
+ pulumi.set(__self__, "name", name)
3222
+
3223
+ @property
3224
+ @pulumi.getter
3225
+ def name(self) -> Optional[pulumi.Input[str]]:
3226
+ """
3227
+ (Output)
3228
+ The connected endpoint group's resource name, for example:
3229
+ `projects/123456789/locations/global/interceptEndpointGroups/my-eg`.
3230
+ See https://google.aip.dev/124.
3231
+ """
3232
+ return pulumi.get(self, "name")
3233
+
3234
+ @name.setter
3235
+ def name(self, value: Optional[pulumi.Input[str]]):
3236
+ pulumi.set(self, "name", value)
3237
+
3238
+
3239
+ if not MYPY:
3240
+ class InterceptDeploymentGroupLocationArgsDict(TypedDict):
3241
+ location: NotRequired[pulumi.Input[str]]
3242
+ """
3243
+ The cloud location of the deployment group, currently restricted to `global`.
3244
+ """
3245
+ state: NotRequired[pulumi.Input[str]]
3246
+ """
3247
+ (Output)
3248
+ The current state of the association in this location.
3249
+ Possible values:
3250
+ STATE_UNSPECIFIED
3251
+ ACTIVE
3252
+ OUT_OF_SYNC
3253
+ """
3254
+ elif False:
3255
+ InterceptDeploymentGroupLocationArgsDict: TypeAlias = Mapping[str, Any]
3256
+
3257
+ @pulumi.input_type
3258
+ class InterceptDeploymentGroupLocationArgs:
3259
+ def __init__(__self__, *,
3260
+ location: Optional[pulumi.Input[str]] = None,
3261
+ state: Optional[pulumi.Input[str]] = None):
3262
+ """
3263
+ :param pulumi.Input[str] location: The cloud location of the deployment group, currently restricted to `global`.
3264
+ :param pulumi.Input[str] state: (Output)
3265
+ The current state of the association in this location.
3266
+ Possible values:
3267
+ STATE_UNSPECIFIED
3268
+ ACTIVE
3269
+ OUT_OF_SYNC
3270
+ """
3271
+ if location is not None:
3272
+ pulumi.set(__self__, "location", location)
3273
+ if state is not None:
3274
+ pulumi.set(__self__, "state", state)
3275
+
3276
+ @property
3277
+ @pulumi.getter
3278
+ def location(self) -> Optional[pulumi.Input[str]]:
3279
+ """
3280
+ The cloud location of the deployment group, currently restricted to `global`.
3281
+ """
3282
+ return pulumi.get(self, "location")
3283
+
3284
+ @location.setter
3285
+ def location(self, value: Optional[pulumi.Input[str]]):
3286
+ pulumi.set(self, "location", value)
3287
+
3288
+ @property
3289
+ @pulumi.getter
3290
+ def state(self) -> Optional[pulumi.Input[str]]:
3291
+ """
3292
+ (Output)
3293
+ The current state of the association in this location.
3294
+ Possible values:
3295
+ STATE_UNSPECIFIED
3296
+ ACTIVE
3297
+ OUT_OF_SYNC
3298
+ """
3299
+ return pulumi.get(self, "state")
3300
+
3301
+ @state.setter
3302
+ def state(self, value: Optional[pulumi.Input[str]]):
3303
+ pulumi.set(self, "state", value)
3304
+
3305
+
3306
+ if not MYPY:
3307
+ class InterceptEndpointGroupAssociationArgsDict(TypedDict):
3308
+ name: NotRequired[pulumi.Input[str]]
3309
+ """
3310
+ (Output)
3311
+ The connected deployment group's resource name, for example:
3312
+ `projects/123456789/locations/global/interceptDeploymentGroups/my-dg`.
3313
+ See https://google.aip.dev/124.
3314
+ """
3315
+ network: NotRequired[pulumi.Input[str]]
3316
+ """
3317
+ (Output)
3318
+ The associated network, for example:
3319
+ projects/123456789/global/networks/my-network.
3320
+ See https://google.aip.dev/124.
3321
+ """
3322
+ state: NotRequired[pulumi.Input[str]]
3323
+ """
3324
+ (Output)
3325
+ The current state of the association in this location.
3326
+ Possible values:
3327
+ STATE_UNSPECIFIED
3328
+ ACTIVE
3329
+ OUT_OF_SYNC
3330
+ """
3331
+ elif False:
3332
+ InterceptEndpointGroupAssociationArgsDict: TypeAlias = Mapping[str, Any]
3333
+
3334
+ @pulumi.input_type
3335
+ class InterceptEndpointGroupAssociationArgs:
3336
+ def __init__(__self__, *,
3337
+ name: Optional[pulumi.Input[str]] = None,
3338
+ network: Optional[pulumi.Input[str]] = None,
3339
+ state: Optional[pulumi.Input[str]] = None):
3340
+ """
3341
+ :param pulumi.Input[str] name: (Output)
3342
+ The connected deployment group's resource name, for example:
3343
+ `projects/123456789/locations/global/interceptDeploymentGroups/my-dg`.
3344
+ See https://google.aip.dev/124.
3345
+ :param pulumi.Input[str] network: (Output)
3346
+ The associated network, for example:
3347
+ projects/123456789/global/networks/my-network.
3348
+ See https://google.aip.dev/124.
3349
+ :param pulumi.Input[str] state: (Output)
3350
+ The current state of the association in this location.
3351
+ Possible values:
3352
+ STATE_UNSPECIFIED
3353
+ ACTIVE
3354
+ OUT_OF_SYNC
3355
+ """
3356
+ if name is not None:
3357
+ pulumi.set(__self__, "name", name)
3358
+ if network is not None:
3359
+ pulumi.set(__self__, "network", network)
3360
+ if state is not None:
3361
+ pulumi.set(__self__, "state", state)
3362
+
3363
+ @property
3364
+ @pulumi.getter
3365
+ def name(self) -> Optional[pulumi.Input[str]]:
3366
+ """
3367
+ (Output)
3368
+ The connected deployment group's resource name, for example:
3369
+ `projects/123456789/locations/global/interceptDeploymentGroups/my-dg`.
3370
+ See https://google.aip.dev/124.
2399
3371
  """
2400
- elif False:
2401
- ClientTlsPolicyClientCertificateGrpcEndpointArgsDict: TypeAlias = Mapping[str, Any]
3372
+ return pulumi.get(self, "name")
2402
3373
 
2403
- @pulumi.input_type
2404
- class ClientTlsPolicyClientCertificateGrpcEndpointArgs:
2405
- def __init__(__self__, *,
2406
- target_uri: pulumi.Input[str]):
3374
+ @name.setter
3375
+ def name(self, value: Optional[pulumi.Input[str]]):
3376
+ pulumi.set(self, "name", value)
3377
+
3378
+ @property
3379
+ @pulumi.getter
3380
+ def network(self) -> Optional[pulumi.Input[str]]:
2407
3381
  """
2408
- :param pulumi.Input[str] target_uri: The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
3382
+ (Output)
3383
+ The associated network, for example:
3384
+ projects/123456789/global/networks/my-network.
3385
+ See https://google.aip.dev/124.
2409
3386
  """
2410
- pulumi.set(__self__, "target_uri", target_uri)
3387
+ return pulumi.get(self, "network")
3388
+
3389
+ @network.setter
3390
+ def network(self, value: Optional[pulumi.Input[str]]):
3391
+ pulumi.set(self, "network", value)
2411
3392
 
2412
3393
  @property
2413
- @pulumi.getter(name="targetUri")
2414
- def target_uri(self) -> pulumi.Input[str]:
3394
+ @pulumi.getter
3395
+ def state(self) -> Optional[pulumi.Input[str]]:
2415
3396
  """
2416
- The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
3397
+ (Output)
3398
+ The current state of the association in this location.
3399
+ Possible values:
3400
+ STATE_UNSPECIFIED
3401
+ ACTIVE
3402
+ OUT_OF_SYNC
2417
3403
  """
2418
- return pulumi.get(self, "target_uri")
3404
+ return pulumi.get(self, "state")
2419
3405
 
2420
- @target_uri.setter
2421
- def target_uri(self, value: pulumi.Input[str]):
2422
- pulumi.set(self, "target_uri", value)
3406
+ @state.setter
3407
+ def state(self, value: Optional[pulumi.Input[str]]):
3408
+ pulumi.set(self, "state", value)
2423
3409
 
2424
3410
 
2425
3411
  if not MYPY:
2426
- class ClientTlsPolicyServerValidationCaArgsDict(TypedDict):
2427
- certificate_provider_instance: NotRequired[pulumi.Input['ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgsDict']]
3412
+ class InterceptEndpointGroupAssociationLocationArgsDict(TypedDict):
3413
+ location: NotRequired[pulumi.Input[str]]
2428
3414
  """
2429
- The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
2430
- Structure is documented below.
3415
+ The cloud location of the association, currently restricted to `global`.
3416
+
3417
+
3418
+ - - -
2431
3419
  """
2432
- grpc_endpoint: NotRequired[pulumi.Input['ClientTlsPolicyServerValidationCaGrpcEndpointArgsDict']]
3420
+ state: NotRequired[pulumi.Input[str]]
2433
3421
  """
2434
- gRPC specific configuration to access the gRPC server to obtain the cert and private key.
2435
- Structure is documented below.
3422
+ (Output)
3423
+ The current state of the association in this location.
3424
+ Possible values:
3425
+ STATE_UNSPECIFIED
3426
+ ACTIVE
3427
+ OUT_OF_SYNC
2436
3428
  """
2437
3429
  elif False:
2438
- ClientTlsPolicyServerValidationCaArgsDict: TypeAlias = Mapping[str, Any]
3430
+ InterceptEndpointGroupAssociationLocationArgsDict: TypeAlias = Mapping[str, Any]
2439
3431
 
2440
3432
  @pulumi.input_type
2441
- class ClientTlsPolicyServerValidationCaArgs:
3433
+ class InterceptEndpointGroupAssociationLocationArgs:
2442
3434
  def __init__(__self__, *,
2443
- certificate_provider_instance: Optional[pulumi.Input['ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgs']] = None,
2444
- grpc_endpoint: Optional[pulumi.Input['ClientTlsPolicyServerValidationCaGrpcEndpointArgs']] = None):
3435
+ location: Optional[pulumi.Input[str]] = None,
3436
+ state: Optional[pulumi.Input[str]] = None):
2445
3437
  """
2446
- :param pulumi.Input['ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgs'] certificate_provider_instance: The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
2447
- Structure is documented below.
2448
- :param pulumi.Input['ClientTlsPolicyServerValidationCaGrpcEndpointArgs'] grpc_endpoint: gRPC specific configuration to access the gRPC server to obtain the cert and private key.
2449
- Structure is documented below.
3438
+ :param pulumi.Input[str] location: The cloud location of the association, currently restricted to `global`.
3439
+
3440
+
3441
+ - - -
3442
+ :param pulumi.Input[str] state: (Output)
3443
+ The current state of the association in this location.
3444
+ Possible values:
3445
+ STATE_UNSPECIFIED
3446
+ ACTIVE
3447
+ OUT_OF_SYNC
2450
3448
  """
2451
- if certificate_provider_instance is not None:
2452
- pulumi.set(__self__, "certificate_provider_instance", certificate_provider_instance)
2453
- if grpc_endpoint is not None:
2454
- pulumi.set(__self__, "grpc_endpoint", grpc_endpoint)
3449
+ if location is not None:
3450
+ pulumi.set(__self__, "location", location)
3451
+ if state is not None:
3452
+ pulumi.set(__self__, "state", state)
2455
3453
 
2456
3454
  @property
2457
- @pulumi.getter(name="certificateProviderInstance")
2458
- def certificate_provider_instance(self) -> Optional[pulumi.Input['ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgs']]:
3455
+ @pulumi.getter
3456
+ def location(self) -> Optional[pulumi.Input[str]]:
2459
3457
  """
2460
- The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
2461
- Structure is documented below.
3458
+ The cloud location of the association, currently restricted to `global`.
3459
+
3460
+
3461
+ - - -
2462
3462
  """
2463
- return pulumi.get(self, "certificate_provider_instance")
3463
+ return pulumi.get(self, "location")
2464
3464
 
2465
- @certificate_provider_instance.setter
2466
- def certificate_provider_instance(self, value: Optional[pulumi.Input['ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgs']]):
2467
- pulumi.set(self, "certificate_provider_instance", value)
3465
+ @location.setter
3466
+ def location(self, value: Optional[pulumi.Input[str]]):
3467
+ pulumi.set(self, "location", value)
2468
3468
 
2469
3469
  @property
2470
- @pulumi.getter(name="grpcEndpoint")
2471
- def grpc_endpoint(self) -> Optional[pulumi.Input['ClientTlsPolicyServerValidationCaGrpcEndpointArgs']]:
3470
+ @pulumi.getter
3471
+ def state(self) -> Optional[pulumi.Input[str]]:
2472
3472
  """
2473
- gRPC specific configuration to access the gRPC server to obtain the cert and private key.
2474
- Structure is documented below.
3473
+ (Output)
3474
+ The current state of the association in this location.
3475
+ Possible values:
3476
+ STATE_UNSPECIFIED
3477
+ ACTIVE
3478
+ OUT_OF_SYNC
2475
3479
  """
2476
- return pulumi.get(self, "grpc_endpoint")
3480
+ return pulumi.get(self, "state")
2477
3481
 
2478
- @grpc_endpoint.setter
2479
- def grpc_endpoint(self, value: Optional[pulumi.Input['ClientTlsPolicyServerValidationCaGrpcEndpointArgs']]):
2480
- pulumi.set(self, "grpc_endpoint", value)
3482
+ @state.setter
3483
+ def state(self, value: Optional[pulumi.Input[str]]):
3484
+ pulumi.set(self, "state", value)
2481
3485
 
2482
3486
 
2483
3487
  if not MYPY:
2484
- class ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgsDict(TypedDict):
2485
- plugin_instance: pulumi.Input[str]
3488
+ class InterceptEndpointGroupAssociationLocationsDetailArgsDict(TypedDict):
3489
+ location: NotRequired[pulumi.Input[str]]
2486
3490
  """
2487
- Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance.
3491
+ The cloud location of the association, currently restricted to `global`.
3492
+
3493
+
3494
+ - - -
3495
+ """
3496
+ state: NotRequired[pulumi.Input[str]]
3497
+ """
3498
+ (Output)
3499
+ The current state of the association in this location.
3500
+ Possible values:
3501
+ STATE_UNSPECIFIED
3502
+ ACTIVE
3503
+ OUT_OF_SYNC
2488
3504
  """
2489
3505
  elif False:
2490
- ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgsDict: TypeAlias = Mapping[str, Any]
3506
+ InterceptEndpointGroupAssociationLocationsDetailArgsDict: TypeAlias = Mapping[str, Any]
2491
3507
 
2492
3508
  @pulumi.input_type
2493
- class ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgs:
3509
+ class InterceptEndpointGroupAssociationLocationsDetailArgs:
2494
3510
  def __init__(__self__, *,
2495
- plugin_instance: pulumi.Input[str]):
3511
+ location: Optional[pulumi.Input[str]] = None,
3512
+ state: Optional[pulumi.Input[str]] = None):
2496
3513
  """
2497
- :param pulumi.Input[str] plugin_instance: Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance.
3514
+ :param pulumi.Input[str] location: The cloud location of the association, currently restricted to `global`.
3515
+
3516
+
3517
+ - - -
3518
+ :param pulumi.Input[str] state: (Output)
3519
+ The current state of the association in this location.
3520
+ Possible values:
3521
+ STATE_UNSPECIFIED
3522
+ ACTIVE
3523
+ OUT_OF_SYNC
2498
3524
  """
2499
- pulumi.set(__self__, "plugin_instance", plugin_instance)
3525
+ if location is not None:
3526
+ pulumi.set(__self__, "location", location)
3527
+ if state is not None:
3528
+ pulumi.set(__self__, "state", state)
2500
3529
 
2501
3530
  @property
2502
- @pulumi.getter(name="pluginInstance")
2503
- def plugin_instance(self) -> pulumi.Input[str]:
2504
- """
2505
- Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance.
3531
+ @pulumi.getter
3532
+ def location(self) -> Optional[pulumi.Input[str]]:
2506
3533
  """
2507
- return pulumi.get(self, "plugin_instance")
2508
-
2509
- @plugin_instance.setter
2510
- def plugin_instance(self, value: pulumi.Input[str]):
2511
- pulumi.set(self, "plugin_instance", value)
3534
+ The cloud location of the association, currently restricted to `global`.
2512
3535
 
2513
3536
 
2514
- if not MYPY:
2515
- class ClientTlsPolicyServerValidationCaGrpcEndpointArgsDict(TypedDict):
2516
- target_uri: pulumi.Input[str]
2517
- """
2518
- The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
3537
+ - - -
2519
3538
  """
2520
- elif False:
2521
- ClientTlsPolicyServerValidationCaGrpcEndpointArgsDict: TypeAlias = Mapping[str, Any]
3539
+ return pulumi.get(self, "location")
2522
3540
 
2523
- @pulumi.input_type
2524
- class ClientTlsPolicyServerValidationCaGrpcEndpointArgs:
2525
- def __init__(__self__, *,
2526
- target_uri: pulumi.Input[str]):
2527
- """
2528
- :param pulumi.Input[str] target_uri: The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
2529
- """
2530
- pulumi.set(__self__, "target_uri", target_uri)
3541
+ @location.setter
3542
+ def location(self, value: Optional[pulumi.Input[str]]):
3543
+ pulumi.set(self, "location", value)
2531
3544
 
2532
3545
  @property
2533
- @pulumi.getter(name="targetUri")
2534
- def target_uri(self) -> pulumi.Input[str]:
3546
+ @pulumi.getter
3547
+ def state(self) -> Optional[pulumi.Input[str]]:
2535
3548
  """
2536
- The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
3549
+ (Output)
3550
+ The current state of the association in this location.
3551
+ Possible values:
3552
+ STATE_UNSPECIFIED
3553
+ ACTIVE
3554
+ OUT_OF_SYNC
2537
3555
  """
2538
- return pulumi.get(self, "target_uri")
3556
+ return pulumi.get(self, "state")
2539
3557
 
2540
- @target_uri.setter
2541
- def target_uri(self, value: pulumi.Input[str]):
2542
- pulumi.set(self, "target_uri", value)
3558
+ @state.setter
3559
+ def state(self, value: Optional[pulumi.Input[str]]):
3560
+ pulumi.set(self, "state", value)
2543
3561
 
2544
3562
 
2545
3563
  if not MYPY:
2546
- class InterceptDeploymentGroupConnectedEndpointGroupArgsDict(TypedDict):
3564
+ class InterceptEndpointGroupConnectedDeploymentGroupArgsDict(TypedDict):
3565
+ locations: NotRequired[pulumi.Input[Sequence[pulumi.Input['InterceptEndpointGroupConnectedDeploymentGroupLocationArgsDict']]]]
3566
+ """
3567
+ (Output)
3568
+ The list of locations where the deployment group is present.
3569
+ Structure is documented below.
3570
+ """
2547
3571
  name: NotRequired[pulumi.Input[str]]
2548
3572
  """
2549
3573
  (Output)
2550
- The connected endpoint group's resource name, for example:
2551
- `projects/123456789/locations/global/interceptEndpointGroups/my-eg`.
3574
+ The connected deployment group's resource name, for example:
3575
+ `projects/123456789/locations/global/interceptDeploymentGroups/my-dg`.
2552
3576
  See https://google.aip.dev/124.
2553
3577
  """
2554
3578
  elif False:
2555
- InterceptDeploymentGroupConnectedEndpointGroupArgsDict: TypeAlias = Mapping[str, Any]
3579
+ InterceptEndpointGroupConnectedDeploymentGroupArgsDict: TypeAlias = Mapping[str, Any]
2556
3580
 
2557
3581
  @pulumi.input_type
2558
- class InterceptDeploymentGroupConnectedEndpointGroupArgs:
3582
+ class InterceptEndpointGroupConnectedDeploymentGroupArgs:
2559
3583
  def __init__(__self__, *,
3584
+ locations: Optional[pulumi.Input[Sequence[pulumi.Input['InterceptEndpointGroupConnectedDeploymentGroupLocationArgs']]]] = None,
2560
3585
  name: Optional[pulumi.Input[str]] = None):
2561
3586
  """
3587
+ :param pulumi.Input[Sequence[pulumi.Input['InterceptEndpointGroupConnectedDeploymentGroupLocationArgs']]] locations: (Output)
3588
+ The list of locations where the deployment group is present.
3589
+ Structure is documented below.
2562
3590
  :param pulumi.Input[str] name: (Output)
2563
- The connected endpoint group's resource name, for example:
2564
- `projects/123456789/locations/global/interceptEndpointGroups/my-eg`.
3591
+ The connected deployment group's resource name, for example:
3592
+ `projects/123456789/locations/global/interceptDeploymentGroups/my-dg`.
2565
3593
  See https://google.aip.dev/124.
2566
3594
  """
3595
+ if locations is not None:
3596
+ pulumi.set(__self__, "locations", locations)
2567
3597
  if name is not None:
2568
3598
  pulumi.set(__self__, "name", name)
2569
3599
 
3600
+ @property
3601
+ @pulumi.getter
3602
+ def locations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterceptEndpointGroupConnectedDeploymentGroupLocationArgs']]]]:
3603
+ """
3604
+ (Output)
3605
+ The list of locations where the deployment group is present.
3606
+ Structure is documented below.
3607
+ """
3608
+ return pulumi.get(self, "locations")
3609
+
3610
+ @locations.setter
3611
+ def locations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterceptEndpointGroupConnectedDeploymentGroupLocationArgs']]]]):
3612
+ pulumi.set(self, "locations", value)
3613
+
2570
3614
  @property
2571
3615
  @pulumi.getter
2572
3616
  def name(self) -> Optional[pulumi.Input[str]]:
2573
3617
  """
2574
3618
  (Output)
2575
- The connected endpoint group's resource name, for example:
2576
- `projects/123456789/locations/global/interceptEndpointGroups/my-eg`.
3619
+ The connected deployment group's resource name, for example:
3620
+ `projects/123456789/locations/global/interceptDeploymentGroups/my-dg`.
2577
3621
  See https://google.aip.dev/124.
2578
3622
  """
2579
3623
  return pulumi.get(self, "name")
@@ -2584,13 +3628,10 @@ class InterceptDeploymentGroupConnectedEndpointGroupArgs:
2584
3628
 
2585
3629
 
2586
3630
  if not MYPY:
2587
- class InterceptEndpointGroupAssociationLocationsDetailArgsDict(TypedDict):
3631
+ class InterceptEndpointGroupConnectedDeploymentGroupLocationArgsDict(TypedDict):
2588
3632
  location: NotRequired[pulumi.Input[str]]
2589
3633
  """
2590
- The cloud location of the association, currently restricted to `global`.
2591
-
2592
-
2593
- - - -
3634
+ The cloud location of the endpoint group, currently restricted to `global`.
2594
3635
  """
2595
3636
  state: NotRequired[pulumi.Input[str]]
2596
3637
  """
@@ -2602,18 +3643,15 @@ if not MYPY:
2602
3643
  OUT_OF_SYNC
2603
3644
  """
2604
3645
  elif False:
2605
- InterceptEndpointGroupAssociationLocationsDetailArgsDict: TypeAlias = Mapping[str, Any]
3646
+ InterceptEndpointGroupConnectedDeploymentGroupLocationArgsDict: TypeAlias = Mapping[str, Any]
2606
3647
 
2607
3648
  @pulumi.input_type
2608
- class InterceptEndpointGroupAssociationLocationsDetailArgs:
3649
+ class InterceptEndpointGroupConnectedDeploymentGroupLocationArgs:
2609
3650
  def __init__(__self__, *,
2610
3651
  location: Optional[pulumi.Input[str]] = None,
2611
3652
  state: Optional[pulumi.Input[str]] = None):
2612
3653
  """
2613
- :param pulumi.Input[str] location: The cloud location of the association, currently restricted to `global`.
2614
-
2615
-
2616
- - - -
3654
+ :param pulumi.Input[str] location: The cloud location of the endpoint group, currently restricted to `global`.
2617
3655
  :param pulumi.Input[str] state: (Output)
2618
3656
  The current state of the association in this location.
2619
3657
  Possible values:
@@ -2630,10 +3668,7 @@ class InterceptEndpointGroupAssociationLocationsDetailArgs:
2630
3668
  @pulumi.getter
2631
3669
  def location(self) -> Optional[pulumi.Input[str]]:
2632
3670
  """
2633
- The cloud location of the association, currently restricted to `global`.
2634
-
2635
-
2636
- - - -
3671
+ The cloud location of the endpoint group, currently restricted to `global`.
2637
3672
  """
2638
3673
  return pulumi.get(self, "location")
2639
3674