pulumi-gcp 8.24.0a1743057423__py3-none-any.whl → 8.25.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 (150) hide show
  1. pulumi_gcp/__init__.py +131 -0
  2. pulumi_gcp/_inputs.py +48 -0
  3. pulumi_gcp/accesscontextmanager/_inputs.py +324 -12
  4. pulumi_gcp/accesscontextmanager/outputs.py +204 -12
  5. pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -2
  6. pulumi_gcp/apigee/__init__.py +1 -0
  7. pulumi_gcp/apigee/_inputs.py +58 -0
  8. pulumi_gcp/apigee/dns_zone.py +491 -0
  9. pulumi_gcp/apigee/outputs.py +53 -0
  10. pulumi_gcp/bigquery/_inputs.py +158 -0
  11. pulumi_gcp/bigquery/outputs.py +115 -0
  12. pulumi_gcp/bigquery/reservation.py +189 -1
  13. pulumi_gcp/bigquery/reservation_assignment.py +7 -7
  14. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +11 -7
  15. pulumi_gcp/bigtable/table.py +8 -8
  16. pulumi_gcp/chronicle/data_access_label.py +16 -0
  17. pulumi_gcp/chronicle/data_access_scope.py +16 -0
  18. pulumi_gcp/chronicle/reference_list.py +16 -0
  19. pulumi_gcp/chronicle/retrohunt.py +16 -0
  20. pulumi_gcp/chronicle/rule.py +16 -0
  21. pulumi_gcp/chronicle/rule_deployment.py +16 -0
  22. pulumi_gcp/chronicle/watchlist.py +16 -0
  23. pulumi_gcp/cloudfunctionsv2/_inputs.py +20 -0
  24. pulumi_gcp/cloudfunctionsv2/outputs.py +25 -0
  25. pulumi_gcp/cloudrunv2/_inputs.py +20 -0
  26. pulumi_gcp/cloudrunv2/outputs.py +25 -0
  27. pulumi_gcp/cloudrunv2/service.py +14 -14
  28. pulumi_gcp/compute/__init__.py +2 -0
  29. pulumi_gcp/compute/_inputs.py +2627 -61
  30. pulumi_gcp/compute/backend_service.py +121 -3
  31. pulumi_gcp/compute/get_backend_service.py +15 -4
  32. pulumi_gcp/compute/get_images.py +172 -0
  33. pulumi_gcp/compute/get_instance.py +12 -1
  34. pulumi_gcp/compute/get_region_backend_service.py +482 -0
  35. pulumi_gcp/compute/get_resource_policy.py +15 -4
  36. pulumi_gcp/compute/get_router.py +12 -1
  37. pulumi_gcp/compute/get_subnetwork.py +43 -1
  38. pulumi_gcp/compute/image.py +54 -0
  39. pulumi_gcp/compute/instance.py +47 -0
  40. pulumi_gcp/compute/instance_from_machine_image.py +94 -0
  41. pulumi_gcp/compute/instance_from_template.py +47 -0
  42. pulumi_gcp/compute/interconnect.py +14 -7
  43. pulumi_gcp/compute/outputs.py +4522 -391
  44. pulumi_gcp/compute/public_delegated_prefix.py +69 -15
  45. pulumi_gcp/compute/resource_policy.py +169 -3
  46. pulumi_gcp/compute/router.py +54 -0
  47. pulumi_gcp/compute/router_route_policy.py +16 -0
  48. pulumi_gcp/compute/subnetwork.py +35 -5
  49. pulumi_gcp/config/__init__.pyi +8 -0
  50. pulumi_gcp/config/outputs.py +27 -0
  51. pulumi_gcp/config/vars.py +16 -0
  52. pulumi_gcp/container/_inputs.py +274 -13
  53. pulumi_gcp/container/cluster.py +101 -0
  54. pulumi_gcp/container/get_cluster.py +23 -1
  55. pulumi_gcp/container/get_registry_image.py +4 -0
  56. pulumi_gcp/container/get_registry_repository.py +4 -0
  57. pulumi_gcp/container/outputs.py +305 -10
  58. pulumi_gcp/container/registry.py +4 -0
  59. pulumi_gcp/datafusion/instance.py +68 -0
  60. pulumi_gcp/dataproc/__init__.py +8 -0
  61. pulumi_gcp/dataproc/_inputs.py +219 -0
  62. pulumi_gcp/dataproc/get_metastore_database_iam_policy.py +193 -0
  63. pulumi_gcp/dataproc/get_metastore_table_iam_policy.py +210 -0
  64. pulumi_gcp/dataproc/metastore_database_iam_binding.py +848 -0
  65. pulumi_gcp/dataproc/metastore_database_iam_member.py +848 -0
  66. pulumi_gcp/dataproc/metastore_database_iam_policy.py +687 -0
  67. pulumi_gcp/dataproc/metastore_federation.py +38 -2
  68. pulumi_gcp/dataproc/metastore_table_iam_binding.py +895 -0
  69. pulumi_gcp/dataproc/metastore_table_iam_member.py +895 -0
  70. pulumi_gcp/dataproc/metastore_table_iam_policy.py +734 -0
  71. pulumi_gcp/dataproc/outputs.py +139 -0
  72. pulumi_gcp/datastream/_inputs.py +311 -94
  73. pulumi_gcp/datastream/connection_profile.py +40 -0
  74. pulumi_gcp/datastream/outputs.py +244 -51
  75. pulumi_gcp/datastream/stream.py +216 -0
  76. pulumi_gcp/discoveryengine/__init__.py +1 -0
  77. pulumi_gcp/discoveryengine/sitemap.py +504 -0
  78. pulumi_gcp/eventarc/__init__.py +1 -0
  79. pulumi_gcp/eventarc/enrollment.py +980 -0
  80. pulumi_gcp/firebase/__init__.py +1 -0
  81. pulumi_gcp/firebase/_inputs.py +484 -0
  82. pulumi_gcp/firebase/app_hosting_build.py +1232 -0
  83. pulumi_gcp/firebase/outputs.py +333 -0
  84. pulumi_gcp/identityplatform/_inputs.py +91 -0
  85. pulumi_gcp/identityplatform/outputs.py +73 -0
  86. pulumi_gcp/identityplatform/tenant.py +56 -0
  87. pulumi_gcp/lustre/__init__.py +8 -0
  88. pulumi_gcp/lustre/instance.py +983 -0
  89. pulumi_gcp/managedkafka/cluster.py +2 -2
  90. pulumi_gcp/memorystore/__init__.py +1 -0
  91. pulumi_gcp/memorystore/_inputs.py +1252 -7
  92. pulumi_gcp/memorystore/get_instance.py +45 -1
  93. pulumi_gcp/memorystore/instance.py +481 -30
  94. pulumi_gcp/memorystore/instance_desired_user_created_endpoints.py +843 -0
  95. pulumi_gcp/memorystore/outputs.py +1440 -15
  96. pulumi_gcp/networkmanagement/_inputs.py +422 -91
  97. pulumi_gcp/networkmanagement/connectivity_test.py +233 -211
  98. pulumi_gcp/networkmanagement/outputs.py +280 -61
  99. pulumi_gcp/networksecurity/_inputs.py +891 -26
  100. pulumi_gcp/networksecurity/intercept_deployment_group.py +44 -16
  101. pulumi_gcp/networksecurity/intercept_endpoint_group.py +90 -36
  102. pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +53 -8
  103. pulumi_gcp/networksecurity/mirroring_deployment_group.py +44 -16
  104. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +94 -36
  105. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +53 -8
  106. pulumi_gcp/networksecurity/outputs.py +531 -1
  107. pulumi_gcp/networksecurity/security_profile.py +8 -0
  108. pulumi_gcp/organizations/__init__.py +2 -0
  109. pulumi_gcp/organizations/get_iam_custom_role.py +198 -0
  110. pulumi_gcp/organizations/get_iam_custom_roles.py +164 -0
  111. pulumi_gcp/organizations/outputs.py +96 -0
  112. pulumi_gcp/osconfig/__init__.py +1 -0
  113. pulumi_gcp/osconfig/_inputs.py +5413 -0
  114. pulumi_gcp/osconfig/outputs.py +3962 -0
  115. pulumi_gcp/osconfig/v2_policy_orchestrator.py +971 -0
  116. pulumi_gcp/parametermanager/get_parameter.py +16 -1
  117. pulumi_gcp/parametermanager/get_parameter_version.py +19 -1
  118. pulumi_gcp/parametermanager/get_parameter_version_render.py +4 -0
  119. pulumi_gcp/parametermanager/get_parameters.py +4 -0
  120. pulumi_gcp/parametermanager/get_regional_parameter.py +4 -0
  121. pulumi_gcp/parametermanager/get_regional_parameter_version.py +4 -0
  122. pulumi_gcp/parametermanager/get_regional_parameter_version_render.py +8 -0
  123. pulumi_gcp/parametermanager/get_regional_parameters.py +4 -0
  124. pulumi_gcp/parametermanager/outputs.py +11 -0
  125. pulumi_gcp/parametermanager/parameter.py +88 -0
  126. pulumi_gcp/parametermanager/parameter_version.py +74 -0
  127. pulumi_gcp/parametermanager/regional_parameter.py +12 -0
  128. pulumi_gcp/parametermanager/regional_parameter_version.py +12 -0
  129. pulumi_gcp/provider.py +75 -0
  130. pulumi_gcp/pulumi-plugin.json +1 -1
  131. pulumi_gcp/redis/_inputs.py +136 -0
  132. pulumi_gcp/redis/cluster.py +54 -0
  133. pulumi_gcp/redis/outputs.py +114 -0
  134. pulumi_gcp/secretmanager/regional_secret_version.py +0 -16
  135. pulumi_gcp/storage/__init__.py +6 -0
  136. pulumi_gcp/storage/_inputs.py +1322 -0
  137. pulumi_gcp/storage/bucket.py +7 -7
  138. pulumi_gcp/storage/control_folder_intelligence_config.py +420 -0
  139. pulumi_gcp/storage/control_organization_intelligence_config.py +420 -0
  140. pulumi_gcp/storage/control_project_intelligence_config.py +408 -0
  141. pulumi_gcp/storage/get_bucket_object_content.py +16 -1
  142. pulumi_gcp/storage/get_control_folder_intelligence_config.py +160 -0
  143. pulumi_gcp/storage/get_control_organization_intelligence_config.py +160 -0
  144. pulumi_gcp/storage/get_control_project_intelligence_config.py +160 -0
  145. pulumi_gcp/storage/outputs.py +1553 -17
  146. pulumi_gcp/workbench/instance.py +14 -2
  147. {pulumi_gcp-8.24.0a1743057423.dist-info → pulumi_gcp-8.25.0.dist-info}/METADATA +1 -1
  148. {pulumi_gcp-8.24.0a1743057423.dist-info → pulumi_gcp-8.25.0.dist-info}/RECORD +150 -124
  149. {pulumi_gcp-8.24.0a1743057423.dist-info → pulumi_gcp-8.25.0.dist-info}/WHEEL +0 -0
  150. {pulumi_gcp-8.24.0a1743057423.dist-info → pulumi_gcp-8.25.0.dist-info}/top_level.txt +0 -0
