pulumi-gcp 8.22.0a1741790977__py3-none-any.whl → 8.23.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 (124) hide show
  1. pulumi_gcp/__init__.py +64 -0
  2. pulumi_gcp/alloydb/_inputs.py +93 -1
  3. pulumi_gcp/alloydb/outputs.py +128 -2
  4. pulumi_gcp/applicationintegration/client.py +18 -24
  5. pulumi_gcp/backupdisasterrecovery/_inputs.py +3 -3
  6. pulumi_gcp/backupdisasterrecovery/outputs.py +4 -4
  7. pulumi_gcp/bigquery/_inputs.py +20 -0
  8. pulumi_gcp/bigquery/outputs.py +12 -0
  9. pulumi_gcp/bigquery/table.py +61 -0
  10. pulumi_gcp/bigtable/table.py +7 -7
  11. pulumi_gcp/certificatemanager/certificate.py +53 -7
  12. pulumi_gcp/certificatemanager/outputs.py +8 -2
  13. pulumi_gcp/clouddeploy/_inputs.py +20 -0
  14. pulumi_gcp/clouddeploy/outputs.py +15 -1
  15. pulumi_gcp/cloudfunctions/function.py +11 -11
  16. pulumi_gcp/cloudfunctionsv2/function.py +24 -24
  17. pulumi_gcp/cloudidentity/get_group_transitive_memberships.py +41 -2
  18. pulumi_gcp/cloudidentity/outputs.py +18 -38
  19. pulumi_gcp/compute/__init__.py +1 -0
  20. pulumi_gcp/compute/_inputs.py +600 -17
  21. pulumi_gcp/compute/backend_service.py +195 -7
  22. pulumi_gcp/compute/disk.py +108 -0
  23. pulumi_gcp/compute/firewall_policy.py +20 -0
  24. pulumi_gcp/compute/firewall_policy_association.py +28 -2
  25. pulumi_gcp/compute/get_backend_service.py +12 -1
  26. pulumi_gcp/compute/get_disk.py +23 -1
  27. pulumi_gcp/compute/get_region_disk.py +23 -1
  28. pulumi_gcp/compute/get_region_ssl_policy.py +203 -0
  29. pulumi_gcp/compute/outputs.py +623 -23
  30. pulumi_gcp/compute/region_backend_service.py +193 -7
  31. pulumi_gcp/compute/region_disk.py +114 -0
  32. pulumi_gcp/compute/region_network_endpoint_group.py +2 -2
  33. pulumi_gcp/compute/shared_vpc_service_project.py +0 -4
  34. pulumi_gcp/compute/subnetwork.py +256 -1
  35. pulumi_gcp/compute/target_https_proxy.py +7 -7
  36. pulumi_gcp/config/__init__.pyi +2 -0
  37. pulumi_gcp/config/vars.py +4 -0
  38. pulumi_gcp/container/_inputs.py +6 -6
  39. pulumi_gcp/container/get_attached_versions.py +2 -2
  40. pulumi_gcp/container/outputs.py +8 -8
  41. pulumi_gcp/dataform/repository.py +49 -0
  42. pulumi_gcp/dataproc/get_metastore_service.py +26 -4
  43. pulumi_gcp/dataproc/metastore_federation.py +56 -0
  44. pulumi_gcp/dataproc/metastore_service.py +58 -2
  45. pulumi_gcp/datastream/_inputs.py +273 -0
  46. pulumi_gcp/datastream/connection_profile.py +54 -2
  47. pulumi_gcp/datastream/outputs.py +224 -0
  48. pulumi_gcp/eventarc/__init__.py +2 -0
  49. pulumi_gcp/eventarc/_inputs.py +1798 -0
  50. pulumi_gcp/eventarc/channel.py +85 -93
  51. pulumi_gcp/eventarc/google_api_source.py +997 -0
  52. pulumi_gcp/eventarc/outputs.py +1378 -0
  53. pulumi_gcp/eventarc/pipeline.py +1596 -0
  54. pulumi_gcp/firebase/__init__.py +1 -0
  55. pulumi_gcp/firebase/_inputs.py +154 -0
  56. pulumi_gcp/firebase/app_hosting_backend.py +1303 -0
  57. pulumi_gcp/firebase/data_connect_service.py +40 -2
  58. pulumi_gcp/firebase/hosting_version.py +2 -2
  59. pulumi_gcp/firebase/outputs.py +127 -0
  60. pulumi_gcp/iam/__init__.py +2 -0
  61. pulumi_gcp/iam/_inputs.py +51 -18
  62. pulumi_gcp/iam/folders_policy_binding.py +10 -26
  63. pulumi_gcp/iam/oauth_client.py +979 -0
  64. pulumi_gcp/iam/oauth_client_credential.py +641 -0
  65. pulumi_gcp/iam/organizations_policy_binding.py +8 -24
  66. pulumi_gcp/iam/outputs.py +34 -12
  67. pulumi_gcp/iam/principal_access_boundary_policy.py +58 -22
  68. pulumi_gcp/iam/projects_policy_binding.py +8 -24
  69. pulumi_gcp/kms/crypto_key_version.py +14 -7
  70. pulumi_gcp/kms/get_key_rings.py +39 -2
  71. pulumi_gcp/managedkafka/__init__.py +2 -0
  72. pulumi_gcp/managedkafka/_inputs.py +263 -0
  73. pulumi_gcp/managedkafka/connect_cluster.py +795 -0
  74. pulumi_gcp/managedkafka/connector.py +695 -0
  75. pulumi_gcp/managedkafka/outputs.py +248 -0
  76. pulumi_gcp/memorystore/instance.py +7 -7
  77. pulumi_gcp/monitoring/_inputs.py +15 -18
  78. pulumi_gcp/monitoring/alert_policy.py +46 -0
  79. pulumi_gcp/monitoring/outputs.py +10 -12
  80. pulumi_gcp/monitoring/uptime_check_config.py +2 -2
  81. pulumi_gcp/networksecurity/__init__.py +1 -0
  82. pulumi_gcp/networksecurity/_inputs.py +673 -18
  83. pulumi_gcp/networksecurity/backend_authentication_config.py +847 -0
  84. pulumi_gcp/networksecurity/gateway_security_policy.py +0 -7
  85. pulumi_gcp/networksecurity/intercept_deployment.py +178 -94
  86. pulumi_gcp/networksecurity/intercept_deployment_group.py +161 -77
  87. pulumi_gcp/networksecurity/intercept_endpoint_group.py +161 -66
  88. pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +137 -80
  89. pulumi_gcp/networksecurity/mirroring_deployment.py +200 -94
  90. pulumi_gcp/networksecurity/mirroring_deployment_group.py +181 -77
  91. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +185 -80
  92. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +165 -105
  93. pulumi_gcp/networksecurity/outputs.py +495 -12
  94. pulumi_gcp/networksecurity/tls_inspection_policy.py +14 -0
  95. pulumi_gcp/networkservices/endpoint_policy.py +12 -0
  96. pulumi_gcp/networkservices/gateway.py +242 -120
  97. pulumi_gcp/networkservices/grpc_route.py +12 -0
  98. pulumi_gcp/networkservices/http_route.py +16 -0
  99. pulumi_gcp/networkservices/mesh.py +16 -0
  100. pulumi_gcp/networkservices/service_binding.py +14 -0
  101. pulumi_gcp/networkservices/tcp_route.py +16 -0
  102. pulumi_gcp/networkservices/tls_route.py +12 -0
  103. pulumi_gcp/projects/__init__.py +2 -0
  104. pulumi_gcp/projects/get_iam_custom_role.py +198 -0
  105. pulumi_gcp/projects/get_iam_custom_roles.py +164 -0
  106. pulumi_gcp/projects/outputs.py +96 -0
  107. pulumi_gcp/provider.py +20 -0
  108. pulumi_gcp/pulumi-plugin.json +1 -1
  109. pulumi_gcp/servicenetworking/peered_dns_domain.py +4 -0
  110. pulumi_gcp/sql/outputs.py +8 -8
  111. pulumi_gcp/storage/_inputs.py +14 -6
  112. pulumi_gcp/storage/insights_report_config.py +121 -20
  113. pulumi_gcp/storage/outputs.py +7 -4
  114. pulumi_gcp/tpu/_inputs.py +21 -1
  115. pulumi_gcp/tpu/outputs.py +13 -1
  116. pulumi_gcp/tpu/v2_vm.py +2 -0
  117. pulumi_gcp/vmwareengine/_inputs.py +6 -0
  118. pulumi_gcp/vmwareengine/outputs.py +8 -0
  119. pulumi_gcp/workflows/workflow.py +75 -7
  120. pulumi_gcp/workstations/workstation_cluster.py +137 -1
  121. {pulumi_gcp-8.22.0a1741790977.dist-info → pulumi_gcp-8.23.0.dist-info}/METADATA +2 -2
  122. {pulumi_gcp-8.22.0a1741790977.dist-info → pulumi_gcp-8.23.0.dist-info}/RECORD +124 -113
  123. {pulumi_gcp-8.22.0a1741790977.dist-info → pulumi_gcp-8.23.0.dist-info}/WHEEL +1 -1
  124. {pulumi_gcp-8.22.0a1741790977.dist-info → pulumi_gcp-8.23.0.dist-info}/top_level.txt +0 -0
pulumi_gcp/__init__.py CHANGED
@@ -4946,6 +4946,14 @@ _utilities.register(
4946
4946
  "gcp:eventarc/channel:Channel": "Channel"
4947
4947
  }
4948
4948
  },
4949
+ {
4950
+ "pkg": "gcp",
4951
+ "mod": "eventarc/googleApiSource",
4952
+ "fqn": "pulumi_gcp.eventarc",
4953
+ "classes": {
4954
+ "gcp:eventarc/googleApiSource:GoogleApiSource": "GoogleApiSource"
4955
+ }
4956
+ },
4949
4957
  {
4950
4958
  "pkg": "gcp",
4951
4959
  "mod": "eventarc/googleChannelConfig",
@@ -4962,6 +4970,14 @@ _utilities.register(
4962
4970
  "gcp:eventarc/messageBus:MessageBus": "MessageBus"
4963
4971
  }
4964
4972
  },
4973
+ {
4974
+ "pkg": "gcp",
4975
+ "mod": "eventarc/pipeline",
4976
+ "fqn": "pulumi_gcp.eventarc",
4977
+ "classes": {
4978
+ "gcp:eventarc/pipeline:Pipeline": "Pipeline"
4979
+ }
4980
+ },
4965
4981
  {
4966
4982
  "pkg": "gcp",
4967
4983
  "mod": "eventarc/trigger",
@@ -5058,6 +5074,14 @@ _utilities.register(
5058
5074
  "gcp:firebase/appCheckServiceConfig:AppCheckServiceConfig": "AppCheckServiceConfig"
5059
5075
  }
5060
5076
  },
5077
+ {
5078
+ "pkg": "gcp",
5079
+ "mod": "firebase/appHostingBackend",
5080
+ "fqn": "pulumi_gcp.firebase",
5081
+ "classes": {
5082
+ "gcp:firebase/appHostingBackend:AppHostingBackend": "AppHostingBackend"
5083
+ }
5084
+ },
5061
5085
  {
5062
5086
  "pkg": "gcp",
5063
5087
  "mod": "firebase/appleApp",
@@ -5818,6 +5842,22 @@ _utilities.register(
5818
5842
  "gcp:iam/foldersPolicyBinding:FoldersPolicyBinding": "FoldersPolicyBinding"
5819
5843
  }
5820
5844
  },
5845
+ {
5846
+ "pkg": "gcp",
5847
+ "mod": "iam/oauthClient",
5848
+ "fqn": "pulumi_gcp.iam",
5849
+ "classes": {
5850
+ "gcp:iam/oauthClient:OauthClient": "OauthClient"
5851
+ }
5852
+ },
5853
+ {
5854
+ "pkg": "gcp",
5855
+ "mod": "iam/oauthClientCredential",
5856
+ "fqn": "pulumi_gcp.iam",
5857
+ "classes": {
5858
+ "gcp:iam/oauthClientCredential:OauthClientCredential": "OauthClientCredential"
5859
+ }
5860
+ },
5821
5861
  {
5822
5862
  "pkg": "gcp",
5823
5863
  "mod": "iam/organizationsPolicyBinding",
@@ -6554,6 +6594,22 @@ _utilities.register(
6554
6594
  "gcp:managedkafka/cluster:Cluster": "Cluster"
6555
6595
  }
6556
6596
  },
6597
+ {
6598
+ "pkg": "gcp",
6599
+ "mod": "managedkafka/connectCluster",
6600
+ "fqn": "pulumi_gcp.managedkafka",
6601
+ "classes": {
6602
+ "gcp:managedkafka/connectCluster:ConnectCluster": "ConnectCluster"
6603
+ }
6604
+ },
6605
+ {
6606
+ "pkg": "gcp",
6607
+ "mod": "managedkafka/connector",
6608
+ "fqn": "pulumi_gcp.managedkafka",
6609
+ "classes": {
6610
+ "gcp:managedkafka/connector:Connector": "Connector"
6611
+ }
6612
+ },
6557
6613
  {
6558
6614
  "pkg": "gcp",
6559
6615
  "mod": "managedkafka/topic",
@@ -6882,6 +6938,14 @@ _utilities.register(
6882
6938
  "gcp:networksecurity/authzPolicy:AuthzPolicy": "AuthzPolicy"
6883
6939
  }
6884
6940
  },
6941
+ {
6942
+ "pkg": "gcp",
6943
+ "mod": "networksecurity/backendAuthenticationConfig",
6944
+ "fqn": "pulumi_gcp.networksecurity",
6945
+ "classes": {
6946
+ "gcp:networksecurity/backendAuthenticationConfig:BackendAuthenticationConfig": "BackendAuthenticationConfig"
6947
+ }
6948
+ },
6885
6949
  {
6886
6950
  "pkg": "gcp",
6887
6951
  "mod": "networksecurity/clientTlsPolicy",
@@ -83,6 +83,8 @@ __all__ = [
83
83
  'InstanceObservabilityConfigArgsDict',
84
84
  'InstancePscInstanceConfigArgs',
85
85
  'InstancePscInstanceConfigArgsDict',
86
+ 'InstancePscInstanceConfigPscInterfaceConfigArgs',
87
+ 'InstancePscInstanceConfigPscInterfaceConfigArgsDict',
86
88
  'InstanceQueryInsightsConfigArgs',
87
89
  'InstanceQueryInsightsConfigArgsDict',
88
90
  'InstanceReadPoolConfigArgs',
@@ -1446,18 +1448,30 @@ if not MYPY:
1446
1448
  """
1447
1449
  Create an instance that allows connections from Private Service Connect endpoints to the instance.
1448
1450
  """
1451
+ service_owned_project_number: NotRequired[pulumi.Input[int]]
1452
+ """
1453
+ (Output)
1454
+ The project number that needs to be allowlisted on the network attachment to enable outbound connectivity, if the network attachment is configured to ACCEPT_MANUAL connections.
1455
+ In case the network attachment is configured to ACCEPT_AUTOMATIC, this project number does not need to be allowlisted explicitly.
1456
+ """
1449
1457
  elif False:
1450
1458
  ClusterPscConfigArgsDict: TypeAlias = Mapping[str, Any]
1451
1459
 
1452
1460
  @pulumi.input_type
1453
1461
  class ClusterPscConfigArgs:
1454
1462
  def __init__(__self__, *,
1455
- psc_enabled: Optional[pulumi.Input[bool]] = None):
1463
+ psc_enabled: Optional[pulumi.Input[bool]] = None,
1464
+ service_owned_project_number: Optional[pulumi.Input[int]] = None):
1456
1465
  """
1457
1466
  :param pulumi.Input[bool] psc_enabled: Create an instance that allows connections from Private Service Connect endpoints to the instance.
1467
+ :param pulumi.Input[int] service_owned_project_number: (Output)
1468
+ The project number that needs to be allowlisted on the network attachment to enable outbound connectivity, if the network attachment is configured to ACCEPT_MANUAL connections.
1469
+ In case the network attachment is configured to ACCEPT_AUTOMATIC, this project number does not need to be allowlisted explicitly.
1458
1470
  """
1459
1471
  if psc_enabled is not None:
1460
1472
  pulumi.set(__self__, "psc_enabled", psc_enabled)
1473
+ if service_owned_project_number is not None:
1474
+ pulumi.set(__self__, "service_owned_project_number", service_owned_project_number)
1461
1475
 
1462
1476
  @property
1463
1477
  @pulumi.getter(name="pscEnabled")
@@ -1471,6 +1485,20 @@ class ClusterPscConfigArgs:
1471
1485
  def psc_enabled(self, value: Optional[pulumi.Input[bool]]):
1472
1486
  pulumi.set(self, "psc_enabled", value)
1473
1487
 
1488
+ @property
1489
+ @pulumi.getter(name="serviceOwnedProjectNumber")
1490
+ def service_owned_project_number(self) -> Optional[pulumi.Input[int]]:
1491
+ """
1492
+ (Output)
1493
+ The project number that needs to be allowlisted on the network attachment to enable outbound connectivity, if the network attachment is configured to ACCEPT_MANUAL connections.
1494
+ In case the network attachment is configured to ACCEPT_AUTOMATIC, this project number does not need to be allowlisted explicitly.
1495
+ """
1496
+ return pulumi.get(self, "service_owned_project_number")
1497
+
1498
+ @service_owned_project_number.setter
1499
+ def service_owned_project_number(self, value: Optional[pulumi.Input[int]]):
1500
+ pulumi.set(self, "service_owned_project_number", value)
1501
+
1474
1502
 
1475
1503
  if not MYPY:
1476
1504
  class ClusterRestoreBackupSourceArgsDict(TypedDict):
@@ -2105,6 +2133,12 @@ if not MYPY:
2105
2133
  The DNS name of the instance for PSC connectivity.
2106
2134
  Name convention: <uid>.<uid>.<region>.alloydb-psc.goog
2107
2135
  """
2136
+ psc_interface_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstancePscInstanceConfigPscInterfaceConfigArgsDict']]]]
2137
+ """
2138
+ Configurations for setting up PSC interfaces attached to the instance
2139
+ which are used for outbound connectivity. Currently, AlloyDB supports only 0 or 1 PSC interface.
2140
+ Structure is documented below.
2141
+ """
2108
2142
  service_attachment_link: NotRequired[pulumi.Input[str]]
2109
2143
  """
2110
2144
  (Output)
@@ -2120,6 +2154,7 @@ class InstancePscInstanceConfigArgs:
2120
2154
  def __init__(__self__, *,
2121
2155
  allowed_consumer_projects: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2122
2156
  psc_dns_name: Optional[pulumi.Input[str]] = None,
2157
+ psc_interface_configs: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscInstanceConfigPscInterfaceConfigArgs']]]] = None,
2123
2158
  service_attachment_link: Optional[pulumi.Input[str]] = None):
2124
2159
  """
2125
2160
  :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_consumer_projects: List of consumer projects that are allowed to create PSC endpoints to service-attachments to this instance.
@@ -2127,6 +2162,9 @@ class InstancePscInstanceConfigArgs:
2127
2162
  :param pulumi.Input[str] psc_dns_name: (Output)
2128
2163
  The DNS name of the instance for PSC connectivity.
2129
2164
  Name convention: <uid>.<uid>.<region>.alloydb-psc.goog
2165
+ :param pulumi.Input[Sequence[pulumi.Input['InstancePscInstanceConfigPscInterfaceConfigArgs']]] psc_interface_configs: Configurations for setting up PSC interfaces attached to the instance
2166
+ which are used for outbound connectivity. Currently, AlloyDB supports only 0 or 1 PSC interface.
2167
+ Structure is documented below.
2130
2168
  :param pulumi.Input[str] service_attachment_link: (Output)
2131
2169
  The service attachment created when Private Service Connect (PSC) is enabled for the instance.
2132
2170
  The name of the resource will be in the format of
@@ -2136,6 +2174,8 @@ class InstancePscInstanceConfigArgs:
2136
2174
  pulumi.set(__self__, "allowed_consumer_projects", allowed_consumer_projects)
2137
2175
  if psc_dns_name is not None:
2138
2176
  pulumi.set(__self__, "psc_dns_name", psc_dns_name)
2177
+ if psc_interface_configs is not None:
2178
+ pulumi.set(__self__, "psc_interface_configs", psc_interface_configs)
2139
2179
  if service_attachment_link is not None:
2140
2180
  pulumi.set(__self__, "service_attachment_link", service_attachment_link)
2141
2181
 
@@ -2166,6 +2206,20 @@ class InstancePscInstanceConfigArgs:
2166
2206
  def psc_dns_name(self, value: Optional[pulumi.Input[str]]):
2167
2207
  pulumi.set(self, "psc_dns_name", value)
2168
2208
 
2209
+ @property
2210
+ @pulumi.getter(name="pscInterfaceConfigs")
2211
+ def psc_interface_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscInstanceConfigPscInterfaceConfigArgs']]]]:
2212
+ """
2213
+ Configurations for setting up PSC interfaces attached to the instance
2214
+ which are used for outbound connectivity. Currently, AlloyDB supports only 0 or 1 PSC interface.
2215
+ Structure is documented below.
2216
+ """
2217
+ return pulumi.get(self, "psc_interface_configs")
2218
+
2219
+ @psc_interface_configs.setter
2220
+ def psc_interface_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscInstanceConfigPscInterfaceConfigArgs']]]]):
2221
+ pulumi.set(self, "psc_interface_configs", value)
2222
+
2169
2223
  @property
2170
2224
  @pulumi.getter(name="serviceAttachmentLink")
2171
2225
  def service_attachment_link(self) -> Optional[pulumi.Input[str]]:
@@ -2182,6 +2236,44 @@ class InstancePscInstanceConfigArgs:
2182
2236
  pulumi.set(self, "service_attachment_link", value)
2183
2237
 
2184
2238
 
2239
+ if not MYPY:
2240
+ class InstancePscInstanceConfigPscInterfaceConfigArgsDict(TypedDict):
2241
+ network_attachment_resource: NotRequired[pulumi.Input[str]]
2242
+ """
2243
+ The network attachment resource created in the consumer project to which the PSC interface will be linked.
2244
+ This is of the format: "projects/${CONSUMER_PROJECT}/regions/${REGION}/networkAttachments/${NETWORK_ATTACHMENT_NAME}".
2245
+ The network attachment must be in the same region as the instance.
2246
+ """
2247
+ elif False:
2248
+ InstancePscInstanceConfigPscInterfaceConfigArgsDict: TypeAlias = Mapping[str, Any]
2249
+
2250
+ @pulumi.input_type
2251
+ class InstancePscInstanceConfigPscInterfaceConfigArgs:
2252
+ def __init__(__self__, *,
2253
+ network_attachment_resource: Optional[pulumi.Input[str]] = None):
2254
+ """
2255
+ :param pulumi.Input[str] network_attachment_resource: The network attachment resource created in the consumer project to which the PSC interface will be linked.
2256
+ This is of the format: "projects/${CONSUMER_PROJECT}/regions/${REGION}/networkAttachments/${NETWORK_ATTACHMENT_NAME}".
2257
+ The network attachment must be in the same region as the instance.
2258
+ """
2259
+ if network_attachment_resource is not None:
2260
+ pulumi.set(__self__, "network_attachment_resource", network_attachment_resource)
2261
+
2262
+ @property
2263
+ @pulumi.getter(name="networkAttachmentResource")
2264
+ def network_attachment_resource(self) -> Optional[pulumi.Input[str]]:
2265
+ """
2266
+ The network attachment resource created in the consumer project to which the PSC interface will be linked.
2267
+ This is of the format: "projects/${CONSUMER_PROJECT}/regions/${REGION}/networkAttachments/${NETWORK_ATTACHMENT_NAME}".
2268
+ The network attachment must be in the same region as the instance.
2269
+ """
2270
+ return pulumi.get(self, "network_attachment_resource")
2271
+
2272
+ @network_attachment_resource.setter
2273
+ def network_attachment_resource(self, value: Optional[pulumi.Input[str]]):
2274
+ pulumi.set(self, "network_attachment_resource", value)
2275
+
2276
+
2185
2277
  if not MYPY:
2186
2278
  class InstanceQueryInsightsConfigArgsDict(TypedDict):
2187
2279
  query_plans_per_minute: NotRequired[pulumi.Input[int]]
@@ -50,6 +50,7 @@ __all__ = [
50
50
  'InstanceNetworkConfigAuthorizedExternalNetwork',
51
51
  'InstanceObservabilityConfig',
52
52
  'InstancePscInstanceConfig',
53
+ 'InstancePscInstanceConfigPscInterfaceConfig',
53
54
  'InstanceQueryInsightsConfig',
54
55
  'InstanceReadPoolConfig',
55
56
  'GetClusterAutomatedBackupPolicyResult',
@@ -83,6 +84,7 @@ __all__ = [
83
84
  'GetInstanceNetworkConfigAuthorizedExternalNetworkResult',
84
85
  'GetInstanceObservabilityConfigResult',
85
86
  'GetInstancePscInstanceConfigResult',
87
+ 'GetInstancePscInstanceConfigPscInterfaceConfigResult',
86
88
  'GetInstanceQueryInsightsConfigResult',
87
89
  'GetInstanceReadPoolConfigResult',
88
90
  'GetLocationsLocationResult',
@@ -1241,6 +1243,8 @@ class ClusterPscConfig(dict):
1241
1243
  suggest = None
1242
1244
  if key == "pscEnabled":
1243
1245
  suggest = "psc_enabled"
1246
+ elif key == "serviceOwnedProjectNumber":
1247
+ suggest = "service_owned_project_number"
1244
1248
 
1245
1249
  if suggest:
1246
1250
  pulumi.log.warn(f"Key '{key}' not found in ClusterPscConfig. Access the value via the '{suggest}' property getter instead.")
@@ -1254,12 +1258,18 @@ class ClusterPscConfig(dict):
1254
1258
  return super().get(key, default)
1255
1259
 
1256
1260
  def __init__(__self__, *,
1257
- psc_enabled: Optional[bool] = None):
1261
+ psc_enabled: Optional[bool] = None,
1262
+ service_owned_project_number: Optional[int] = None):
1258
1263
  """
1259
1264
  :param bool psc_enabled: Create an instance that allows connections from Private Service Connect endpoints to the instance.
1265
+ :param int service_owned_project_number: (Output)
1266
+ The project number that needs to be allowlisted on the network attachment to enable outbound connectivity, if the network attachment is configured to ACCEPT_MANUAL connections.
1267
+ In case the network attachment is configured to ACCEPT_AUTOMATIC, this project number does not need to be allowlisted explicitly.
1260
1268
  """
1261
1269
  if psc_enabled is not None:
1262
1270
  pulumi.set(__self__, "psc_enabled", psc_enabled)
1271
+ if service_owned_project_number is not None:
1272
+ pulumi.set(__self__, "service_owned_project_number", service_owned_project_number)
1263
1273
 
1264
1274
  @property
1265
1275
  @pulumi.getter(name="pscEnabled")
@@ -1269,6 +1279,16 @@ class ClusterPscConfig(dict):
1269
1279
  """
1270
1280
  return pulumi.get(self, "psc_enabled")
1271
1281
 
1282
+ @property
1283
+ @pulumi.getter(name="serviceOwnedProjectNumber")
1284
+ def service_owned_project_number(self) -> Optional[int]:
1285
+ """
1286
+ (Output)
1287
+ The project number that needs to be allowlisted on the network attachment to enable outbound connectivity, if the network attachment is configured to ACCEPT_MANUAL connections.
1288
+ In case the network attachment is configured to ACCEPT_AUTOMATIC, this project number does not need to be allowlisted explicitly.
1289
+ """
1290
+ return pulumi.get(self, "service_owned_project_number")
1291
+
1272
1292
 
1273
1293
  @pulumi.output_type
1274
1294
  class ClusterRestoreBackupSource(dict):
@@ -1843,6 +1863,8 @@ class InstancePscInstanceConfig(dict):
1843
1863
  suggest = "allowed_consumer_projects"
1844
1864
  elif key == "pscDnsName":
1845
1865
  suggest = "psc_dns_name"
1866
+ elif key == "pscInterfaceConfigs":
1867
+ suggest = "psc_interface_configs"
1846
1868
  elif key == "serviceAttachmentLink":
1847
1869
  suggest = "service_attachment_link"
1848
1870
 
@@ -1860,6 +1882,7 @@ class InstancePscInstanceConfig(dict):
1860
1882
  def __init__(__self__, *,
1861
1883
  allowed_consumer_projects: Optional[Sequence[str]] = None,
1862
1884
  psc_dns_name: Optional[str] = None,
1885
+ psc_interface_configs: Optional[Sequence['outputs.InstancePscInstanceConfigPscInterfaceConfig']] = None,
1863
1886
  service_attachment_link: Optional[str] = None):
1864
1887
  """
1865
1888
  :param Sequence[str] allowed_consumer_projects: List of consumer projects that are allowed to create PSC endpoints to service-attachments to this instance.
@@ -1867,6 +1890,9 @@ class InstancePscInstanceConfig(dict):
1867
1890
  :param str psc_dns_name: (Output)
1868
1891
  The DNS name of the instance for PSC connectivity.
1869
1892
  Name convention: <uid>.<uid>.<region>.alloydb-psc.goog
1893
+ :param Sequence['InstancePscInstanceConfigPscInterfaceConfigArgs'] psc_interface_configs: Configurations for setting up PSC interfaces attached to the instance
1894
+ which are used for outbound connectivity. Currently, AlloyDB supports only 0 or 1 PSC interface.
1895
+ Structure is documented below.
1870
1896
  :param str service_attachment_link: (Output)
1871
1897
  The service attachment created when Private Service Connect (PSC) is enabled for the instance.
1872
1898
  The name of the resource will be in the format of
@@ -1876,6 +1902,8 @@ class InstancePscInstanceConfig(dict):
1876
1902
  pulumi.set(__self__, "allowed_consumer_projects", allowed_consumer_projects)
1877
1903
  if psc_dns_name is not None:
1878
1904
  pulumi.set(__self__, "psc_dns_name", psc_dns_name)
1905
+ if psc_interface_configs is not None:
1906
+ pulumi.set(__self__, "psc_interface_configs", psc_interface_configs)
1879
1907
  if service_attachment_link is not None:
1880
1908
  pulumi.set(__self__, "service_attachment_link", service_attachment_link)
1881
1909
 
@@ -1898,6 +1926,16 @@ class InstancePscInstanceConfig(dict):
1898
1926
  """
1899
1927
  return pulumi.get(self, "psc_dns_name")
1900
1928
 
1929
+ @property
1930
+ @pulumi.getter(name="pscInterfaceConfigs")
1931
+ def psc_interface_configs(self) -> Optional[Sequence['outputs.InstancePscInstanceConfigPscInterfaceConfig']]:
1932
+ """
1933
+ Configurations for setting up PSC interfaces attached to the instance
1934
+ which are used for outbound connectivity. Currently, AlloyDB supports only 0 or 1 PSC interface.
1935
+ Structure is documented below.
1936
+ """
1937
+ return pulumi.get(self, "psc_interface_configs")
1938
+
1901
1939
  @property
1902
1940
  @pulumi.getter(name="serviceAttachmentLink")
1903
1941
  def service_attachment_link(self) -> Optional[str]:
@@ -1910,6 +1948,46 @@ class InstancePscInstanceConfig(dict):
1910
1948
  return pulumi.get(self, "service_attachment_link")
1911
1949
 
1912
1950
 
1951
+ @pulumi.output_type
1952
+ class InstancePscInstanceConfigPscInterfaceConfig(dict):
1953
+ @staticmethod
1954
+ def __key_warning(key: str):
1955
+ suggest = None
1956
+ if key == "networkAttachmentResource":
1957
+ suggest = "network_attachment_resource"
1958
+
1959
+ if suggest:
1960
+ pulumi.log.warn(f"Key '{key}' not found in InstancePscInstanceConfigPscInterfaceConfig. Access the value via the '{suggest}' property getter instead.")
1961
+
1962
+ def __getitem__(self, key: str) -> Any:
1963
+ InstancePscInstanceConfigPscInterfaceConfig.__key_warning(key)
1964
+ return super().__getitem__(key)
1965
+
1966
+ def get(self, key: str, default = None) -> Any:
1967
+ InstancePscInstanceConfigPscInterfaceConfig.__key_warning(key)
1968
+ return super().get(key, default)
1969
+
1970
+ def __init__(__self__, *,
1971
+ network_attachment_resource: Optional[str] = None):
1972
+ """
1973
+ :param str network_attachment_resource: The network attachment resource created in the consumer project to which the PSC interface will be linked.
1974
+ This is of the format: "projects/${CONSUMER_PROJECT}/regions/${REGION}/networkAttachments/${NETWORK_ATTACHMENT_NAME}".
1975
+ The network attachment must be in the same region as the instance.
1976
+ """
1977
+ if network_attachment_resource is not None:
1978
+ pulumi.set(__self__, "network_attachment_resource", network_attachment_resource)
1979
+
1980
+ @property
1981
+ @pulumi.getter(name="networkAttachmentResource")
1982
+ def network_attachment_resource(self) -> Optional[str]:
1983
+ """
1984
+ The network attachment resource created in the consumer project to which the PSC interface will be linked.
1985
+ This is of the format: "projects/${CONSUMER_PROJECT}/regions/${REGION}/networkAttachments/${NETWORK_ATTACHMENT_NAME}".
1986
+ The network attachment must be in the same region as the instance.
1987
+ """
1988
+ return pulumi.get(self, "network_attachment_resource")
1989
+
1990
+
1913
1991
  @pulumi.output_type
1914
1992
  class InstanceQueryInsightsConfig(dict):
1915
1993
  @staticmethod
@@ -2675,11 +2753,15 @@ class GetClusterNetworkConfigResult(dict):
2675
2753
  @pulumi.output_type
2676
2754
  class GetClusterPscConfigResult(dict):
2677
2755
  def __init__(__self__, *,
2678
- psc_enabled: bool):
2756
+ psc_enabled: bool,
2757
+ service_owned_project_number: int):
2679
2758
  """
2680
2759
  :param bool psc_enabled: Create an instance that allows connections from Private Service Connect endpoints to the instance.
2760
+ :param int service_owned_project_number: The project number that needs to be allowlisted on the network attachment to enable outbound connectivity, if the network attachment is configured to ACCEPT_MANUAL connections.
2761
+ In case the network attachment is configured to ACCEPT_AUTOMATIC, this project number does not need to be allowlisted explicitly.
2681
2762
  """
2682
2763
  pulumi.set(__self__, "psc_enabled", psc_enabled)
2764
+ pulumi.set(__self__, "service_owned_project_number", service_owned_project_number)
2683
2765
 
2684
2766
  @property
2685
2767
  @pulumi.getter(name="pscEnabled")
@@ -2689,6 +2771,15 @@ class GetClusterPscConfigResult(dict):
2689
2771
  """
2690
2772
  return pulumi.get(self, "psc_enabled")
2691
2773
 
2774
+ @property
2775
+ @pulumi.getter(name="serviceOwnedProjectNumber")
2776
+ def service_owned_project_number(self) -> int:
2777
+ """
2778
+ The project number that needs to be allowlisted on the network attachment to enable outbound connectivity, if the network attachment is configured to ACCEPT_MANUAL connections.
2779
+ In case the network attachment is configured to ACCEPT_AUTOMATIC, this project number does not need to be allowlisted explicitly.
2780
+ """
2781
+ return pulumi.get(self, "service_owned_project_number")
2782
+
2692
2783
 
2693
2784
  @pulumi.output_type
2694
2785
  class GetClusterRestoreBackupSourceResult(dict):
@@ -3039,18 +3130,22 @@ class GetInstancePscInstanceConfigResult(dict):
3039
3130
  def __init__(__self__, *,
3040
3131
  allowed_consumer_projects: Sequence[str],
3041
3132
  psc_dns_name: str,
3133
+ psc_interface_configs: Sequence['outputs.GetInstancePscInstanceConfigPscInterfaceConfigResult'],
3042
3134
  service_attachment_link: str):
3043
3135
  """
3044
3136
  :param Sequence[str] allowed_consumer_projects: List of consumer projects that are allowed to create PSC endpoints to service-attachments to this instance.
3045
3137
  These should be specified as project numbers only.
3046
3138
  :param str psc_dns_name: The DNS name of the instance for PSC connectivity.
3047
3139
  Name convention: <uid>.<uid>.<region>.alloydb-psc.goog
3140
+ :param Sequence['GetInstancePscInstanceConfigPscInterfaceConfigArgs'] psc_interface_configs: Configurations for setting up PSC interfaces attached to the instance
3141
+ which are used for outbound connectivity. Currently, AlloyDB supports only 0 or 1 PSC interface.
3048
3142
  :param str service_attachment_link: The service attachment created when Private Service Connect (PSC) is enabled for the instance.
3049
3143
  The name of the resource will be in the format of
3050
3144
  'projects/<alloydb-tenant-project-number>/regions/<region-name>/serviceAttachments/<service-attachment-name>'
3051
3145
  """
3052
3146
  pulumi.set(__self__, "allowed_consumer_projects", allowed_consumer_projects)
3053
3147
  pulumi.set(__self__, "psc_dns_name", psc_dns_name)
3148
+ pulumi.set(__self__, "psc_interface_configs", psc_interface_configs)
3054
3149
  pulumi.set(__self__, "service_attachment_link", service_attachment_link)
3055
3150
 
3056
3151
  @property
@@ -3071,6 +3166,15 @@ class GetInstancePscInstanceConfigResult(dict):
3071
3166
  """
3072
3167
  return pulumi.get(self, "psc_dns_name")
3073
3168
 
3169
+ @property
3170
+ @pulumi.getter(name="pscInterfaceConfigs")
3171
+ def psc_interface_configs(self) -> Sequence['outputs.GetInstancePscInstanceConfigPscInterfaceConfigResult']:
3172
+ """
3173
+ Configurations for setting up PSC interfaces attached to the instance
3174
+ which are used for outbound connectivity. Currently, AlloyDB supports only 0 or 1 PSC interface.
3175
+ """
3176
+ return pulumi.get(self, "psc_interface_configs")
3177
+
3074
3178
  @property
3075
3179
  @pulumi.getter(name="serviceAttachmentLink")
3076
3180
  def service_attachment_link(self) -> str:
@@ -3082,6 +3186,28 @@ class GetInstancePscInstanceConfigResult(dict):
3082
3186
  return pulumi.get(self, "service_attachment_link")
3083
3187
 
3084
3188
 
3189
+ @pulumi.output_type
3190
+ class GetInstancePscInstanceConfigPscInterfaceConfigResult(dict):
3191
+ def __init__(__self__, *,
3192
+ network_attachment_resource: str):
3193
+ """
3194
+ :param str network_attachment_resource: The network attachment resource created in the consumer project to which the PSC interface will be linked.
3195
+ This is of the format: "projects/${CONSUMER_PROJECT}/regions/${REGION}/networkAttachments/${NETWORK_ATTACHMENT_NAME}".
3196
+ The network attachment must be in the same region as the instance.
3197
+ """
3198
+ pulumi.set(__self__, "network_attachment_resource", network_attachment_resource)
3199
+
3200
+ @property
3201
+ @pulumi.getter(name="networkAttachmentResource")
3202
+ def network_attachment_resource(self) -> str:
3203
+ """
3204
+ The network attachment resource created in the consumer project to which the PSC interface will be linked.
3205
+ This is of the format: "projects/${CONSUMER_PROJECT}/regions/${REGION}/networkAttachments/${NETWORK_ATTACHMENT_NAME}".
3206
+ The network attachment must be in the same region as the instance.
3207
+ """
3208
+ return pulumi.get(self, "network_attachment_resource")
3209
+
3210
+
3085
3211
  @pulumi.output_type
3086
3212
  class GetInstanceQueryInsightsConfigResult(dict):
3087
3213
  def __init__(__self__, *,
@@ -251,15 +251,12 @@ class Client(pulumi.CustomResource):
251
251
  import pulumi_gcp as gcp
252
252
  import pulumi_std as std
253
253
 
254
- test_project = gcp.organizations.get_project()
255
- keyring = gcp.kms.KeyRing("keyring",
256
- name="my-keyring",
254
+ default = gcp.organizations.get_project()
255
+ keyring = gcp.kms.get_kms_key_ring(name="my-keyring",
257
256
  location="us-east1")
258
- cryptokey = gcp.kms.CryptoKey("cryptokey",
259
- name="crypto-key-example",
260
- key_ring=keyring.id,
261
- rotation_period="7776000s")
262
- test_key = gcp.kms.CryptoKeyVersion("test_key", crypto_key=cryptokey.id)
257
+ cryptokey = gcp.kms.get_kms_crypto_key(name="my-crypto-key",
258
+ key_ring=keyring.id)
259
+ test_key = gcp.kms.get_kms_crypto_key_version(crypto_key=cryptokey.id)
263
260
  service_account = gcp.serviceaccount.Account("service_account",
264
261
  account_id="service-acc",
265
262
  display_name="Service Account")
@@ -269,10 +266,10 @@ class Client(pulumi.CustomResource):
269
266
  run_as_service_account=service_account.email,
270
267
  cloud_kms_config={
271
268
  "kms_location": "us-east1",
272
- "kms_ring": std.basename_output(input=keyring.id).apply(lambda invoke: invoke.result),
273
- "key": std.basename_output(input=cryptokey.id).apply(lambda invoke: invoke.result),
274
- "key_version": std.basename_output(input=test_key.id).apply(lambda invoke: invoke.result),
275
- "kms_project_id": test_project.project_id,
269
+ "kms_ring": std.basename(input=keyring.id).result,
270
+ "key": std.basename(input=cryptokey.id).result,
271
+ "key_version": std.basename(input=test_key.id).result,
272
+ "kms_project_id": default.project_id,
276
273
  })
277
274
  ```
278
275
 
@@ -346,15 +343,12 @@ class Client(pulumi.CustomResource):
346
343
  import pulumi_gcp as gcp
347
344
  import pulumi_std as std
348
345
 
349
- test_project = gcp.organizations.get_project()
350
- keyring = gcp.kms.KeyRing("keyring",
351
- name="my-keyring",
346
+ default = gcp.organizations.get_project()
347
+ keyring = gcp.kms.get_kms_key_ring(name="my-keyring",
352
348
  location="us-east1")
353
- cryptokey = gcp.kms.CryptoKey("cryptokey",
354
- name="crypto-key-example",
355
- key_ring=keyring.id,
356
- rotation_period="7776000s")
357
- test_key = gcp.kms.CryptoKeyVersion("test_key", crypto_key=cryptokey.id)
349
+ cryptokey = gcp.kms.get_kms_crypto_key(name="my-crypto-key",
350
+ key_ring=keyring.id)
351
+ test_key = gcp.kms.get_kms_crypto_key_version(crypto_key=cryptokey.id)
358
352
  service_account = gcp.serviceaccount.Account("service_account",
359
353
  account_id="service-acc",
360
354
  display_name="Service Account")
@@ -364,10 +358,10 @@ class Client(pulumi.CustomResource):
364
358
  run_as_service_account=service_account.email,
365
359
  cloud_kms_config={
366
360
  "kms_location": "us-east1",
367
- "kms_ring": std.basename_output(input=keyring.id).apply(lambda invoke: invoke.result),
368
- "key": std.basename_output(input=cryptokey.id).apply(lambda invoke: invoke.result),
369
- "key_version": std.basename_output(input=test_key.id).apply(lambda invoke: invoke.result),
370
- "kms_project_id": test_project.project_id,
361
+ "kms_ring": std.basename(input=keyring.id).result,
362
+ "key": std.basename(input=cryptokey.id).result,
363
+ "key_version": std.basename(input=test_key.id).result,
364
+ "kms_project_id": default.project_id,
371
365
  })
372
366
  ```
373
367
 
@@ -273,7 +273,7 @@ if not MYPY:
273
273
  days_of_weeks: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
274
274
  """
275
275
  Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise.
276
- Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`.
276
+ Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.
277
277
  """
278
278
  hourly_frequency: NotRequired[pulumi.Input[int]]
279
279
  """
@@ -313,7 +313,7 @@ class BackupPlanBackupRuleStandardScheduleArgs:
313
313
  Structure is documented below.
314
314
  :param pulumi.Input[Sequence[pulumi.Input[int]]] days_of_months: Specifies days of months like 1, 5, or 14 on which jobs will run.
315
315
  :param pulumi.Input[Sequence[pulumi.Input[str]]] days_of_weeks: Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise.
316
- Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`.
316
+ Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.
317
317
  :param pulumi.Input[int] hourly_frequency: Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined.
318
318
  This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise.
319
319
  :param pulumi.Input[Sequence[pulumi.Input[str]]] months: Specifies values of months
@@ -392,7 +392,7 @@ class BackupPlanBackupRuleStandardScheduleArgs:
392
392
  def days_of_weeks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
393
393
  """
394
394
  Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise.
395
- Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`.
395
+ Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.
396
396
  """
397
397
  return pulumi.get(self, "days_of_weeks")
398
398