@@ -15,8 +15,26 @@ else:
15
15
  from .. import _utilities
16
16
 
17
17
  __all__ = [
18
+ 'InstanceCrossInstanceReplicationConfigArgs',
19
+ 'InstanceCrossInstanceReplicationConfigArgsDict',
20
+ 'InstanceCrossInstanceReplicationConfigMembershipArgs',
21
+ 'InstanceCrossInstanceReplicationConfigMembershipArgsDict',
22
+ 'InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs',
23
+ 'InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgsDict',
24
+ 'InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs',
25
+ 'InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgsDict',
26
+ 'InstanceCrossInstanceReplicationConfigPrimaryInstanceArgs',
27
+ 'InstanceCrossInstanceReplicationConfigPrimaryInstanceArgsDict',
28
+ 'InstanceCrossInstanceReplicationConfigSecondaryInstanceArgs',
29
+ 'InstanceCrossInstanceReplicationConfigSecondaryInstanceArgsDict',
18
30
  'InstanceDesiredPscAutoConnectionArgs',
19
31
  'InstanceDesiredPscAutoConnectionArgsDict',
32
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointArgs',
33
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointArgsDict',
34
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs',
35
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgsDict',
36
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs',
37
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgsDict',
20
38
  'InstanceDiscoveryEndpointArgs',
21
39
  'InstanceDiscoveryEndpointArgsDict',
22
40
  'InstanceEndpointArgs',
@@ -25,6 +43,14 @@ __all__ = [
25
43
  'InstanceEndpointConnectionArgsDict',
26
44
  'InstanceEndpointConnectionPscAutoConnectionArgs',
27
45
  'InstanceEndpointConnectionPscAutoConnectionArgsDict',
46
+ 'InstanceMaintenancePolicyArgs',
47
+ 'InstanceMaintenancePolicyArgsDict',
48
+ 'InstanceMaintenancePolicyWeeklyMaintenanceWindowArgs',
49
+ 'InstanceMaintenancePolicyWeeklyMaintenanceWindowArgsDict',
50
+ 'InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs',
51
+ 'InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgsDict',
52
+ 'InstanceMaintenanceScheduleArgs',
53
+ 'InstanceMaintenanceScheduleArgsDict',
28
54
  'InstanceNodeConfigArgs',
29
55
  'InstanceNodeConfigArgsDict',
30
56
  'InstancePersistenceConfigArgs',
@@ -33,6 +59,8 @@ __all__ = [
33
59
  'InstancePersistenceConfigAofConfigArgsDict',
34
60
  'InstancePersistenceConfigRdbConfigArgs',
35
61
  'InstancePersistenceConfigRdbConfigArgsDict',
62
+ 'InstancePscAttachmentDetailArgs',
63
+ 'InstancePscAttachmentDetailArgsDict',
36
64
  'InstancePscAutoConnectionArgs',
37
65
  'InstancePscAutoConnectionArgsDict',
38
66
  'InstanceStateInfoArgs',
@@ -45,6 +73,420 @@ __all__ = [
45
73
 
46
74
  MYPY = False
47
75
 
76
+ if not MYPY:
77
+ class InstanceCrossInstanceReplicationConfigArgsDict(TypedDict):
78
+ instance_role: NotRequired[pulumi.Input[str]]
79
+ """
80
+ The instance role supports the following values:
81
+ 1. `INSTANCE_ROLE_UNSPECIFIED`: This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
82
+ 2. `NONE`: This is an independent instance that previously participated in cross instance replication(either as a `PRIMARY` or `SECONDARY` cluster). It allows both reads and writes.
83
+ 3. `PRIMARY`: This instance serves as the replication source for secondary instance that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
84
+ 4. `SECONDARY`: This instance replicates data from the primary instance. It allows only reads.
85
+ Possible values are: `INSTANCE_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
86
+ """
87
+ memberships: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipArgsDict']]]]
88
+ """
89
+ (Output)
90
+ An output only view of all the member instance participating in cross instance replication. This field is populated for all the member clusters irrespective of their cluster role.
91
+ Structure is documented below.
92
+ """
93
+ primary_instance: NotRequired[pulumi.Input['InstanceCrossInstanceReplicationConfigPrimaryInstanceArgsDict']]
94
+ """
95
+ This field is only set for a secondary instance. Details of the primary instance that is used as the replication source for this secondary instance. This is allowed to be set only for clusters whose cluster role is of type `SECONDARY`.
96
+ Structure is documented below.
97
+ """
98
+ secondary_instances: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigSecondaryInstanceArgsDict']]]]
99
+ """
100
+ List of secondary instances that are replicating from this primary cluster. This is allowed to be set only for instances whose cluster role is of type `PRIMARY`.
101
+ Structure is documented below.
102
+ """
103
+ update_time: NotRequired[pulumi.Input[str]]
104
+ """
105
+ (Output)
106
+ The last time cross instance replication config was updated.
107
+ """
108
+ elif False:
109
+ InstanceCrossInstanceReplicationConfigArgsDict: TypeAlias = Mapping[str, Any]
110
+
111
+ @pulumi.input_type
112
+ class InstanceCrossInstanceReplicationConfigArgs:
113
+ def __init__(__self__, *,
114
+ instance_role: Optional[pulumi.Input[str]] = None,
115
+ memberships: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipArgs']]]] = None,
116
+ primary_instance: Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigPrimaryInstanceArgs']] = None,
117
+ secondary_instances: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigSecondaryInstanceArgs']]]] = None,
118
+ update_time: Optional[pulumi.Input[str]] = None):
119
+ """
120
+ :param pulumi.Input[str] instance_role: The instance role supports the following values:
121
+ 1. `INSTANCE_ROLE_UNSPECIFIED`: This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
122
+ 2. `NONE`: This is an independent instance that previously participated in cross instance replication(either as a `PRIMARY` or `SECONDARY` cluster). It allows both reads and writes.
123
+ 3. `PRIMARY`: This instance serves as the replication source for secondary instance that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
124
+ 4. `SECONDARY`: This instance replicates data from the primary instance. It allows only reads.
125
+ Possible values are: `INSTANCE_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
126
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipArgs']]] memberships: (Output)
127
+ An output only view of all the member instance participating in cross instance replication. This field is populated for all the member clusters irrespective of their cluster role.
128
+ Structure is documented below.
129
+ :param pulumi.Input['InstanceCrossInstanceReplicationConfigPrimaryInstanceArgs'] primary_instance: This field is only set for a secondary instance. Details of the primary instance that is used as the replication source for this secondary instance. This is allowed to be set only for clusters whose cluster role is of type `SECONDARY`.
130
+ Structure is documented below.
131
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigSecondaryInstanceArgs']]] secondary_instances: List of secondary instances that are replicating from this primary cluster. This is allowed to be set only for instances whose cluster role is of type `PRIMARY`.
132
+ Structure is documented below.
133
+ :param pulumi.Input[str] update_time: (Output)
134
+ The last time cross instance replication config was updated.
135
+ """
136
+ if instance_role is not None:
137
+ pulumi.set(__self__, "instance_role", instance_role)
138
+ if memberships is not None:
139
+ pulumi.set(__self__, "memberships", memberships)
140
+ if primary_instance is not None:
141
+ pulumi.set(__self__, "primary_instance", primary_instance)
142
+ if secondary_instances is not None:
143
+ pulumi.set(__self__, "secondary_instances", secondary_instances)
144
+ if update_time is not None:
145
+ pulumi.set(__self__, "update_time", update_time)
146
+
147
+ @property
148
+ @pulumi.getter(name="instanceRole")
149
+ def instance_role(self) -> Optional[pulumi.Input[str]]:
150
+ """
151
+ The instance role supports the following values:
152
+ 1. `INSTANCE_ROLE_UNSPECIFIED`: This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
153
+ 2. `NONE`: This is an independent instance that previously participated in cross instance replication(either as a `PRIMARY` or `SECONDARY` cluster). It allows both reads and writes.
154
+ 3. `PRIMARY`: This instance serves as the replication source for secondary instance that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
155
+ 4. `SECONDARY`: This instance replicates data from the primary instance. It allows only reads.
156
+ Possible values are: `INSTANCE_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
157
+ """
158
+ return pulumi.get(self, "instance_role")
159
+
160
+ @instance_role.setter
161
+ def instance_role(self, value: Optional[pulumi.Input[str]]):
162
+ pulumi.set(self, "instance_role", value)
163
+
164
+ @property
165
+ @pulumi.getter
166
+ def memberships(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipArgs']]]]:
167
+ """
168
+ (Output)
169
+ An output only view of all the member instance participating in cross instance replication. This field is populated for all the member clusters irrespective of their cluster role.
170
+ Structure is documented below.
171
+ """
172
+ return pulumi.get(self, "memberships")
173
+
174
+ @memberships.setter
175
+ def memberships(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipArgs']]]]):
176
+ pulumi.set(self, "memberships", value)
177
+
178
+ @property
179
+ @pulumi.getter(name="primaryInstance")
180
+ def primary_instance(self) -> Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigPrimaryInstanceArgs']]:
181
+ """
182
+ This field is only set for a secondary instance. Details of the primary instance that is used as the replication source for this secondary instance. This is allowed to be set only for clusters whose cluster role is of type `SECONDARY`.
183
+ Structure is documented below.
184
+ """
185
+ return pulumi.get(self, "primary_instance")
186
+
187
+ @primary_instance.setter
188
+ def primary_instance(self, value: Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigPrimaryInstanceArgs']]):
189
+ pulumi.set(self, "primary_instance", value)
190
+
191
+ @property
192
+ @pulumi.getter(name="secondaryInstances")
193
+ def secondary_instances(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigSecondaryInstanceArgs']]]]:
194
+ """
195
+ List of secondary instances that are replicating from this primary cluster. This is allowed to be set only for instances whose cluster role is of type `PRIMARY`.
196
+ Structure is documented below.
197
+ """
198
+ return pulumi.get(self, "secondary_instances")
199
+
200
+ @secondary_instances.setter
201
+ def secondary_instances(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigSecondaryInstanceArgs']]]]):
202
+ pulumi.set(self, "secondary_instances", value)
203
+
204
+ @property
205
+ @pulumi.getter(name="updateTime")
206
+ def update_time(self) -> Optional[pulumi.Input[str]]:
207
+ """
208
+ (Output)
209
+ The last time cross instance replication config was updated.
210
+ """
211
+ return pulumi.get(self, "update_time")
212
+
213
+ @update_time.setter
214
+ def update_time(self, value: Optional[pulumi.Input[str]]):
215
+ pulumi.set(self, "update_time", value)
216
+
217
+
218
+ if not MYPY:
219
+ class InstanceCrossInstanceReplicationConfigMembershipArgsDict(TypedDict):
220
+ primary_instances: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgsDict']]]]
221
+ """
222
+ Details of the primary instance that is used as the replication source for all the secondary instances.
223
+ """
224
+ secondary_instances: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgsDict']]]]
225
+ """
226
+ List of secondary instances that are replicating from the primary instance.
227
+ """
228
+ elif False:
229
+ InstanceCrossInstanceReplicationConfigMembershipArgsDict: TypeAlias = Mapping[str, Any]
230
+
231
+ @pulumi.input_type
232
+ class InstanceCrossInstanceReplicationConfigMembershipArgs:
233
+ def __init__(__self__, *,
234
+ primary_instances: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs']]]] = None,
235
+ secondary_instances: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs']]]] = None):
236
+ """
237
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs']]] primary_instances: Details of the primary instance that is used as the replication source for all the secondary instances.
238
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs']]] secondary_instances: List of secondary instances that are replicating from the primary instance.
239
+ """
240
+ if primary_instances is not None:
241
+ pulumi.set(__self__, "primary_instances", primary_instances)
242
+ if secondary_instances is not None:
243
+ pulumi.set(__self__, "secondary_instances", secondary_instances)
244
+
245
+ @property
246
+ @pulumi.getter(name="primaryInstances")
247
+ def primary_instances(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs']]]]:
248
+ """
249
+ Details of the primary instance that is used as the replication source for all the secondary instances.
250
+ """
251
+ return pulumi.get(self, "primary_instances")
252
+
253
+ @primary_instances.setter
254
+ def primary_instances(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs']]]]):
255
+ pulumi.set(self, "primary_instances", value)
256
+
257
+ @property
258
+ @pulumi.getter(name="secondaryInstances")
259
+ def secondary_instances(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs']]]]:
260
+ """
261
+ List of secondary instances that are replicating from the primary instance.
262
+ """
263
+ return pulumi.get(self, "secondary_instances")
264
+
265
+ @secondary_instances.setter
266
+ def secondary_instances(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs']]]]):
267
+ pulumi.set(self, "secondary_instances", value)
268
+
269
+
270
+ if not MYPY:
271
+ class InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgsDict(TypedDict):
272
+ instance: NotRequired[pulumi.Input[str]]
273
+ """
274
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
275
+ """
276
+ uid: NotRequired[pulumi.Input[str]]
277
+ """
278
+ (Output)
279
+ The unique id of the primary instance.
280
+ """
281
+ elif False:
282
+ InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgsDict: TypeAlias = Mapping[str, Any]
283
+
284
+ @pulumi.input_type
285
+ class InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs:
286
+ def __init__(__self__, *,
287
+ instance: Optional[pulumi.Input[str]] = None,
288
+ uid: Optional[pulumi.Input[str]] = None):
289
+ """
290
+ :param pulumi.Input[str] instance: The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
291
+ :param pulumi.Input[str] uid: (Output)
292
+ The unique id of the primary instance.
293
+ """
294
+ if instance is not None:
295
+ pulumi.set(__self__, "instance", instance)
296
+ if uid is not None:
297
+ pulumi.set(__self__, "uid", uid)
298
+
299
+ @property
300
+ @pulumi.getter
301
+ def instance(self) -> Optional[pulumi.Input[str]]:
302
+ """
303
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
304
+ """
305
+ return pulumi.get(self, "instance")
306
+
307
+ @instance.setter
308
+ def instance(self, value: Optional[pulumi.Input[str]]):
309
+ pulumi.set(self, "instance", value)
310
+
311
+ @property
312
+ @pulumi.getter
313
+ def uid(self) -> Optional[pulumi.Input[str]]:
314
+ """
315
+ (Output)
316
+ The unique id of the primary instance.
317
+ """
318
+ return pulumi.get(self, "uid")
319
+
320
+ @uid.setter
321
+ def uid(self, value: Optional[pulumi.Input[str]]):
322
+ pulumi.set(self, "uid", value)
323
+
324
+
325
+ if not MYPY:
326
+ class InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgsDict(TypedDict):
327
+ instance: NotRequired[pulumi.Input[str]]
328
+ """
329
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
330
+ """
331
+ uid: NotRequired[pulumi.Input[str]]
332
+ """
333
+ Output only. System assigned, unique identifier for the instance.
334
+ """
335
+ elif False:
336
+ InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgsDict: TypeAlias = Mapping[str, Any]
337
+
338
+ @pulumi.input_type
339
+ class InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs:
340
+ def __init__(__self__, *,
341
+ instance: Optional[pulumi.Input[str]] = None,
342
+ uid: Optional[pulumi.Input[str]] = None):
343
+ """
344
+ :param pulumi.Input[str] instance: The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
345
+ :param pulumi.Input[str] uid: Output only. System assigned, unique identifier for the instance.
346
+ """
347
+ if instance is not None:
348
+ pulumi.set(__self__, "instance", instance)
349
+ if uid is not None:
350
+ pulumi.set(__self__, "uid", uid)
351
+
352
+ @property
353
+ @pulumi.getter
354
+ def instance(self) -> Optional[pulumi.Input[str]]:
355
+ """
356
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
357
+ """
358
+ return pulumi.get(self, "instance")
359
+
360
+ @instance.setter
361
+ def instance(self, value: Optional[pulumi.Input[str]]):
362
+ pulumi.set(self, "instance", value)
363
+
364
+ @property
365
+ @pulumi.getter
366
+ def uid(self) -> Optional[pulumi.Input[str]]:
367
+ """
368
+ Output only. System assigned, unique identifier for the instance.
369
+ """
370
+ return pulumi.get(self, "uid")
371
+
372
+ @uid.setter
373
+ def uid(self, value: Optional[pulumi.Input[str]]):
374
+ pulumi.set(self, "uid", value)
375
+
376
+
377
+ if not MYPY:
378
+ class InstanceCrossInstanceReplicationConfigPrimaryInstanceArgsDict(TypedDict):
379
+ instance: NotRequired[pulumi.Input[str]]
380
+ """
381
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
382
+ """
383
+ uid: NotRequired[pulumi.Input[str]]
384
+ """
385
+ (Output)
386
+ The unique id of the primary instance.
387
+ """
388
+ elif False:
389
+ InstanceCrossInstanceReplicationConfigPrimaryInstanceArgsDict: TypeAlias = Mapping[str, Any]
390
+
391
+ @pulumi.input_type
392
+ class InstanceCrossInstanceReplicationConfigPrimaryInstanceArgs:
393
+ def __init__(__self__, *,
394
+ instance: Optional[pulumi.Input[str]] = None,
395
+ uid: Optional[pulumi.Input[str]] = None):
396
+ """
397
+ :param pulumi.Input[str] instance: The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
398
+ :param pulumi.Input[str] uid: (Output)
399
+ The unique id of the primary instance.
400
+ """
401
+ if instance is not None:
402
+ pulumi.set(__self__, "instance", instance)
403
+ if uid is not None:
404
+ pulumi.set(__self__, "uid", uid)
405
+
406
+ @property
407
+ @pulumi.getter
408
+ def instance(self) -> Optional[pulumi.Input[str]]:
409
+ """
410
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
411
+ """
412
+ return pulumi.get(self, "instance")
413
+
414
+ @instance.setter
415
+ def instance(self, value: Optional[pulumi.Input[str]]):
416
+ pulumi.set(self, "instance", value)
417
+
418
+ @property
419
+ @pulumi.getter
420
+ def uid(self) -> Optional[pulumi.Input[str]]:
421
+ """
422
+ (Output)
423
+ The unique id of the primary instance.
424
+ """
425
+ return pulumi.get(self, "uid")
426
+
427
+ @uid.setter
428
+ def uid(self, value: Optional[pulumi.Input[str]]):
429
+ pulumi.set(self, "uid", value)
430
+
431
+
432
+ if not MYPY:
433
+ class InstanceCrossInstanceReplicationConfigSecondaryInstanceArgsDict(TypedDict):
434
+ instance: NotRequired[pulumi.Input[str]]
435
+ """
436
+ (Output)
437
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
438
+ """
439
+ uid: NotRequired[pulumi.Input[str]]
440
+ """
441
+ (Output)
442
+ The unique id of the secondary instance.
443
+ """
444
+ elif False:
445
+ InstanceCrossInstanceReplicationConfigSecondaryInstanceArgsDict: TypeAlias = Mapping[str, Any]
446
+
447
+ @pulumi.input_type
448
+ class InstanceCrossInstanceReplicationConfigSecondaryInstanceArgs:
449
+ def __init__(__self__, *,
450
+ instance: Optional[pulumi.Input[str]] = None,
451
+ uid: Optional[pulumi.Input[str]] = None):
452
+ """
453
+ :param pulumi.Input[str] instance: (Output)
454
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
455
+ :param pulumi.Input[str] uid: (Output)
456
+ The unique id of the secondary instance.
457
+ """
458
+ if instance is not None:
459
+ pulumi.set(__self__, "instance", instance)
460
+ if uid is not None:
461
+ pulumi.set(__self__, "uid", uid)
462
+
463
+ @property
464
+ @pulumi.getter
465
+ def instance(self) -> Optional[pulumi.Input[str]]:
466
+ """
467
+ (Output)
468
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
469
+ """
470
+ return pulumi.get(self, "instance")
471
+
472
+ @instance.setter
473
+ def instance(self, value: Optional[pulumi.Input[str]]):
474
+ pulumi.set(self, "instance", value)
475
+
476
+ @property
477
+ @pulumi.getter
478
+ def uid(self) -> Optional[pulumi.Input[str]]:
479
+ """
480
+ (Output)
481
+ The unique id of the secondary instance.
482
+ """
483
+ return pulumi.get(self, "uid")
484
+
485
+ @uid.setter
486
+ def uid(self, value: Optional[pulumi.Input[str]]):
487
+ pulumi.set(self, "uid", value)
488
+
489
+
48
490
  if not MYPY:
49
491
  class InstanceDesiredPscAutoConnectionArgsDict(TypedDict):
50
492
  network: pulumi.Input[str]
@@ -86,23 +528,299 @@ class InstanceDesiredPscAutoConnectionArgs:
86
528
  """
87
529
  return pulumi.get(self, "network")
88
530
 
89
- @network.setter
90
- def network(self, value: pulumi.Input[str]):
91
- pulumi.set(self, "network", value)
531
+ @network.setter
532
+ def network(self, value: pulumi.Input[str]):
533
+ pulumi.set(self, "network", value)
534
+
535
+ @property
536
+ @pulumi.getter(name="projectId")
537
+ def project_id(self) -> pulumi.Input[str]:
538
+ """
539
+ (Output)
540
+ Output only. The consumer project_id where the forwarding rule is created from.
541
+ """
542
+ return pulumi.get(self, "project_id")
543
+
544
+ @project_id.setter
545
+ def project_id(self, value: pulumi.Input[str]):
546
+ pulumi.set(self, "project_id", value)
547
+
548
+
549
+ if not MYPY:
550
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointArgsDict(TypedDict):
551
+ connections: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgsDict']]]]
552
+ """
553
+ Structure is documented below.
554
+ """
555
+ elif False:
556
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointArgsDict: TypeAlias = Mapping[str, Any]
557
+
558
+ @pulumi.input_type
559
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointArgs:
560
+ def __init__(__self__, *,
561
+ connections: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs']]]] = None):
562
+ """
563
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs']]] connections: Structure is documented below.
564
+ """
565
+ if connections is not None:
566
+ pulumi.set(__self__, "connections", connections)
567
+
568
+ @property
569
+ @pulumi.getter
570
+ def connections(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs']]]]:
571
+ """
572
+ Structure is documented below.
573
+ """
574
+ return pulumi.get(self, "connections")
575
+
576
+ @connections.setter
577
+ def connections(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs']]]]):
578
+ pulumi.set(self, "connections", value)
579
+
580
+
581
+ if not MYPY:
582
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgsDict(TypedDict):
583
+ psc_connection: NotRequired[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgsDict']]
584
+ """
585
+ Detailed information of a PSC connection that is created by the customer
586
+ who owns the cluster.
587
+ Structure is documented below.
588
+ """
589
+ elif False:
590
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgsDict: TypeAlias = Mapping[str, Any]
591
+
592
+ @pulumi.input_type
593
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs:
594
+ def __init__(__self__, *,
595
+ psc_connection: Optional[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs']] = None):
596
+ """
597
+ :param pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs'] psc_connection: Detailed information of a PSC connection that is created by the customer
598
+ who owns the cluster.
599
+ Structure is documented below.
600
+ """
601
+ if psc_connection is not None:
602
+ pulumi.set(__self__, "psc_connection", psc_connection)
603
+
604
+ @property
605
+ @pulumi.getter(name="pscConnection")
606
+ def psc_connection(self) -> Optional[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs']]:
607
+ """
608
+ Detailed information of a PSC connection that is created by the customer
609
+ who owns the cluster.
610
+ Structure is documented below.
611
+ """
612
+ return pulumi.get(self, "psc_connection")
613
+
614
+ @psc_connection.setter
615
+ def psc_connection(self, value: Optional[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs']]):
616
+ pulumi.set(self, "psc_connection", value)
617
+
618
+
619
+ if not MYPY:
620
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgsDict(TypedDict):
621
+ forwarding_rule: pulumi.Input[str]
622
+ """
623
+ The URI of the consumer side forwarding rule.
624
+ Format:
625
+ projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}
626
+ """
627
+ ip_address: pulumi.Input[str]
628
+ """
629
+ The IP allocated on the consumer network for the PSC forwarding rule.
630
+ """
631
+ network: pulumi.Input[str]
632
+ """
633
+ The consumer network where the IP address resides, in the form of
634
+ projects/{project_id}/global/networks/{network_id}.
635
+ """
636
+ psc_connection_id: pulumi.Input[str]
637
+ """
638
+ The PSC connection id of the forwarding rule connected to the
639
+ service attachment.
640
+ """
641
+ service_attachment: pulumi.Input[str]
642
+ """
643
+ The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
644
+ """
645
+ connection_type: NotRequired[pulumi.Input[str]]
646
+ """
647
+ (Output)
648
+ Output Only. Type of a PSC Connection.
649
+ Possible values:
650
+ CONNECTION_TYPE_DISCOVERY
651
+ CONNECTION_TYPE_PRIMARY
652
+ CONNECTION_TYPE_READER
653
+ """
654
+ project_id: NotRequired[pulumi.Input[str]]
655
+ """
656
+ The consumer project_id where the forwarding rule is created from.
657
+ """
658
+ psc_connection_status: NotRequired[pulumi.Input[str]]
659
+ """
660
+ (Output)
661
+ Output Only. The status of the PSC connection: whether a connection exists and ACTIVE or it no longer exists.
662
+ Possible values:
663
+ ACTIVE
664
+ NOT_FOUND
665
+ """
666
+ elif False:
667
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgsDict: TypeAlias = Mapping[str, Any]
668
+
669
+ @pulumi.input_type
670
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs:
671
+ def __init__(__self__, *,
672
+ forwarding_rule: pulumi.Input[str],
673
+ ip_address: pulumi.Input[str],
674
+ network: pulumi.Input[str],
675
+ psc_connection_id: pulumi.Input[str],
676
+ service_attachment: pulumi.Input[str],
677
+ connection_type: Optional[pulumi.Input[str]] = None,
678
+ project_id: Optional[pulumi.Input[str]] = None,
679
+ psc_connection_status: Optional[pulumi.Input[str]] = None):
680
+ """
681
+ :param pulumi.Input[str] forwarding_rule: The URI of the consumer side forwarding rule.
682
+ Format:
683
+ projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}
684
+ :param pulumi.Input[str] ip_address: The IP allocated on the consumer network for the PSC forwarding rule.
685
+ :param pulumi.Input[str] network: The consumer network where the IP address resides, in the form of
686
+ projects/{project_id}/global/networks/{network_id}.
687
+ :param pulumi.Input[str] psc_connection_id: The PSC connection id of the forwarding rule connected to the
688
+ service attachment.
689
+ :param pulumi.Input[str] service_attachment: The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
690
+ :param pulumi.Input[str] connection_type: (Output)
691
+ Output Only. Type of a PSC Connection.
692
+ Possible values:
693
+ CONNECTION_TYPE_DISCOVERY
694
+ CONNECTION_TYPE_PRIMARY
695
+ CONNECTION_TYPE_READER
696
+ :param pulumi.Input[str] project_id: The consumer project_id where the forwarding rule is created from.
697
+ :param pulumi.Input[str] psc_connection_status: (Output)
698
+ Output Only. The status of the PSC connection: whether a connection exists and ACTIVE or it no longer exists.
699
+ Possible values:
700
+ ACTIVE
701
+ NOT_FOUND
702
+ """
703
+ pulumi.set(__self__, "forwarding_rule", forwarding_rule)
704
+ pulumi.set(__self__, "ip_address", ip_address)
705
+ pulumi.set(__self__, "network", network)
706
+ pulumi.set(__self__, "psc_connection_id", psc_connection_id)
707
+ pulumi.set(__self__, "service_attachment", service_attachment)
708
+ if connection_type is not None:
709
+ pulumi.set(__self__, "connection_type", connection_type)
710
+ if project_id is not None:
711
+ pulumi.set(__self__, "project_id", project_id)
712
+ if psc_connection_status is not None:
713
+ pulumi.set(__self__, "psc_connection_status", psc_connection_status)
714
+
715
+ @property
716
+ @pulumi.getter(name="forwardingRule")
717
+ def forwarding_rule(self) -> pulumi.Input[str]:
718
+ """
719
+ The URI of the consumer side forwarding rule.
720
+ Format:
721
+ projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}
722
+ """
723
+ return pulumi.get(self, "forwarding_rule")
724
+
725
+ @forwarding_rule.setter
726
+ def forwarding_rule(self, value: pulumi.Input[str]):
727
+ pulumi.set(self, "forwarding_rule", value)
728
+
729
+ @property
730
+ @pulumi.getter(name="ipAddress")
731
+ def ip_address(self) -> pulumi.Input[str]:
732
+ """
733
+ The IP allocated on the consumer network for the PSC forwarding rule.
734
+ """
735
+ return pulumi.get(self, "ip_address")
736
+
737
+ @ip_address.setter
738
+ def ip_address(self, value: pulumi.Input[str]):
739
+ pulumi.set(self, "ip_address", value)
740
+
741
+ @property
742
+ @pulumi.getter
743
+ def network(self) -> pulumi.Input[str]:
744
+ """
745
+ The consumer network where the IP address resides, in the form of
746
+ projects/{project_id}/global/networks/{network_id}.
747
+ """
748
+ return pulumi.get(self, "network")
749
+
750
+ @network.setter
751
+ def network(self, value: pulumi.Input[str]):
752
+ pulumi.set(self, "network", value)
753
+
754
+ @property
755
+ @pulumi.getter(name="pscConnectionId")
756
+ def psc_connection_id(self) -> pulumi.Input[str]:
757
+ """
758
+ The PSC connection id of the forwarding rule connected to the
759
+ service attachment.
760
+ """
761
+ return pulumi.get(self, "psc_connection_id")
762
+
763
+ @psc_connection_id.setter
764
+ def psc_connection_id(self, value: pulumi.Input[str]):
765
+ pulumi.set(self, "psc_connection_id", value)
766
+
767
+ @property
768
+ @pulumi.getter(name="serviceAttachment")
769
+ def service_attachment(self) -> pulumi.Input[str]:
770
+ """
771
+ The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
772
+ """
773
+ return pulumi.get(self, "service_attachment")
774
+
775
+ @service_attachment.setter
776
+ def service_attachment(self, value: pulumi.Input[str]):
777
+ pulumi.set(self, "service_attachment", value)
778
+
779
+ @property
780
+ @pulumi.getter(name="connectionType")
781
+ def connection_type(self) -> Optional[pulumi.Input[str]]:
782
+ """
783
+ (Output)
784
+ Output Only. Type of a PSC Connection.
785
+ Possible values:
786
+ CONNECTION_TYPE_DISCOVERY
787
+ CONNECTION_TYPE_PRIMARY
788
+ CONNECTION_TYPE_READER
789
+ """
790
+ return pulumi.get(self, "connection_type")
791
+
792
+ @connection_type.setter
793
+ def connection_type(self, value: Optional[pulumi.Input[str]]):
794
+ pulumi.set(self, "connection_type", value)
92
795
 
93
796
  @property
94
797
  @pulumi.getter(name="projectId")
95
- def project_id(self) -> pulumi.Input[str]:
798
+ def project_id(self) -> Optional[pulumi.Input[str]]:
96
799
  """
97
- (Output)
98
- Output only. The consumer project_id where the forwarding rule is created from.
800
+ The consumer project_id where the forwarding rule is created from.
99
801
  """
100
802
  return pulumi.get(self, "project_id")
101
803
 
102
804
  @project_id.setter
103
- def project_id(self, value: pulumi.Input[str]):
805
+ def project_id(self, value: Optional[pulumi.Input[str]]):
104
806
  pulumi.set(self, "project_id", value)
105
807
 
808
+ @property
809
+ @pulumi.getter(name="pscConnectionStatus")
810
+ def psc_connection_status(self) -> Optional[pulumi.Input[str]]:
811
+ """
812
+ (Output)
813
+ Output Only. The status of the PSC connection: whether a connection exists and ACTIVE or it no longer exists.
814
+ Possible values:
815
+ ACTIVE
816
+ NOT_FOUND
817
+ """
818
+ return pulumi.get(self, "psc_connection_status")
819
+
820
+ @psc_connection_status.setter
821
+ def psc_connection_status(self, value: Optional[pulumi.Input[str]]):
822
+ pulumi.set(self, "psc_connection_status", value)
823
+
106
824
 
107
825
  if not MYPY:
108
826
  class InstanceDiscoveryEndpointArgsDict(TypedDict):
@@ -478,6 +1196,417 @@ class InstanceEndpointConnectionPscAutoConnectionArgs:
478
1196
  pulumi.set(self, "service_attachment", value)
479
1197
 
480
1198
 
1199
+ if not MYPY:
1200
+ class InstanceMaintenancePolicyArgsDict(TypedDict):
1201
+ create_time: NotRequired[pulumi.Input[str]]
1202
+ """
1203
+ (Output)
1204
+ The time when the policy was created.
1205
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1206
+ resolution and up to nine fractional digits.
1207
+ """
1208
+ update_time: NotRequired[pulumi.Input[str]]
1209
+ """
1210
+ (Output)
1211
+ The time when the policy was last updated.
1212
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1213
+ resolution and up to nine fractional digits.
1214
+ """
1215
+ weekly_maintenance_windows: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceMaintenancePolicyWeeklyMaintenanceWindowArgsDict']]]]
1216
+ """
1217
+ Optional. Maintenance window that is applied to resources covered by this policy.
1218
+ Minimum 1. For the current version, the maximum number
1219
+ of weekly_window is expected to be one.
1220
+ Structure is documented below.
1221
+ """
1222
+ elif False:
1223
+ InstanceMaintenancePolicyArgsDict: TypeAlias = Mapping[str, Any]
1224
+
1225
+ @pulumi.input_type
1226
+ class InstanceMaintenancePolicyArgs:
1227
+ def __init__(__self__, *,
1228
+ create_time: Optional[pulumi.Input[str]] = None,
1229
+ update_time: Optional[pulumi.Input[str]] = None,
1230
+ weekly_maintenance_windows: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceMaintenancePolicyWeeklyMaintenanceWindowArgs']]]] = None):
1231
+ """
1232
+ :param pulumi.Input[str] create_time: (Output)
1233
+ The time when the policy was created.
1234
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1235
+ resolution and up to nine fractional digits.
1236
+ :param pulumi.Input[str] update_time: (Output)
1237
+ The time when the policy was last updated.
1238
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1239
+ resolution and up to nine fractional digits.
1240
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceMaintenancePolicyWeeklyMaintenanceWindowArgs']]] weekly_maintenance_windows: Optional. Maintenance window that is applied to resources covered by this policy.
1241
+ Minimum 1. For the current version, the maximum number
1242
+ of weekly_window is expected to be one.
1243
+ Structure is documented below.
1244
+ """
1245
+ if create_time is not None:
1246
+ pulumi.set(__self__, "create_time", create_time)
1247
+ if update_time is not None:
1248
+ pulumi.set(__self__, "update_time", update_time)
1249
+ if weekly_maintenance_windows is not None:
1250
+ pulumi.set(__self__, "weekly_maintenance_windows", weekly_maintenance_windows)
1251
+
1252
+ @property
1253
+ @pulumi.getter(name="createTime")
1254
+ def create_time(self) -> Optional[pulumi.Input[str]]:
1255
+ """
1256
+ (Output)
1257
+ The time when the policy was created.
1258
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1259
+ resolution and up to nine fractional digits.
1260
+ """
1261
+ return pulumi.get(self, "create_time")
1262
+
1263
+ @create_time.setter
1264
+ def create_time(self, value: Optional[pulumi.Input[str]]):
1265
+ pulumi.set(self, "create_time", value)
1266
+
1267
+ @property
1268
+ @pulumi.getter(name="updateTime")
1269
+ def update_time(self) -> Optional[pulumi.Input[str]]:
1270
+ """
1271
+ (Output)
1272
+ The time when the policy was last updated.
1273
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1274
+ resolution and up to nine fractional digits.
1275
+ """
1276
+ return pulumi.get(self, "update_time")
1277
+
1278
+ @update_time.setter
1279
+ def update_time(self, value: Optional[pulumi.Input[str]]):
1280
+ pulumi.set(self, "update_time", value)
1281
+
1282
+ @property
1283
+ @pulumi.getter(name="weeklyMaintenanceWindows")
1284
+ def weekly_maintenance_windows(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceMaintenancePolicyWeeklyMaintenanceWindowArgs']]]]:
1285
+ """
1286
+ Optional. Maintenance window that is applied to resources covered by this policy.
1287
+ Minimum 1. For the current version, the maximum number
1288
+ of weekly_window is expected to be one.
1289
+ Structure is documented below.
1290
+ """
1291
+ return pulumi.get(self, "weekly_maintenance_windows")
1292
+
1293
+ @weekly_maintenance_windows.setter
1294
+ def weekly_maintenance_windows(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceMaintenancePolicyWeeklyMaintenanceWindowArgs']]]]):
1295
+ pulumi.set(self, "weekly_maintenance_windows", value)
1296
+
1297
+
1298
+ if not MYPY:
1299
+ class InstanceMaintenancePolicyWeeklyMaintenanceWindowArgsDict(TypedDict):
1300
+ day: pulumi.Input[str]
1301
+ """
1302
+ The day of week that maintenance updates occur.
1303
+ - DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
1304
+ - MONDAY: Monday
1305
+ - TUESDAY: Tuesday
1306
+ - WEDNESDAY: Wednesday
1307
+ - THURSDAY: Thursday
1308
+ - FRIDAY: Friday
1309
+ - SATURDAY: Saturday
1310
+ - SUNDAY: Sunday
1311
+ Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.
1312
+ """
1313
+ start_time: pulumi.Input['InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgsDict']
1314
+ """
1315
+ Start time of the window in UTC time.
1316
+ Structure is documented below.
1317
+ """
1318
+ duration: NotRequired[pulumi.Input[str]]
1319
+ """
1320
+ (Output)
1321
+ Duration of the maintenance window.
1322
+ The current window is fixed at 1 hour.
1323
+ A duration in seconds with up to nine fractional digits,
1324
+ terminated by 's'. Example: "3.5s".
1325
+ """
1326
+ elif False:
1327
+ InstanceMaintenancePolicyWeeklyMaintenanceWindowArgsDict: TypeAlias = Mapping[str, Any]
1328
+
1329
+ @pulumi.input_type
1330
+ class InstanceMaintenancePolicyWeeklyMaintenanceWindowArgs:
1331
+ def __init__(__self__, *,
1332
+ day: pulumi.Input[str],
1333
+ start_time: pulumi.Input['InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs'],
1334
+ duration: Optional[pulumi.Input[str]] = None):
1335
+ """
1336
+ :param pulumi.Input[str] day: The day of week that maintenance updates occur.
1337
+ - DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
1338
+ - MONDAY: Monday
1339
+ - TUESDAY: Tuesday
1340
+ - WEDNESDAY: Wednesday
1341
+ - THURSDAY: Thursday
1342
+ - FRIDAY: Friday
1343
+ - SATURDAY: Saturday
1344
+ - SUNDAY: Sunday
1345
+ Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.
1346
+ :param pulumi.Input['InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs'] start_time: Start time of the window in UTC time.
1347
+ Structure is documented below.
1348
+ :param pulumi.Input[str] duration: (Output)
1349
+ Duration of the maintenance window.
1350
+ The current window is fixed at 1 hour.
1351
+ A duration in seconds with up to nine fractional digits,
1352
+ terminated by 's'. Example: "3.5s".
1353
+ """
1354
+ pulumi.set(__self__, "day", day)
1355
+ pulumi.set(__self__, "start_time", start_time)
1356
+ if duration is not None:
1357
+ pulumi.set(__self__, "duration", duration)
1358
+
1359
+ @property
1360
+ @pulumi.getter
1361
+ def day(self) -> pulumi.Input[str]:
1362
+ """
1363
+ The day of week that maintenance updates occur.
1364
+ - DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
1365
+ - MONDAY: Monday
1366
+ - TUESDAY: Tuesday
1367
+ - WEDNESDAY: Wednesday
1368
+ - THURSDAY: Thursday
1369
+ - FRIDAY: Friday
1370
+ - SATURDAY: Saturday
1371
+ - SUNDAY: Sunday
1372
+ Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.
1373
+ """
1374
+ return pulumi.get(self, "day")
1375
+
1376
+ @day.setter
1377
+ def day(self, value: pulumi.Input[str]):
1378
+ pulumi.set(self, "day", value)
1379
+
1380
+ @property
1381
+ @pulumi.getter(name="startTime")
1382
+ def start_time(self) -> pulumi.Input['InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs']:
1383
+ """
1384
+ Start time of the window in UTC time.
1385
+ Structure is documented below.
1386
+ """
1387
+ return pulumi.get(self, "start_time")
1388
+
1389
+ @start_time.setter
1390
+ def start_time(self, value: pulumi.Input['InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs']):
1391
+ pulumi.set(self, "start_time", value)
1392
+
1393
+ @property
1394
+ @pulumi.getter
1395
+ def duration(self) -> Optional[pulumi.Input[str]]:
1396
+ """
1397
+ (Output)
1398
+ Duration of the maintenance window.
1399
+ The current window is fixed at 1 hour.
1400
+ A duration in seconds with up to nine fractional digits,
1401
+ terminated by 's'. Example: "3.5s".
1402
+ """
1403
+ return pulumi.get(self, "duration")
1404
+
1405
+ @duration.setter
1406
+ def duration(self, value: Optional[pulumi.Input[str]]):
1407
+ pulumi.set(self, "duration", value)
1408
+
1409
+
1410
+ if not MYPY:
1411
+ class InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgsDict(TypedDict):
1412
+ hours: NotRequired[pulumi.Input[int]]
1413
+ """
1414
+ Hours of day in 24 hour format. Should be from 0 to 23.
1415
+ An API may choose to allow the value "24:00:00" for scenarios like business closing time.
1416
+ """
1417
+ minutes: NotRequired[pulumi.Input[int]]
1418
+ """
1419
+ Minutes of hour of day. Must be from 0 to 59.
1420
+ """
1421
+ nanos: NotRequired[pulumi.Input[int]]
1422
+ """
1423
+ Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1424
+ """
1425
+ seconds: NotRequired[pulumi.Input[int]]
1426
+ """
1427
+ Seconds of minutes of the time. Must normally be from 0 to 59.
1428
+ An API may allow the value 60 if it allows leap-seconds.
1429
+ """
1430
+ elif False:
1431
+ InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgsDict: TypeAlias = Mapping[str, Any]
1432
+
1433
+ @pulumi.input_type
1434
+ class InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs:
1435
+ def __init__(__self__, *,
1436
+ hours: Optional[pulumi.Input[int]] = None,
1437
+ minutes: Optional[pulumi.Input[int]] = None,
1438
+ nanos: Optional[pulumi.Input[int]] = None,
1439
+ seconds: Optional[pulumi.Input[int]] = None):
1440
+ """
1441
+ :param pulumi.Input[int] hours: Hours of day in 24 hour format. Should be from 0 to 23.
1442
+ An API may choose to allow the value "24:00:00" for scenarios like business closing time.
1443
+ :param pulumi.Input[int] minutes: Minutes of hour of day. Must be from 0 to 59.
1444
+ :param pulumi.Input[int] nanos: Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1445
+ :param pulumi.Input[int] seconds: Seconds of minutes of the time. Must normally be from 0 to 59.
1446
+ An API may allow the value 60 if it allows leap-seconds.
1447
+ """
1448
+ if hours is not None:
1449
+ pulumi.set(__self__, "hours", hours)
1450
+ if minutes is not None:
1451
+ pulumi.set(__self__, "minutes", minutes)
1452
+ if nanos is not None:
1453
+ pulumi.set(__self__, "nanos", nanos)
1454
+ if seconds is not None:
1455
+ pulumi.set(__self__, "seconds", seconds)
1456
+
1457
+ @property
1458
+ @pulumi.getter
1459
+ def hours(self) -> Optional[pulumi.Input[int]]:
1460
+ """
1461
+ Hours of day in 24 hour format. Should be from 0 to 23.
1462
+ An API may choose to allow the value "24:00:00" for scenarios like business closing time.
1463
+ """
1464
+ return pulumi.get(self, "hours")
1465
+
1466
+ @hours.setter
1467
+ def hours(self, value: Optional[pulumi.Input[int]]):
1468
+ pulumi.set(self, "hours", value)
1469
+
1470
+ @property
1471
+ @pulumi.getter
1472
+ def minutes(self) -> Optional[pulumi.Input[int]]:
1473
+ """
1474
+ Minutes of hour of day. Must be from 0 to 59.
1475
+ """
1476
+ return pulumi.get(self, "minutes")
1477
+
1478
+ @minutes.setter
1479
+ def minutes(self, value: Optional[pulumi.Input[int]]):
1480
+ pulumi.set(self, "minutes", value)
1481
+
1482
+ @property
1483
+ @pulumi.getter
1484
+ def nanos(self) -> Optional[pulumi.Input[int]]:
1485
+ """
1486
+ Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1487
+ """
1488
+ return pulumi.get(self, "nanos")
1489
+
1490
+ @nanos.setter
1491
+ def nanos(self, value: Optional[pulumi.Input[int]]):
1492
+ pulumi.set(self, "nanos", value)
1493
+
1494
+ @property
1495
+ @pulumi.getter
1496
+ def seconds(self) -> Optional[pulumi.Input[int]]:
1497
+ """
1498
+ Seconds of minutes of the time. Must normally be from 0 to 59.
1499
+ An API may allow the value 60 if it allows leap-seconds.
1500
+ """
1501
+ return pulumi.get(self, "seconds")
1502
+
1503
+ @seconds.setter
1504
+ def seconds(self, value: Optional[pulumi.Input[int]]):
1505
+ pulumi.set(self, "seconds", value)
1506
+
1507
+
1508
+ if not MYPY:
1509
+ class InstanceMaintenanceScheduleArgsDict(TypedDict):
1510
+ end_time: NotRequired[pulumi.Input[str]]
1511
+ """
1512
+ (Output)
1513
+ The end time of any upcoming scheduled maintenance for this cluster.
1514
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1515
+ resolution and up to nine fractional digits.
1516
+ """
1517
+ schedule_deadline_time: NotRequired[pulumi.Input[str]]
1518
+ """
1519
+ (Output)
1520
+ The deadline that the maintenance schedule start time
1521
+ can not go beyond, including reschedule.
1522
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1523
+ resolution and up to nine fractional digits.
1524
+ """
1525
+ start_time: NotRequired[pulumi.Input[str]]
1526
+ """
1527
+ (Output)
1528
+ The start time of any upcoming scheduled maintenance for this cluster.
1529
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1530
+ resolution and up to nine fractional digits.
1531
+ """
1532
+ elif False:
1533
+ InstanceMaintenanceScheduleArgsDict: TypeAlias = Mapping[str, Any]
1534
+
1535
+ @pulumi.input_type
1536
+ class InstanceMaintenanceScheduleArgs:
1537
+ def __init__(__self__, *,
1538
+ end_time: Optional[pulumi.Input[str]] = None,
1539
+ schedule_deadline_time: Optional[pulumi.Input[str]] = None,
1540
+ start_time: Optional[pulumi.Input[str]] = None):
1541
+ """
1542
+ :param pulumi.Input[str] end_time: (Output)
1543
+ The end time of any upcoming scheduled maintenance for this cluster.
1544
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1545
+ resolution and up to nine fractional digits.
1546
+ :param pulumi.Input[str] schedule_deadline_time: (Output)
1547
+ The deadline that the maintenance schedule start time
1548
+ can not go beyond, including reschedule.
1549
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1550
+ resolution and up to nine fractional digits.
1551
+ :param pulumi.Input[str] start_time: (Output)
1552
+ The start time of any upcoming scheduled maintenance for this cluster.
1553
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1554
+ resolution and up to nine fractional digits.
1555
+ """
1556
+ if end_time is not None:
1557
+ pulumi.set(__self__, "end_time", end_time)
1558
+ if schedule_deadline_time is not None:
1559
+ pulumi.set(__self__, "schedule_deadline_time", schedule_deadline_time)
1560
+ if start_time is not None:
1561
+ pulumi.set(__self__, "start_time", start_time)
1562
+
1563
+ @property
1564
+ @pulumi.getter(name="endTime")
1565
+ def end_time(self) -> Optional[pulumi.Input[str]]:
1566
+ """
1567
+ (Output)
1568
+ The end time of any upcoming scheduled maintenance for this cluster.
1569
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1570
+ resolution and up to nine fractional digits.
1571
+ """
1572
+ return pulumi.get(self, "end_time")
1573
+
1574
+ @end_time.setter
1575
+ def end_time(self, value: Optional[pulumi.Input[str]]):
1576
+ pulumi.set(self, "end_time", value)
1577
+
1578
+ @property
1579
+ @pulumi.getter(name="scheduleDeadlineTime")
1580
+ def schedule_deadline_time(self) -> Optional[pulumi.Input[str]]:
1581
+ """
1582
+ (Output)
1583
+ The deadline that the maintenance schedule start time
1584
+ can not go beyond, including reschedule.
1585
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1586
+ resolution and up to nine fractional digits.
1587
+ """
1588
+ return pulumi.get(self, "schedule_deadline_time")
1589
+
1590
+ @schedule_deadline_time.setter
1591
+ def schedule_deadline_time(self, value: Optional[pulumi.Input[str]]):
1592
+ pulumi.set(self, "schedule_deadline_time", value)
1593
+
1594
+ @property
1595
+ @pulumi.getter(name="startTime")
1596
+ def start_time(self) -> Optional[pulumi.Input[str]]:
1597
+ """
1598
+ (Output)
1599
+ The start time of any upcoming scheduled maintenance for this cluster.
1600
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1601
+ resolution and up to nine fractional digits.
1602
+ """
1603
+ return pulumi.get(self, "start_time")
1604
+
1605
+ @start_time.setter
1606
+ def start_time(self, value: Optional[pulumi.Input[str]]):
1607
+ pulumi.set(self, "start_time", value)
1608
+
1609
+
481
1610
  if not MYPY:
482
1611
  class InstanceNodeConfigArgsDict(TypedDict):
483
1612
  size_gb: NotRequired[pulumi.Input[float]]
@@ -723,6 +1852,76 @@ class InstancePersistenceConfigRdbConfigArgs:
723
1852
  pulumi.set(self, "rdb_snapshot_start_time", value)
724
1853
 
725
1854
 
1855
+ if not MYPY:
1856
+ class InstancePscAttachmentDetailArgsDict(TypedDict):
1857
+ connection_type: NotRequired[pulumi.Input[str]]
1858
+ """
1859
+ (Output)
1860
+ Output Only. Type of a PSC Connection.
1861
+ Possible values:
1862
+ CONNECTION_TYPE_DISCOVERY
1863
+ CONNECTION_TYPE_PRIMARY
1864
+ CONNECTION_TYPE_READER
1865
+ """
1866
+ service_attachment: NotRequired[pulumi.Input[str]]
1867
+ """
1868
+ (Output)
1869
+ Output only. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
1870
+ """
1871
+ elif False:
1872
+ InstancePscAttachmentDetailArgsDict: TypeAlias = Mapping[str, Any]
1873
+
1874
+ @pulumi.input_type
1875
+ class InstancePscAttachmentDetailArgs:
1876
+ def __init__(__self__, *,
1877
+ connection_type: Optional[pulumi.Input[str]] = None,
1878
+ service_attachment: Optional[pulumi.Input[str]] = None):
1879
+ """
1880
+ :param pulumi.Input[str] connection_type: (Output)
1881
+ Output Only. Type of a PSC Connection.
1882
+ Possible values:
1883
+ CONNECTION_TYPE_DISCOVERY
1884
+ CONNECTION_TYPE_PRIMARY
1885
+ CONNECTION_TYPE_READER
1886
+ :param pulumi.Input[str] service_attachment: (Output)
1887
+ Output only. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
1888
+ """
1889
+ if connection_type is not None:
1890
+ pulumi.set(__self__, "connection_type", connection_type)
1891
+ if service_attachment is not None:
1892
+ pulumi.set(__self__, "service_attachment", service_attachment)
1893
+
1894
+ @property
1895
+ @pulumi.getter(name="connectionType")
1896
+ def connection_type(self) -> Optional[pulumi.Input[str]]:
1897
+ """
1898
+ (Output)
1899
+ Output Only. Type of a PSC Connection.
1900
+ Possible values:
1901
+ CONNECTION_TYPE_DISCOVERY
1902
+ CONNECTION_TYPE_PRIMARY
1903
+ CONNECTION_TYPE_READER
1904
+ """
1905
+ return pulumi.get(self, "connection_type")
1906
+
1907
+ @connection_type.setter
1908
+ def connection_type(self, value: Optional[pulumi.Input[str]]):
1909
+ pulumi.set(self, "connection_type", value)
1910
+
1911
+ @property
1912
+ @pulumi.getter(name="serviceAttachment")
1913
+ def service_attachment(self) -> Optional[pulumi.Input[str]]:
1914
+ """
1915
+ (Output)
1916
+ Output only. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
1917
+ """
1918
+ return pulumi.get(self, "service_attachment")
1919
+
1920
+ @service_attachment.setter
1921
+ def service_attachment(self, value: Optional[pulumi.Input[str]]):
1922
+ pulumi.set(self, "service_attachment", value)
1923
+
1924
+
726
1925
  if not MYPY:
727
1926
  class InstancePscAutoConnectionArgsDict(TypedDict):
728
1927
  connection_type: NotRequired[pulumi.Input[str]]
@@ -1015,6 +2214,16 @@ class InstanceStateInfoArgs:
1015
2214
 
1016
2215
  if not MYPY:
1017
2216
  class InstanceStateInfoUpdateInfoArgsDict(TypedDict):
2217
+ target_engine_version: NotRequired[pulumi.Input[str]]
2218
+ """
2219
+ (Output)
2220
+ Output only. Target engine version for the instance.
2221
+ """
2222
+ target_node_type: NotRequired[pulumi.Input[str]]
2223
+ """
2224
+ (Output)
2225
+ Output only. Target node type for the instance.
2226
+ """
1018
2227
  target_replica_count: NotRequired[pulumi.Input[int]]
1019
2228
  """
1020
2229
  (Output)
@@ -1031,19 +2240,55 @@ elif False:
1031
2240
  @pulumi.input_type
1032
2241
  class InstanceStateInfoUpdateInfoArgs:
1033
2242
  def __init__(__self__, *,
2243
+ target_engine_version: Optional[pulumi.Input[str]] = None,
2244
+ target_node_type: Optional[pulumi.Input[str]] = None,
1034
2245
  target_replica_count: Optional[pulumi.Input[int]] = None,
1035
2246
  target_shard_count: Optional[pulumi.Input[int]] = None):
1036
2247
  """
2248
+ :param pulumi.Input[str] target_engine_version: (Output)
2249
+ Output only. Target engine version for the instance.
2250
+ :param pulumi.Input[str] target_node_type: (Output)
2251
+ Output only. Target node type for the instance.
1037
2252
  :param pulumi.Input[int] target_replica_count: (Output)
1038
2253
  Output only. Target number of replica nodes per shard for the instance.
1039
2254
  :param pulumi.Input[int] target_shard_count: (Output)
1040
2255
  Output only. Target number of shards for the instance.
1041
2256
  """
2257
+ if target_engine_version is not None:
2258
+ pulumi.set(__self__, "target_engine_version", target_engine_version)
2259
+ if target_node_type is not None:
2260
+ pulumi.set(__self__, "target_node_type", target_node_type)
1042
2261
  if target_replica_count is not None:
1043
2262
  pulumi.set(__self__, "target_replica_count", target_replica_count)
1044
2263
  if target_shard_count is not None:
1045
2264
  pulumi.set(__self__, "target_shard_count", target_shard_count)
1046
2265
 
2266
+ @property
2267
+ @pulumi.getter(name="targetEngineVersion")
2268
+ def target_engine_version(self) -> Optional[pulumi.Input[str]]:
2269
+ """
2270
+ (Output)
2271
+ Output only. Target engine version for the instance.
2272
+ """
2273
+ return pulumi.get(self, "target_engine_version")
2274
+
2275
+ @target_engine_version.setter
2276
+ def target_engine_version(self, value: Optional[pulumi.Input[str]]):
2277
+ pulumi.set(self, "target_engine_version", value)
2278
+
2279
+ @property
2280
+ @pulumi.getter(name="targetNodeType")
2281
+ def target_node_type(self) -> Optional[pulumi.Input[str]]:
2282
+ """
2283
+ (Output)
2284
+ Output only. Target node type for the instance.
2285
+ """
2286
+ return pulumi.get(self, "target_node_type")
2287
+
2288
+ @target_node_type.setter
2289
+ def target_node_type(self, value: Optional[pulumi.Input[str]]):
2290
+ pulumi.set(self, "target_node_type", value)
2291
+
1047
2292
  @property
1048
2293
  @pulumi.getter(name="targetReplicaCount")
1049
2294
  def target_replica_count(self) -> Optional[pulumi.Input[int]]: