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
@@ -16,34 +16,351 @@ from .. import _utilities
16
16
  from . import outputs
17
17
 
18
18
  __all__ = [
19
+ 'InstanceCrossInstanceReplicationConfig',
20
+ 'InstanceCrossInstanceReplicationConfigMembership',
21
+ 'InstanceCrossInstanceReplicationConfigMembershipPrimaryInstance',
22
+ 'InstanceCrossInstanceReplicationConfigMembershipSecondaryInstance',
23
+ 'InstanceCrossInstanceReplicationConfigPrimaryInstance',
24
+ 'InstanceCrossInstanceReplicationConfigSecondaryInstance',
19
25
  'InstanceDesiredPscAutoConnection',
26
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpoint',
27
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection',
28
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection',
20
29
  'InstanceDiscoveryEndpoint',
21
30
  'InstanceEndpoint',
22
31
  'InstanceEndpointConnection',
23
32
  'InstanceEndpointConnectionPscAutoConnection',
33
+ 'InstanceMaintenancePolicy',
34
+ 'InstanceMaintenancePolicyWeeklyMaintenanceWindow',
35
+ 'InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime',
36
+ 'InstanceMaintenanceSchedule',
24
37
  'InstanceNodeConfig',
25
38
  'InstancePersistenceConfig',
26
39
  'InstancePersistenceConfigAofConfig',
27
40
  'InstancePersistenceConfigRdbConfig',
41
+ 'InstancePscAttachmentDetail',
28
42
  'InstancePscAutoConnection',
29
43
  'InstanceStateInfo',
30
44
  'InstanceStateInfoUpdateInfo',
31
45
  'InstanceZoneDistributionConfig',
46
+ 'GetInstanceCrossInstanceReplicationConfigResult',
47
+ 'GetInstanceCrossInstanceReplicationConfigMembershipResult',
48
+ 'GetInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceResult',
49
+ 'GetInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceResult',
50
+ 'GetInstanceCrossInstanceReplicationConfigPrimaryInstanceResult',
51
+ 'GetInstanceCrossInstanceReplicationConfigSecondaryInstanceResult',
32
52
  'GetInstanceDesiredPscAutoConnectionResult',
33
53
  'GetInstanceDiscoveryEndpointResult',
34
54
  'GetInstanceEndpointResult',
35
55
  'GetInstanceEndpointConnectionResult',
36
56
  'GetInstanceEndpointConnectionPscAutoConnectionResult',
57
+ 'GetInstanceMaintenancePolicyResult',
58
+ 'GetInstanceMaintenancePolicyWeeklyMaintenanceWindowResult',
59
+ 'GetInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeResult',
60
+ 'GetInstanceMaintenanceScheduleResult',
37
61
  'GetInstanceNodeConfigResult',
38
62
  'GetInstancePersistenceConfigResult',
39
63
  'GetInstancePersistenceConfigAofConfigResult',
40
64
  'GetInstancePersistenceConfigRdbConfigResult',
65
+ 'GetInstancePscAttachmentDetailResult',
41
66
  'GetInstancePscAutoConnectionResult',
42
67
  'GetInstanceStateInfoResult',
43
68
  'GetInstanceStateInfoUpdateInfoResult',
44
69
  'GetInstanceZoneDistributionConfigResult',
45
70
  ]
46
71
 
72
+ @pulumi.output_type
73
+ class InstanceCrossInstanceReplicationConfig(dict):
74
+ @staticmethod
75
+ def __key_warning(key: str):
76
+ suggest = None
77
+ if key == "instanceRole":
78
+ suggest = "instance_role"
79
+ elif key == "primaryInstance":
80
+ suggest = "primary_instance"
81
+ elif key == "secondaryInstances":
82
+ suggest = "secondary_instances"
83
+ elif key == "updateTime":
84
+ suggest = "update_time"
85
+
86
+ if suggest:
87
+ pulumi.log.warn(f"Key '{key}' not found in InstanceCrossInstanceReplicationConfig. Access the value via the '{suggest}' property getter instead.")
88
+
89
+ def __getitem__(self, key: str) -> Any:
90
+ InstanceCrossInstanceReplicationConfig.__key_warning(key)
91
+ return super().__getitem__(key)
92
+
93
+ def get(self, key: str, default = None) -> Any:
94
+ InstanceCrossInstanceReplicationConfig.__key_warning(key)
95
+ return super().get(key, default)
96
+
97
+ def __init__(__self__, *,
98
+ instance_role: Optional[str] = None,
99
+ memberships: Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigMembership']] = None,
100
+ primary_instance: Optional['outputs.InstanceCrossInstanceReplicationConfigPrimaryInstance'] = None,
101
+ secondary_instances: Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigSecondaryInstance']] = None,
102
+ update_time: Optional[str] = None):
103
+ """
104
+ :param str instance_role: The instance role supports the following values:
105
+ 1. `INSTANCE_ROLE_UNSPECIFIED`: This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
106
+ 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.
107
+ 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.
108
+ 4. `SECONDARY`: This instance replicates data from the primary instance. It allows only reads.
109
+ Possible values are: `INSTANCE_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
110
+ :param Sequence['InstanceCrossInstanceReplicationConfigMembershipArgs'] memberships: (Output)
111
+ 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.
112
+ Structure is documented below.
113
+ :param '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`.
114
+ Structure is documented below.
115
+ :param Sequence['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`.
116
+ Structure is documented below.
117
+ :param str update_time: (Output)
118
+ The last time cross instance replication config was updated.
119
+ """
120
+ if instance_role is not None:
121
+ pulumi.set(__self__, "instance_role", instance_role)
122
+ if memberships is not None:
123
+ pulumi.set(__self__, "memberships", memberships)
124
+ if primary_instance is not None:
125
+ pulumi.set(__self__, "primary_instance", primary_instance)
126
+ if secondary_instances is not None:
127
+ pulumi.set(__self__, "secondary_instances", secondary_instances)
128
+ if update_time is not None:
129
+ pulumi.set(__self__, "update_time", update_time)
130
+
131
+ @property
132
+ @pulumi.getter(name="instanceRole")
133
+ def instance_role(self) -> Optional[str]:
134
+ """
135
+ The instance role supports the following values:
136
+ 1. `INSTANCE_ROLE_UNSPECIFIED`: This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
137
+ 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.
138
+ 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.
139
+ 4. `SECONDARY`: This instance replicates data from the primary instance. It allows only reads.
140
+ Possible values are: `INSTANCE_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
141
+ """
142
+ return pulumi.get(self, "instance_role")
143
+
144
+ @property
145
+ @pulumi.getter
146
+ def memberships(self) -> Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigMembership']]:
147
+ """
148
+ (Output)
149
+ 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.
150
+ Structure is documented below.
151
+ """
152
+ return pulumi.get(self, "memberships")
153
+
154
+ @property
155
+ @pulumi.getter(name="primaryInstance")
156
+ def primary_instance(self) -> Optional['outputs.InstanceCrossInstanceReplicationConfigPrimaryInstance']:
157
+ """
158
+ 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`.
159
+ Structure is documented below.
160
+ """
161
+ return pulumi.get(self, "primary_instance")
162
+
163
+ @property
164
+ @pulumi.getter(name="secondaryInstances")
165
+ def secondary_instances(self) -> Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigSecondaryInstance']]:
166
+ """
167
+ 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`.
168
+ Structure is documented below.
169
+ """
170
+ return pulumi.get(self, "secondary_instances")
171
+
172
+ @property
173
+ @pulumi.getter(name="updateTime")
174
+ def update_time(self) -> Optional[str]:
175
+ """
176
+ (Output)
177
+ The last time cross instance replication config was updated.
178
+ """
179
+ return pulumi.get(self, "update_time")
180
+
181
+
182
+ @pulumi.output_type
183
+ class InstanceCrossInstanceReplicationConfigMembership(dict):
184
+ @staticmethod
185
+ def __key_warning(key: str):
186
+ suggest = None
187
+ if key == "primaryInstances":
188
+ suggest = "primary_instances"
189
+ elif key == "secondaryInstances":
190
+ suggest = "secondary_instances"
191
+
192
+ if suggest:
193
+ pulumi.log.warn(f"Key '{key}' not found in InstanceCrossInstanceReplicationConfigMembership. Access the value via the '{suggest}' property getter instead.")
194
+
195
+ def __getitem__(self, key: str) -> Any:
196
+ InstanceCrossInstanceReplicationConfigMembership.__key_warning(key)
197
+ return super().__getitem__(key)
198
+
199
+ def get(self, key: str, default = None) -> Any:
200
+ InstanceCrossInstanceReplicationConfigMembership.__key_warning(key)
201
+ return super().get(key, default)
202
+
203
+ def __init__(__self__, *,
204
+ primary_instances: Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigMembershipPrimaryInstance']] = None,
205
+ secondary_instances: Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigMembershipSecondaryInstance']] = None):
206
+ """
207
+ :param Sequence['InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs'] primary_instances: Details of the primary instance that is used as the replication source for all the secondary instances.
208
+ :param Sequence['InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs'] secondary_instances: List of secondary instances that are replicating from the primary instance.
209
+ """
210
+ if primary_instances is not None:
211
+ pulumi.set(__self__, "primary_instances", primary_instances)
212
+ if secondary_instances is not None:
213
+ pulumi.set(__self__, "secondary_instances", secondary_instances)
214
+
215
+ @property
216
+ @pulumi.getter(name="primaryInstances")
217
+ def primary_instances(self) -> Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigMembershipPrimaryInstance']]:
218
+ """
219
+ Details of the primary instance that is used as the replication source for all the secondary instances.
220
+ """
221
+ return pulumi.get(self, "primary_instances")
222
+
223
+ @property
224
+ @pulumi.getter(name="secondaryInstances")
225
+ def secondary_instances(self) -> Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigMembershipSecondaryInstance']]:
226
+ """
227
+ List of secondary instances that are replicating from the primary instance.
228
+ """
229
+ return pulumi.get(self, "secondary_instances")
230
+
231
+
232
+ @pulumi.output_type
233
+ class InstanceCrossInstanceReplicationConfigMembershipPrimaryInstance(dict):
234
+ def __init__(__self__, *,
235
+ instance: Optional[str] = None,
236
+ uid: Optional[str] = None):
237
+ """
238
+ :param str instance: The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
239
+ :param str uid: (Output)
240
+ The unique id of the primary instance.
241
+ """
242
+ if instance is not None:
243
+ pulumi.set(__self__, "instance", instance)
244
+ if uid is not None:
245
+ pulumi.set(__self__, "uid", uid)
246
+
247
+ @property
248
+ @pulumi.getter
249
+ def instance(self) -> Optional[str]:
250
+ """
251
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
252
+ """
253
+ return pulumi.get(self, "instance")
254
+
255
+ @property
256
+ @pulumi.getter
257
+ def uid(self) -> Optional[str]:
258
+ """
259
+ (Output)
260
+ The unique id of the primary instance.
261
+ """
262
+ return pulumi.get(self, "uid")
263
+
264
+
265
+ @pulumi.output_type
266
+ class InstanceCrossInstanceReplicationConfigMembershipSecondaryInstance(dict):
267
+ def __init__(__self__, *,
268
+ instance: Optional[str] = None,
269
+ uid: Optional[str] = None):
270
+ """
271
+ :param str instance: The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
272
+ :param str uid: Output only. System assigned, unique identifier for the instance.
273
+ """
274
+ if instance is not None:
275
+ pulumi.set(__self__, "instance", instance)
276
+ if uid is not None:
277
+ pulumi.set(__self__, "uid", uid)
278
+
279
+ @property
280
+ @pulumi.getter
281
+ def instance(self) -> Optional[str]:
282
+ """
283
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
284
+ """
285
+ return pulumi.get(self, "instance")
286
+
287
+ @property
288
+ @pulumi.getter
289
+ def uid(self) -> Optional[str]:
290
+ """
291
+ Output only. System assigned, unique identifier for the instance.
292
+ """
293
+ return pulumi.get(self, "uid")
294
+
295
+
296
+ @pulumi.output_type
297
+ class InstanceCrossInstanceReplicationConfigPrimaryInstance(dict):
298
+ def __init__(__self__, *,
299
+ instance: Optional[str] = None,
300
+ uid: Optional[str] = None):
301
+ """
302
+ :param str instance: The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
303
+ :param str uid: (Output)
304
+ The unique id of the primary instance.
305
+ """
306
+ if instance is not None:
307
+ pulumi.set(__self__, "instance", instance)
308
+ if uid is not None:
309
+ pulumi.set(__self__, "uid", uid)
310
+
311
+ @property
312
+ @pulumi.getter
313
+ def instance(self) -> Optional[str]:
314
+ """
315
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
316
+ """
317
+ return pulumi.get(self, "instance")
318
+
319
+ @property
320
+ @pulumi.getter
321
+ def uid(self) -> Optional[str]:
322
+ """
323
+ (Output)
324
+ The unique id of the primary instance.
325
+ """
326
+ return pulumi.get(self, "uid")
327
+
328
+
329
+ @pulumi.output_type
330
+ class InstanceCrossInstanceReplicationConfigSecondaryInstance(dict):
331
+ def __init__(__self__, *,
332
+ instance: Optional[str] = None,
333
+ uid: Optional[str] = None):
334
+ """
335
+ :param str instance: (Output)
336
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
337
+ :param str uid: (Output)
338
+ The unique id of the secondary instance.
339
+ """
340
+ if instance is not None:
341
+ pulumi.set(__self__, "instance", instance)
342
+ if uid is not None:
343
+ pulumi.set(__self__, "uid", uid)
344
+
345
+ @property
346
+ @pulumi.getter
347
+ def instance(self) -> Optional[str]:
348
+ """
349
+ (Output)
350
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
351
+ """
352
+ return pulumi.get(self, "instance")
353
+
354
+ @property
355
+ @pulumi.getter
356
+ def uid(self) -> Optional[str]:
357
+ """
358
+ (Output)
359
+ The unique id of the secondary instance.
360
+ """
361
+ return pulumi.get(self, "uid")
362
+
363
+
47
364
  @pulumi.output_type
48
365
  class InstanceDesiredPscAutoConnection(dict):
49
366
  @staticmethod
@@ -96,6 +413,218 @@ class InstanceDesiredPscAutoConnection(dict):
96
413
  return pulumi.get(self, "project_id")
97
414
 
98
415
 
416
+ @pulumi.output_type
417
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpoint(dict):
418
+ def __init__(__self__, *,
419
+ connections: Optional[Sequence['outputs.InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection']] = None):
420
+ """
421
+ :param Sequence['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs'] connections: Structure is documented below.
422
+ """
423
+ if connections is not None:
424
+ pulumi.set(__self__, "connections", connections)
425
+
426
+ @property
427
+ @pulumi.getter
428
+ def connections(self) -> Optional[Sequence['outputs.InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection']]:
429
+ """
430
+ Structure is documented below.
431
+ """
432
+ return pulumi.get(self, "connections")
433
+
434
+
435
+ @pulumi.output_type
436
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection(dict):
437
+ @staticmethod
438
+ def __key_warning(key: str):
439
+ suggest = None
440
+ if key == "pscConnection":
441
+ suggest = "psc_connection"
442
+
443
+ if suggest:
444
+ pulumi.log.warn(f"Key '{key}' not found in InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection. Access the value via the '{suggest}' property getter instead.")
445
+
446
+ def __getitem__(self, key: str) -> Any:
447
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection.__key_warning(key)
448
+ return super().__getitem__(key)
449
+
450
+ def get(self, key: str, default = None) -> Any:
451
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection.__key_warning(key)
452
+ return super().get(key, default)
453
+
454
+ def __init__(__self__, *,
455
+ psc_connection: Optional['outputs.InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection'] = None):
456
+ """
457
+ :param 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs' psc_connection: Detailed information of a PSC connection that is created by the customer
458
+ who owns the cluster.
459
+ Structure is documented below.
460
+ """
461
+ if psc_connection is not None:
462
+ pulumi.set(__self__, "psc_connection", psc_connection)
463
+
464
+ @property
465
+ @pulumi.getter(name="pscConnection")
466
+ def psc_connection(self) -> Optional['outputs.InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection']:
467
+ """
468
+ Detailed information of a PSC connection that is created by the customer
469
+ who owns the cluster.
470
+ Structure is documented below.
471
+ """
472
+ return pulumi.get(self, "psc_connection")
473
+
474
+
475
+ @pulumi.output_type
476
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection(dict):
477
+ @staticmethod
478
+ def __key_warning(key: str):
479
+ suggest = None
480
+ if key == "forwardingRule":
481
+ suggest = "forwarding_rule"
482
+ elif key == "ipAddress":
483
+ suggest = "ip_address"
484
+ elif key == "pscConnectionId":
485
+ suggest = "psc_connection_id"
486
+ elif key == "serviceAttachment":
487
+ suggest = "service_attachment"
488
+ elif key == "connectionType":
489
+ suggest = "connection_type"
490
+ elif key == "projectId":
491
+ suggest = "project_id"
492
+ elif key == "pscConnectionStatus":
493
+ suggest = "psc_connection_status"
494
+
495
+ if suggest:
496
+ pulumi.log.warn(f"Key '{key}' not found in InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection. Access the value via the '{suggest}' property getter instead.")
497
+
498
+ def __getitem__(self, key: str) -> Any:
499
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection.__key_warning(key)
500
+ return super().__getitem__(key)
501
+
502
+ def get(self, key: str, default = None) -> Any:
503
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection.__key_warning(key)
504
+ return super().get(key, default)
505
+
506
+ def __init__(__self__, *,
507
+ forwarding_rule: str,
508
+ ip_address: str,
509
+ network: str,
510
+ psc_connection_id: str,
511
+ service_attachment: str,
512
+ connection_type: Optional[str] = None,
513
+ project_id: Optional[str] = None,
514
+ psc_connection_status: Optional[str] = None):
515
+ """
516
+ :param str forwarding_rule: The URI of the consumer side forwarding rule.
517
+ Format:
518
+ projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}
519
+ :param str ip_address: The IP allocated on the consumer network for the PSC forwarding rule.
520
+ :param str network: The consumer network where the IP address resides, in the form of
521
+ projects/{project_id}/global/networks/{network_id}.
522
+ :param str psc_connection_id: The PSC connection id of the forwarding rule connected to the
523
+ service attachment.
524
+ :param 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}.
525
+ :param str connection_type: (Output)
526
+ Output Only. Type of a PSC Connection.
527
+ Possible values:
528
+ CONNECTION_TYPE_DISCOVERY
529
+ CONNECTION_TYPE_PRIMARY
530
+ CONNECTION_TYPE_READER
531
+ :param str project_id: The consumer project_id where the forwarding rule is created from.
532
+ :param str psc_connection_status: (Output)
533
+ Output Only. The status of the PSC connection: whether a connection exists and ACTIVE or it no longer exists.
534
+ Possible values:
535
+ ACTIVE
536
+ NOT_FOUND
537
+ """
538
+ pulumi.set(__self__, "forwarding_rule", forwarding_rule)
539
+ pulumi.set(__self__, "ip_address", ip_address)
540
+ pulumi.set(__self__, "network", network)
541
+ pulumi.set(__self__, "psc_connection_id", psc_connection_id)
542
+ pulumi.set(__self__, "service_attachment", service_attachment)
543
+ if connection_type is not None:
544
+ pulumi.set(__self__, "connection_type", connection_type)
545
+ if project_id is not None:
546
+ pulumi.set(__self__, "project_id", project_id)
547
+ if psc_connection_status is not None:
548
+ pulumi.set(__self__, "psc_connection_status", psc_connection_status)
549
+
550
+ @property
551
+ @pulumi.getter(name="forwardingRule")
552
+ def forwarding_rule(self) -> str:
553
+ """
554
+ The URI of the consumer side forwarding rule.
555
+ Format:
556
+ projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}
557
+ """
558
+ return pulumi.get(self, "forwarding_rule")
559
+
560
+ @property
561
+ @pulumi.getter(name="ipAddress")
562
+ def ip_address(self) -> str:
563
+ """
564
+ The IP allocated on the consumer network for the PSC forwarding rule.
565
+ """
566
+ return pulumi.get(self, "ip_address")
567
+
568
+ @property
569
+ @pulumi.getter
570
+ def network(self) -> str:
571
+ """
572
+ The consumer network where the IP address resides, in the form of
573
+ projects/{project_id}/global/networks/{network_id}.
574
+ """
575
+ return pulumi.get(self, "network")
576
+
577
+ @property
578
+ @pulumi.getter(name="pscConnectionId")
579
+ def psc_connection_id(self) -> str:
580
+ """
581
+ The PSC connection id of the forwarding rule connected to the
582
+ service attachment.
583
+ """
584
+ return pulumi.get(self, "psc_connection_id")
585
+
586
+ @property
587
+ @pulumi.getter(name="serviceAttachment")
588
+ def service_attachment(self) -> str:
589
+ """
590
+ The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
591
+ """
592
+ return pulumi.get(self, "service_attachment")
593
+
594
+ @property
595
+ @pulumi.getter(name="connectionType")
596
+ def connection_type(self) -> Optional[str]:
597
+ """
598
+ (Output)
599
+ Output Only. Type of a PSC Connection.
600
+ Possible values:
601
+ CONNECTION_TYPE_DISCOVERY
602
+ CONNECTION_TYPE_PRIMARY
603
+ CONNECTION_TYPE_READER
604
+ """
605
+ return pulumi.get(self, "connection_type")
606
+
607
+ @property
608
+ @pulumi.getter(name="projectId")
609
+ def project_id(self) -> Optional[str]:
610
+ """
611
+ The consumer project_id where the forwarding rule is created from.
612
+ """
613
+ return pulumi.get(self, "project_id")
614
+
615
+ @property
616
+ @pulumi.getter(name="pscConnectionStatus")
617
+ def psc_connection_status(self) -> Optional[str]:
618
+ """
619
+ (Output)
620
+ Output Only. The status of the PSC connection: whether a connection exists and ACTIVE or it no longer exists.
621
+ Possible values:
622
+ ACTIVE
623
+ NOT_FOUND
624
+ """
625
+ return pulumi.get(self, "psc_connection_status")
626
+
627
+
99
628
  @pulumi.output_type
100
629
  class InstanceDiscoveryEndpoint(dict):
101
630
  def __init__(__self__, *,
@@ -368,6 +897,317 @@ class InstanceEndpointConnectionPscAutoConnection(dict):
368
897
  return pulumi.get(self, "service_attachment")
369
898
 
370
899
 
900
+ @pulumi.output_type
901
+ class InstanceMaintenancePolicy(dict):
902
+ @staticmethod
903
+ def __key_warning(key: str):
904
+ suggest = None
905
+ if key == "createTime":
906
+ suggest = "create_time"
907
+ elif key == "updateTime":
908
+ suggest = "update_time"
909
+ elif key == "weeklyMaintenanceWindows":
910
+ suggest = "weekly_maintenance_windows"
911
+
912
+ if suggest:
913
+ pulumi.log.warn(f"Key '{key}' not found in InstanceMaintenancePolicy. Access the value via the '{suggest}' property getter instead.")
914
+
915
+ def __getitem__(self, key: str) -> Any:
916
+ InstanceMaintenancePolicy.__key_warning(key)
917
+ return super().__getitem__(key)
918
+
919
+ def get(self, key: str, default = None) -> Any:
920
+ InstanceMaintenancePolicy.__key_warning(key)
921
+ return super().get(key, default)
922
+
923
+ def __init__(__self__, *,
924
+ create_time: Optional[str] = None,
925
+ update_time: Optional[str] = None,
926
+ weekly_maintenance_windows: Optional[Sequence['outputs.InstanceMaintenancePolicyWeeklyMaintenanceWindow']] = None):
927
+ """
928
+ :param str create_time: (Output)
929
+ The time when the policy was created.
930
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
931
+ resolution and up to nine fractional digits.
932
+ :param str update_time: (Output)
933
+ The time when the policy was last updated.
934
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
935
+ resolution and up to nine fractional digits.
936
+ :param Sequence['InstanceMaintenancePolicyWeeklyMaintenanceWindowArgs'] weekly_maintenance_windows: Optional. Maintenance window that is applied to resources covered by this policy.
937
+ Minimum 1. For the current version, the maximum number
938
+ of weekly_window is expected to be one.
939
+ Structure is documented below.
940
+ """
941
+ if create_time is not None:
942
+ pulumi.set(__self__, "create_time", create_time)
943
+ if update_time is not None:
944
+ pulumi.set(__self__, "update_time", update_time)
945
+ if weekly_maintenance_windows is not None:
946
+ pulumi.set(__self__, "weekly_maintenance_windows", weekly_maintenance_windows)
947
+
948
+ @property
949
+ @pulumi.getter(name="createTime")
950
+ def create_time(self) -> Optional[str]:
951
+ """
952
+ (Output)
953
+ The time when the policy was created.
954
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
955
+ resolution and up to nine fractional digits.
956
+ """
957
+ return pulumi.get(self, "create_time")
958
+
959
+ @property
960
+ @pulumi.getter(name="updateTime")
961
+ def update_time(self) -> Optional[str]:
962
+ """
963
+ (Output)
964
+ The time when the policy was last updated.
965
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
966
+ resolution and up to nine fractional digits.
967
+ """
968
+ return pulumi.get(self, "update_time")
969
+
970
+ @property
971
+ @pulumi.getter(name="weeklyMaintenanceWindows")
972
+ def weekly_maintenance_windows(self) -> Optional[Sequence['outputs.InstanceMaintenancePolicyWeeklyMaintenanceWindow']]:
973
+ """
974
+ Optional. Maintenance window that is applied to resources covered by this policy.
975
+ Minimum 1. For the current version, the maximum number
976
+ of weekly_window is expected to be one.
977
+ Structure is documented below.
978
+ """
979
+ return pulumi.get(self, "weekly_maintenance_windows")
980
+
981
+
982
+ @pulumi.output_type
983
+ class InstanceMaintenancePolicyWeeklyMaintenanceWindow(dict):
984
+ @staticmethod
985
+ def __key_warning(key: str):
986
+ suggest = None
987
+ if key == "startTime":
988
+ suggest = "start_time"
989
+
990
+ if suggest:
991
+ pulumi.log.warn(f"Key '{key}' not found in InstanceMaintenancePolicyWeeklyMaintenanceWindow. Access the value via the '{suggest}' property getter instead.")
992
+
993
+ def __getitem__(self, key: str) -> Any:
994
+ InstanceMaintenancePolicyWeeklyMaintenanceWindow.__key_warning(key)
995
+ return super().__getitem__(key)
996
+
997
+ def get(self, key: str, default = None) -> Any:
998
+ InstanceMaintenancePolicyWeeklyMaintenanceWindow.__key_warning(key)
999
+ return super().get(key, default)
1000
+
1001
+ def __init__(__self__, *,
1002
+ day: str,
1003
+ start_time: 'outputs.InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime',
1004
+ duration: Optional[str] = None):
1005
+ """
1006
+ :param str day: The day of week that maintenance updates occur.
1007
+ - DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
1008
+ - MONDAY: Monday
1009
+ - TUESDAY: Tuesday
1010
+ - WEDNESDAY: Wednesday
1011
+ - THURSDAY: Thursday
1012
+ - FRIDAY: Friday
1013
+ - SATURDAY: Saturday
1014
+ - SUNDAY: Sunday
1015
+ Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.
1016
+ :param 'InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs' start_time: Start time of the window in UTC time.
1017
+ Structure is documented below.
1018
+ :param str duration: (Output)
1019
+ Duration of the maintenance window.
1020
+ The current window is fixed at 1 hour.
1021
+ A duration in seconds with up to nine fractional digits,
1022
+ terminated by 's'. Example: "3.5s".
1023
+ """
1024
+ pulumi.set(__self__, "day", day)
1025
+ pulumi.set(__self__, "start_time", start_time)
1026
+ if duration is not None:
1027
+ pulumi.set(__self__, "duration", duration)
1028
+
1029
+ @property
1030
+ @pulumi.getter
1031
+ def day(self) -> str:
1032
+ """
1033
+ The day of week that maintenance updates occur.
1034
+ - DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
1035
+ - MONDAY: Monday
1036
+ - TUESDAY: Tuesday
1037
+ - WEDNESDAY: Wednesday
1038
+ - THURSDAY: Thursday
1039
+ - FRIDAY: Friday
1040
+ - SATURDAY: Saturday
1041
+ - SUNDAY: Sunday
1042
+ Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.
1043
+ """
1044
+ return pulumi.get(self, "day")
1045
+
1046
+ @property
1047
+ @pulumi.getter(name="startTime")
1048
+ def start_time(self) -> 'outputs.InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime':
1049
+ """
1050
+ Start time of the window in UTC time.
1051
+ Structure is documented below.
1052
+ """
1053
+ return pulumi.get(self, "start_time")
1054
+
1055
+ @property
1056
+ @pulumi.getter
1057
+ def duration(self) -> Optional[str]:
1058
+ """
1059
+ (Output)
1060
+ Duration of the maintenance window.
1061
+ The current window is fixed at 1 hour.
1062
+ A duration in seconds with up to nine fractional digits,
1063
+ terminated by 's'. Example: "3.5s".
1064
+ """
1065
+ return pulumi.get(self, "duration")
1066
+
1067
+
1068
+ @pulumi.output_type
1069
+ class InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime(dict):
1070
+ def __init__(__self__, *,
1071
+ hours: Optional[int] = None,
1072
+ minutes: Optional[int] = None,
1073
+ nanos: Optional[int] = None,
1074
+ seconds: Optional[int] = None):
1075
+ """
1076
+ :param int hours: Hours of day in 24 hour format. Should be from 0 to 23.
1077
+ An API may choose to allow the value "24:00:00" for scenarios like business closing time.
1078
+ :param int minutes: Minutes of hour of day. Must be from 0 to 59.
1079
+ :param int nanos: Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1080
+ :param int seconds: Seconds of minutes of the time. Must normally be from 0 to 59.
1081
+ An API may allow the value 60 if it allows leap-seconds.
1082
+ """
1083
+ if hours is not None:
1084
+ pulumi.set(__self__, "hours", hours)
1085
+ if minutes is not None:
1086
+ pulumi.set(__self__, "minutes", minutes)
1087
+ if nanos is not None:
1088
+ pulumi.set(__self__, "nanos", nanos)
1089
+ if seconds is not None:
1090
+ pulumi.set(__self__, "seconds", seconds)
1091
+
1092
+ @property
1093
+ @pulumi.getter
1094
+ def hours(self) -> Optional[int]:
1095
+ """
1096
+ Hours of day in 24 hour format. Should be from 0 to 23.
1097
+ An API may choose to allow the value "24:00:00" for scenarios like business closing time.
1098
+ """
1099
+ return pulumi.get(self, "hours")
1100
+
1101
+ @property
1102
+ @pulumi.getter
1103
+ def minutes(self) -> Optional[int]:
1104
+ """
1105
+ Minutes of hour of day. Must be from 0 to 59.
1106
+ """
1107
+ return pulumi.get(self, "minutes")
1108
+
1109
+ @property
1110
+ @pulumi.getter
1111
+ def nanos(self) -> Optional[int]:
1112
+ """
1113
+ Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1114
+ """
1115
+ return pulumi.get(self, "nanos")
1116
+
1117
+ @property
1118
+ @pulumi.getter
1119
+ def seconds(self) -> Optional[int]:
1120
+ """
1121
+ Seconds of minutes of the time. Must normally be from 0 to 59.
1122
+ An API may allow the value 60 if it allows leap-seconds.
1123
+ """
1124
+ return pulumi.get(self, "seconds")
1125
+
1126
+
1127
+ @pulumi.output_type
1128
+ class InstanceMaintenanceSchedule(dict):
1129
+ @staticmethod
1130
+ def __key_warning(key: str):
1131
+ suggest = None
1132
+ if key == "endTime":
1133
+ suggest = "end_time"
1134
+ elif key == "scheduleDeadlineTime":
1135
+ suggest = "schedule_deadline_time"
1136
+ elif key == "startTime":
1137
+ suggest = "start_time"
1138
+
1139
+ if suggest:
1140
+ pulumi.log.warn(f"Key '{key}' not found in InstanceMaintenanceSchedule. Access the value via the '{suggest}' property getter instead.")
1141
+
1142
+ def __getitem__(self, key: str) -> Any:
1143
+ InstanceMaintenanceSchedule.__key_warning(key)
1144
+ return super().__getitem__(key)
1145
+
1146
+ def get(self, key: str, default = None) -> Any:
1147
+ InstanceMaintenanceSchedule.__key_warning(key)
1148
+ return super().get(key, default)
1149
+
1150
+ def __init__(__self__, *,
1151
+ end_time: Optional[str] = None,
1152
+ schedule_deadline_time: Optional[str] = None,
1153
+ start_time: Optional[str] = None):
1154
+ """
1155
+ :param str end_time: (Output)
1156
+ The end time of any upcoming scheduled maintenance for this cluster.
1157
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1158
+ resolution and up to nine fractional digits.
1159
+ :param str schedule_deadline_time: (Output)
1160
+ The deadline that the maintenance schedule start time
1161
+ can not go beyond, including reschedule.
1162
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1163
+ resolution and up to nine fractional digits.
1164
+ :param str start_time: (Output)
1165
+ The start time of any upcoming scheduled maintenance for this cluster.
1166
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1167
+ resolution and up to nine fractional digits.
1168
+ """
1169
+ if end_time is not None:
1170
+ pulumi.set(__self__, "end_time", end_time)
1171
+ if schedule_deadline_time is not None:
1172
+ pulumi.set(__self__, "schedule_deadline_time", schedule_deadline_time)
1173
+ if start_time is not None:
1174
+ pulumi.set(__self__, "start_time", start_time)
1175
+
1176
+ @property
1177
+ @pulumi.getter(name="endTime")
1178
+ def end_time(self) -> Optional[str]:
1179
+ """
1180
+ (Output)
1181
+ The end time of any upcoming scheduled maintenance for this cluster.
1182
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1183
+ resolution and up to nine fractional digits.
1184
+ """
1185
+ return pulumi.get(self, "end_time")
1186
+
1187
+ @property
1188
+ @pulumi.getter(name="scheduleDeadlineTime")
1189
+ def schedule_deadline_time(self) -> Optional[str]:
1190
+ """
1191
+ (Output)
1192
+ The deadline that the maintenance schedule start time
1193
+ can not go beyond, including reschedule.
1194
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1195
+ resolution and up to nine fractional digits.
1196
+ """
1197
+ return pulumi.get(self, "schedule_deadline_time")
1198
+
1199
+ @property
1200
+ @pulumi.getter(name="startTime")
1201
+ def start_time(self) -> Optional[str]:
1202
+ """
1203
+ (Output)
1204
+ The start time of any upcoming scheduled maintenance for this cluster.
1205
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
1206
+ resolution and up to nine fractional digits.
1207
+ """
1208
+ return pulumi.get(self, "start_time")
1209
+
1210
+
371
1211
  @pulumi.output_type
372
1212
  class InstanceNodeConfig(dict):
373
1213
  @staticmethod
@@ -567,27 +1407,89 @@ class InstancePersistenceConfigRdbConfig(dict):
567
1407
  pulumi.set(__self__, "rdb_snapshot_start_time", rdb_snapshot_start_time)
568
1408
 
569
1409
  @property
570
- @pulumi.getter(name="rdbSnapshotPeriod")
571
- def rdb_snapshot_period(self) -> Optional[str]:
1410
+ @pulumi.getter(name="rdbSnapshotPeriod")
1411
+ def rdb_snapshot_period(self) -> Optional[str]:
1412
+ """
1413
+ Optional. Period between RDB snapshots.
1414
+ Possible values:
1415
+ ONE_HOUR
1416
+ SIX_HOURS
1417
+ TWELVE_HOURS
1418
+ TWENTY_FOUR_HOURS
1419
+ """
1420
+ return pulumi.get(self, "rdb_snapshot_period")
1421
+
1422
+ @property
1423
+ @pulumi.getter(name="rdbSnapshotStartTime")
1424
+ def rdb_snapshot_start_time(self) -> Optional[str]:
1425
+ """
1426
+ Optional. Time that the first snapshot was/will be attempted, and to which future
1427
+ snapshots will be aligned. If not provided, the current time will be
1428
+ used.
1429
+ """
1430
+ return pulumi.get(self, "rdb_snapshot_start_time")
1431
+
1432
+
1433
+ @pulumi.output_type
1434
+ class InstancePscAttachmentDetail(dict):
1435
+ @staticmethod
1436
+ def __key_warning(key: str):
1437
+ suggest = None
1438
+ if key == "connectionType":
1439
+ suggest = "connection_type"
1440
+ elif key == "serviceAttachment":
1441
+ suggest = "service_attachment"
1442
+
1443
+ if suggest:
1444
+ pulumi.log.warn(f"Key '{key}' not found in InstancePscAttachmentDetail. Access the value via the '{suggest}' property getter instead.")
1445
+
1446
+ def __getitem__(self, key: str) -> Any:
1447
+ InstancePscAttachmentDetail.__key_warning(key)
1448
+ return super().__getitem__(key)
1449
+
1450
+ def get(self, key: str, default = None) -> Any:
1451
+ InstancePscAttachmentDetail.__key_warning(key)
1452
+ return super().get(key, default)
1453
+
1454
+ def __init__(__self__, *,
1455
+ connection_type: Optional[str] = None,
1456
+ service_attachment: Optional[str] = None):
1457
+ """
1458
+ :param str connection_type: (Output)
1459
+ Output Only. Type of a PSC Connection.
1460
+ Possible values:
1461
+ CONNECTION_TYPE_DISCOVERY
1462
+ CONNECTION_TYPE_PRIMARY
1463
+ CONNECTION_TYPE_READER
1464
+ :param str service_attachment: (Output)
1465
+ 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}.
1466
+ """
1467
+ if connection_type is not None:
1468
+ pulumi.set(__self__, "connection_type", connection_type)
1469
+ if service_attachment is not None:
1470
+ pulumi.set(__self__, "service_attachment", service_attachment)
1471
+
1472
+ @property
1473
+ @pulumi.getter(name="connectionType")
1474
+ def connection_type(self) -> Optional[str]:
572
1475
  """
573
- Optional. Period between RDB snapshots.
1476
+ (Output)
1477
+ Output Only. Type of a PSC Connection.
574
1478
  Possible values:
575
- ONE_HOUR
576
- SIX_HOURS
577
- TWELVE_HOURS
578
- TWENTY_FOUR_HOURS
1479
+ CONNECTION_TYPE_DISCOVERY
1480
+ CONNECTION_TYPE_PRIMARY
1481
+ CONNECTION_TYPE_READER
579
1482
  """
580
- return pulumi.get(self, "rdb_snapshot_period")
1483
+ return pulumi.get(self, "connection_type")
581
1484
 
582
1485
  @property
583
- @pulumi.getter(name="rdbSnapshotStartTime")
584
- def rdb_snapshot_start_time(self) -> Optional[str]:
1486
+ @pulumi.getter(name="serviceAttachment")
1487
+ def service_attachment(self) -> Optional[str]:
585
1488
  """
586
- Optional. Time that the first snapshot was/will be attempted, and to which future
587
- snapshots will be aligned. If not provided, the current time will be
588
- used.
1489
+ (Output)
1490
+ 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}.
589
1491
  """
590
- return pulumi.get(self, "rdb_snapshot_start_time")
1492
+ return pulumi.get(self, "service_attachment")
591
1493
 
592
1494
 
593
1495
  @pulumi.output_type
@@ -819,7 +1721,11 @@ class InstanceStateInfoUpdateInfo(dict):
819
1721
  @staticmethod
820
1722
  def __key_warning(key: str):
821
1723
  suggest = None
822
- if key == "targetReplicaCount":
1724
+ if key == "targetEngineVersion":
1725
+ suggest = "target_engine_version"
1726
+ elif key == "targetNodeType":
1727
+ suggest = "target_node_type"
1728
+ elif key == "targetReplicaCount":
823
1729
  suggest = "target_replica_count"
824
1730
  elif key == "targetShardCount":
825
1731
  suggest = "target_shard_count"
@@ -836,19 +1742,47 @@ class InstanceStateInfoUpdateInfo(dict):
836
1742
  return super().get(key, default)
837
1743
 
838
1744
  def __init__(__self__, *,
1745
+ target_engine_version: Optional[str] = None,
1746
+ target_node_type: Optional[str] = None,
839
1747
  target_replica_count: Optional[int] = None,
840
1748
  target_shard_count: Optional[int] = None):
841
1749
  """
1750
+ :param str target_engine_version: (Output)
1751
+ Output only. Target engine version for the instance.
1752
+ :param str target_node_type: (Output)
1753
+ Output only. Target node type for the instance.
842
1754
  :param int target_replica_count: (Output)
843
1755
  Output only. Target number of replica nodes per shard for the instance.
844
1756
  :param int target_shard_count: (Output)
845
1757
  Output only. Target number of shards for the instance.
846
1758
  """
1759
+ if target_engine_version is not None:
1760
+ pulumi.set(__self__, "target_engine_version", target_engine_version)
1761
+ if target_node_type is not None:
1762
+ pulumi.set(__self__, "target_node_type", target_node_type)
847
1763
  if target_replica_count is not None:
848
1764
  pulumi.set(__self__, "target_replica_count", target_replica_count)
849
1765
  if target_shard_count is not None:
850
1766
  pulumi.set(__self__, "target_shard_count", target_shard_count)
851
1767
 
1768
+ @property
1769
+ @pulumi.getter(name="targetEngineVersion")
1770
+ def target_engine_version(self) -> Optional[str]:
1771
+ """
1772
+ (Output)
1773
+ Output only. Target engine version for the instance.
1774
+ """
1775
+ return pulumi.get(self, "target_engine_version")
1776
+
1777
+ @property
1778
+ @pulumi.getter(name="targetNodeType")
1779
+ def target_node_type(self) -> Optional[str]:
1780
+ """
1781
+ (Output)
1782
+ Output only. Target node type for the instance.
1783
+ """
1784
+ return pulumi.get(self, "target_node_type")
1785
+
852
1786
  @property
853
1787
  @pulumi.getter(name="targetReplicaCount")
854
1788
  def target_replica_count(self) -> Optional[int]:
@@ -909,6 +1843,221 @@ class InstanceZoneDistributionConfig(dict):
909
1843
  return pulumi.get(self, "zone")
910
1844
 
911
1845
 
1846
+ @pulumi.output_type
1847
+ class GetInstanceCrossInstanceReplicationConfigResult(dict):
1848
+ def __init__(__self__, *,
1849
+ instance_role: str,
1850
+ memberships: Sequence['outputs.GetInstanceCrossInstanceReplicationConfigMembershipResult'],
1851
+ primary_instances: Sequence['outputs.GetInstanceCrossInstanceReplicationConfigPrimaryInstanceResult'],
1852
+ secondary_instances: Sequence['outputs.GetInstanceCrossInstanceReplicationConfigSecondaryInstanceResult'],
1853
+ update_time: str):
1854
+ """
1855
+ :param str instance_role: The instance role supports the following values:
1856
+ 1. 'INSTANCE_ROLE_UNSPECIFIED': This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
1857
+ 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.
1858
+ 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.
1859
+ 4. 'SECONDARY': This instance replicates data from the primary instance. It allows only reads. Possible values: ["INSTANCE_ROLE_UNSPECIFIED", "NONE", "PRIMARY", "SECONDARY"]
1860
+ :param Sequence['GetInstanceCrossInstanceReplicationConfigMembershipArgs'] memberships: 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.
1861
+ :param Sequence['GetInstanceCrossInstanceReplicationConfigPrimaryInstanceArgs'] primary_instances: 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'.
1862
+ :param Sequence['GetInstanceCrossInstanceReplicationConfigSecondaryInstanceArgs'] 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'.
1863
+ :param str update_time: The last time cross instance replication config was updated.
1864
+ """
1865
+ pulumi.set(__self__, "instance_role", instance_role)
1866
+ pulumi.set(__self__, "memberships", memberships)
1867
+ pulumi.set(__self__, "primary_instances", primary_instances)
1868
+ pulumi.set(__self__, "secondary_instances", secondary_instances)
1869
+ pulumi.set(__self__, "update_time", update_time)
1870
+
1871
+ @property
1872
+ @pulumi.getter(name="instanceRole")
1873
+ def instance_role(self) -> str:
1874
+ """
1875
+ The instance role supports the following values:
1876
+ 1. 'INSTANCE_ROLE_UNSPECIFIED': This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
1877
+ 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.
1878
+ 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.
1879
+ 4. 'SECONDARY': This instance replicates data from the primary instance. It allows only reads. Possible values: ["INSTANCE_ROLE_UNSPECIFIED", "NONE", "PRIMARY", "SECONDARY"]
1880
+ """
1881
+ return pulumi.get(self, "instance_role")
1882
+
1883
+ @property
1884
+ @pulumi.getter
1885
+ def memberships(self) -> Sequence['outputs.GetInstanceCrossInstanceReplicationConfigMembershipResult']:
1886
+ """
1887
+ 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.
1888
+ """
1889
+ return pulumi.get(self, "memberships")
1890
+
1891
+ @property
1892
+ @pulumi.getter(name="primaryInstances")
1893
+ def primary_instances(self) -> Sequence['outputs.GetInstanceCrossInstanceReplicationConfigPrimaryInstanceResult']:
1894
+ """
1895
+ 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'.
1896
+ """
1897
+ return pulumi.get(self, "primary_instances")
1898
+
1899
+ @property
1900
+ @pulumi.getter(name="secondaryInstances")
1901
+ def secondary_instances(self) -> Sequence['outputs.GetInstanceCrossInstanceReplicationConfigSecondaryInstanceResult']:
1902
+ """
1903
+ 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'.
1904
+ """
1905
+ return pulumi.get(self, "secondary_instances")
1906
+
1907
+ @property
1908
+ @pulumi.getter(name="updateTime")
1909
+ def update_time(self) -> str:
1910
+ """
1911
+ The last time cross instance replication config was updated.
1912
+ """
1913
+ return pulumi.get(self, "update_time")
1914
+
1915
+
1916
+ @pulumi.output_type
1917
+ class GetInstanceCrossInstanceReplicationConfigMembershipResult(dict):
1918
+ def __init__(__self__, *,
1919
+ primary_instances: Sequence['outputs.GetInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceResult'],
1920
+ secondary_instances: Sequence['outputs.GetInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceResult']):
1921
+ """
1922
+ :param Sequence['GetInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs'] primary_instances: Details of the primary instance that is used as the replication source for all the secondary instances.
1923
+ :param Sequence['GetInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs'] secondary_instances: List of secondary instances that are replicating from the primary instance.
1924
+ """
1925
+ pulumi.set(__self__, "primary_instances", primary_instances)
1926
+ pulumi.set(__self__, "secondary_instances", secondary_instances)
1927
+
1928
+ @property
1929
+ @pulumi.getter(name="primaryInstances")
1930
+ def primary_instances(self) -> Sequence['outputs.GetInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceResult']:
1931
+ """
1932
+ Details of the primary instance that is used as the replication source for all the secondary instances.
1933
+ """
1934
+ return pulumi.get(self, "primary_instances")
1935
+
1936
+ @property
1937
+ @pulumi.getter(name="secondaryInstances")
1938
+ def secondary_instances(self) -> Sequence['outputs.GetInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceResult']:
1939
+ """
1940
+ List of secondary instances that are replicating from the primary instance.
1941
+ """
1942
+ return pulumi.get(self, "secondary_instances")
1943
+
1944
+
1945
+ @pulumi.output_type
1946
+ class GetInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceResult(dict):
1947
+ def __init__(__self__, *,
1948
+ instance: str,
1949
+ uid: str):
1950
+ """
1951
+ :param str instance: The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
1952
+ :param str uid: The unique id of the primary instance.
1953
+ """
1954
+ pulumi.set(__self__, "instance", instance)
1955
+ pulumi.set(__self__, "uid", uid)
1956
+
1957
+ @property
1958
+ @pulumi.getter
1959
+ def instance(self) -> str:
1960
+ """
1961
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
1962
+ """
1963
+ return pulumi.get(self, "instance")
1964
+
1965
+ @property
1966
+ @pulumi.getter
1967
+ def uid(self) -> str:
1968
+ """
1969
+ The unique id of the primary instance.
1970
+ """
1971
+ return pulumi.get(self, "uid")
1972
+
1973
+
1974
+ @pulumi.output_type
1975
+ class GetInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceResult(dict):
1976
+ def __init__(__self__, *,
1977
+ instance: str,
1978
+ uid: str):
1979
+ """
1980
+ :param str instance: The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
1981
+ :param str uid: The unique id of the secondary instance.
1982
+ """
1983
+ pulumi.set(__self__, "instance", instance)
1984
+ pulumi.set(__self__, "uid", uid)
1985
+
1986
+ @property
1987
+ @pulumi.getter
1988
+ def instance(self) -> str:
1989
+ """
1990
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
1991
+ """
1992
+ return pulumi.get(self, "instance")
1993
+
1994
+ @property
1995
+ @pulumi.getter
1996
+ def uid(self) -> str:
1997
+ """
1998
+ The unique id of the secondary instance.
1999
+ """
2000
+ return pulumi.get(self, "uid")
2001
+
2002
+
2003
+ @pulumi.output_type
2004
+ class GetInstanceCrossInstanceReplicationConfigPrimaryInstanceResult(dict):
2005
+ def __init__(__self__, *,
2006
+ instance: str,
2007
+ uid: str):
2008
+ """
2009
+ :param str instance: The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
2010
+ :param str uid: The unique id of the primary instance.
2011
+ """
2012
+ pulumi.set(__self__, "instance", instance)
2013
+ pulumi.set(__self__, "uid", uid)
2014
+
2015
+ @property
2016
+ @pulumi.getter
2017
+ def instance(self) -> str:
2018
+ """
2019
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
2020
+ """
2021
+ return pulumi.get(self, "instance")
2022
+
2023
+ @property
2024
+ @pulumi.getter
2025
+ def uid(self) -> str:
2026
+ """
2027
+ The unique id of the primary instance.
2028
+ """
2029
+ return pulumi.get(self, "uid")
2030
+
2031
+
2032
+ @pulumi.output_type
2033
+ class GetInstanceCrossInstanceReplicationConfigSecondaryInstanceResult(dict):
2034
+ def __init__(__self__, *,
2035
+ instance: str,
2036
+ uid: str):
2037
+ """
2038
+ :param str instance: The full resource path of the Nth instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
2039
+ :param str uid: The unique id of the Nth instance.
2040
+ """
2041
+ pulumi.set(__self__, "instance", instance)
2042
+ pulumi.set(__self__, "uid", uid)
2043
+
2044
+ @property
2045
+ @pulumi.getter
2046
+ def instance(self) -> str:
2047
+ """
2048
+ The full resource path of the Nth instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
2049
+ """
2050
+ return pulumi.get(self, "instance")
2051
+
2052
+ @property
2053
+ @pulumi.getter
2054
+ def uid(self) -> str:
2055
+ """
2056
+ The unique id of the Nth instance.
2057
+ """
2058
+ return pulumi.get(self, "uid")
2059
+
2060
+
912
2061
  @pulumi.output_type
913
2062
  class GetInstanceDesiredPscAutoConnectionResult(dict):
914
2063
  def __init__(__self__, *,
@@ -1131,6 +2280,231 @@ class GetInstanceEndpointConnectionPscAutoConnectionResult(dict):
1131
2280
  return pulumi.get(self, "service_attachment")
1132
2281
 
1133
2282
 
2283
+ @pulumi.output_type
2284
+ class GetInstanceMaintenancePolicyResult(dict):
2285
+ def __init__(__self__, *,
2286
+ create_time: str,
2287
+ update_time: str,
2288
+ weekly_maintenance_windows: Sequence['outputs.GetInstanceMaintenancePolicyWeeklyMaintenanceWindowResult']):
2289
+ """
2290
+ :param str create_time: The time when the policy was created.
2291
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
2292
+ resolution and up to nine fractional digits.
2293
+ :param str update_time: The time when the policy was last updated.
2294
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
2295
+ resolution and up to nine fractional digits.
2296
+ :param Sequence['GetInstanceMaintenancePolicyWeeklyMaintenanceWindowArgs'] weekly_maintenance_windows: Optional. Maintenance window that is applied to resources covered by this policy.
2297
+ Minimum 1. For the current version, the maximum number
2298
+ of weekly_window is expected to be one.
2299
+ """
2300
+ pulumi.set(__self__, "create_time", create_time)
2301
+ pulumi.set(__self__, "update_time", update_time)
2302
+ pulumi.set(__self__, "weekly_maintenance_windows", weekly_maintenance_windows)
2303
+
2304
+ @property
2305
+ @pulumi.getter(name="createTime")
2306
+ def create_time(self) -> str:
2307
+ """
2308
+ The time when the policy was created.
2309
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
2310
+ resolution and up to nine fractional digits.
2311
+ """
2312
+ return pulumi.get(self, "create_time")
2313
+
2314
+ @property
2315
+ @pulumi.getter(name="updateTime")
2316
+ def update_time(self) -> str:
2317
+ """
2318
+ The time when the policy was last updated.
2319
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
2320
+ resolution and up to nine fractional digits.
2321
+ """
2322
+ return pulumi.get(self, "update_time")
2323
+
2324
+ @property
2325
+ @pulumi.getter(name="weeklyMaintenanceWindows")
2326
+ def weekly_maintenance_windows(self) -> Sequence['outputs.GetInstanceMaintenancePolicyWeeklyMaintenanceWindowResult']:
2327
+ """
2328
+ Optional. Maintenance window that is applied to resources covered by this policy.
2329
+ Minimum 1. For the current version, the maximum number
2330
+ of weekly_window is expected to be one.
2331
+ """
2332
+ return pulumi.get(self, "weekly_maintenance_windows")
2333
+
2334
+
2335
+ @pulumi.output_type
2336
+ class GetInstanceMaintenancePolicyWeeklyMaintenanceWindowResult(dict):
2337
+ def __init__(__self__, *,
2338
+ day: str,
2339
+ duration: str,
2340
+ start_times: Sequence['outputs.GetInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeResult']):
2341
+ """
2342
+ :param str day: The day of week that maintenance updates occur.
2343
+
2344
+ - DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
2345
+ - MONDAY: Monday
2346
+ - TUESDAY: Tuesday
2347
+ - WEDNESDAY: Wednesday
2348
+ - THURSDAY: Thursday
2349
+ - FRIDAY: Friday
2350
+ - SATURDAY: Saturday
2351
+ - SUNDAY: Sunday Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]
2352
+ :param str duration: Duration of the maintenance window.
2353
+ The current window is fixed at 1 hour.
2354
+ A duration in seconds with up to nine fractional digits,
2355
+ terminated by 's'. Example: "3.5s".
2356
+ :param Sequence['GetInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs'] start_times: Start time of the window in UTC time.
2357
+ """
2358
+ pulumi.set(__self__, "day", day)
2359
+ pulumi.set(__self__, "duration", duration)
2360
+ pulumi.set(__self__, "start_times", start_times)
2361
+
2362
+ @property
2363
+ @pulumi.getter
2364
+ def day(self) -> str:
2365
+ """
2366
+ The day of week that maintenance updates occur.
2367
+
2368
+ - DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
2369
+ - MONDAY: Monday
2370
+ - TUESDAY: Tuesday
2371
+ - WEDNESDAY: Wednesday
2372
+ - THURSDAY: Thursday
2373
+ - FRIDAY: Friday
2374
+ - SATURDAY: Saturday
2375
+ - SUNDAY: Sunday Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]
2376
+ """
2377
+ return pulumi.get(self, "day")
2378
+
2379
+ @property
2380
+ @pulumi.getter
2381
+ def duration(self) -> str:
2382
+ """
2383
+ Duration of the maintenance window.
2384
+ The current window is fixed at 1 hour.
2385
+ A duration in seconds with up to nine fractional digits,
2386
+ terminated by 's'. Example: "3.5s".
2387
+ """
2388
+ return pulumi.get(self, "duration")
2389
+
2390
+ @property
2391
+ @pulumi.getter(name="startTimes")
2392
+ def start_times(self) -> Sequence['outputs.GetInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeResult']:
2393
+ """
2394
+ Start time of the window in UTC time.
2395
+ """
2396
+ return pulumi.get(self, "start_times")
2397
+
2398
+
2399
+ @pulumi.output_type
2400
+ class GetInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeResult(dict):
2401
+ def __init__(__self__, *,
2402
+ hours: int,
2403
+ minutes: int,
2404
+ nanos: int,
2405
+ seconds: int):
2406
+ """
2407
+ :param int hours: Hours of day in 24 hour format. Should be from 0 to 23.
2408
+ An API may choose to allow the value "24:00:00" for scenarios like business closing time.
2409
+ :param int minutes: Minutes of hour of day. Must be from 0 to 59.
2410
+ :param int nanos: Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2411
+ :param int seconds: Seconds of minutes of the time. Must normally be from 0 to 59.
2412
+ An API may allow the value 60 if it allows leap-seconds.
2413
+ """
2414
+ pulumi.set(__self__, "hours", hours)
2415
+ pulumi.set(__self__, "minutes", minutes)
2416
+ pulumi.set(__self__, "nanos", nanos)
2417
+ pulumi.set(__self__, "seconds", seconds)
2418
+
2419
+ @property
2420
+ @pulumi.getter
2421
+ def hours(self) -> int:
2422
+ """
2423
+ Hours of day in 24 hour format. Should be from 0 to 23.
2424
+ An API may choose to allow the value "24:00:00" for scenarios like business closing time.
2425
+ """
2426
+ return pulumi.get(self, "hours")
2427
+
2428
+ @property
2429
+ @pulumi.getter
2430
+ def minutes(self) -> int:
2431
+ """
2432
+ Minutes of hour of day. Must be from 0 to 59.
2433
+ """
2434
+ return pulumi.get(self, "minutes")
2435
+
2436
+ @property
2437
+ @pulumi.getter
2438
+ def nanos(self) -> int:
2439
+ """
2440
+ Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2441
+ """
2442
+ return pulumi.get(self, "nanos")
2443
+
2444
+ @property
2445
+ @pulumi.getter
2446
+ def seconds(self) -> int:
2447
+ """
2448
+ Seconds of minutes of the time. Must normally be from 0 to 59.
2449
+ An API may allow the value 60 if it allows leap-seconds.
2450
+ """
2451
+ return pulumi.get(self, "seconds")
2452
+
2453
+
2454
+ @pulumi.output_type
2455
+ class GetInstanceMaintenanceScheduleResult(dict):
2456
+ def __init__(__self__, *,
2457
+ end_time: str,
2458
+ schedule_deadline_time: str,
2459
+ start_time: str):
2460
+ """
2461
+ :param str end_time: The end time of any upcoming scheduled maintenance for this cluster.
2462
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
2463
+ resolution and up to nine fractional digits.
2464
+ :param str schedule_deadline_time: The deadline that the maintenance schedule start time
2465
+ can not go beyond, including reschedule.
2466
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
2467
+ resolution and up to nine fractional digits.
2468
+ :param str start_time: The start time of any upcoming scheduled maintenance for this cluster.
2469
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
2470
+ resolution and up to nine fractional digits.
2471
+ """
2472
+ pulumi.set(__self__, "end_time", end_time)
2473
+ pulumi.set(__self__, "schedule_deadline_time", schedule_deadline_time)
2474
+ pulumi.set(__self__, "start_time", start_time)
2475
+
2476
+ @property
2477
+ @pulumi.getter(name="endTime")
2478
+ def end_time(self) -> str:
2479
+ """
2480
+ The end time of any upcoming scheduled maintenance for this cluster.
2481
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
2482
+ resolution and up to nine fractional digits.
2483
+ """
2484
+ return pulumi.get(self, "end_time")
2485
+
2486
+ @property
2487
+ @pulumi.getter(name="scheduleDeadlineTime")
2488
+ def schedule_deadline_time(self) -> str:
2489
+ """
2490
+ The deadline that the maintenance schedule start time
2491
+ can not go beyond, including reschedule.
2492
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
2493
+ resolution and up to nine fractional digits.
2494
+ """
2495
+ return pulumi.get(self, "schedule_deadline_time")
2496
+
2497
+ @property
2498
+ @pulumi.getter(name="startTime")
2499
+ def start_time(self) -> str:
2500
+ """
2501
+ The start time of any upcoming scheduled maintenance for this cluster.
2502
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond
2503
+ resolution and up to nine fractional digits.
2504
+ """
2505
+ return pulumi.get(self, "start_time")
2506
+
2507
+
1134
2508
  @pulumi.output_type
1135
2509
  class GetInstanceNodeConfigResult(dict):
1136
2510
  def __init__(__self__, *,
@@ -1266,6 +2640,35 @@ class GetInstancePersistenceConfigRdbConfigResult(dict):
1266
2640
  return pulumi.get(self, "rdb_snapshot_start_time")
1267
2641
 
1268
2642
 
2643
+ @pulumi.output_type
2644
+ class GetInstancePscAttachmentDetailResult(dict):
2645
+ def __init__(__self__, *,
2646
+ connection_type: str,
2647
+ service_attachment: str):
2648
+ """
2649
+ :param str connection_type: Service attachment URI which your self-created PscConnection should use as target.
2650
+ :param str service_attachment: Service attachment URI which your self-created PscConnection should use as target.
2651
+ """
2652
+ pulumi.set(__self__, "connection_type", connection_type)
2653
+ pulumi.set(__self__, "service_attachment", service_attachment)
2654
+
2655
+ @property
2656
+ @pulumi.getter(name="connectionType")
2657
+ def connection_type(self) -> str:
2658
+ """
2659
+ Service attachment URI which your self-created PscConnection should use as target.
2660
+ """
2661
+ return pulumi.get(self, "connection_type")
2662
+
2663
+ @property
2664
+ @pulumi.getter(name="serviceAttachment")
2665
+ def service_attachment(self) -> str:
2666
+ """
2667
+ Service attachment URI which your self-created PscConnection should use as target.
2668
+ """
2669
+ return pulumi.get(self, "service_attachment")
2670
+
2671
+
1269
2672
  @pulumi.output_type
1270
2673
  class GetInstancePscAutoConnectionResult(dict):
1271
2674
  def __init__(__self__, *,
@@ -1415,15 +2818,37 @@ class GetInstanceStateInfoResult(dict):
1415
2818
  @pulumi.output_type
1416
2819
  class GetInstanceStateInfoUpdateInfoResult(dict):
1417
2820
  def __init__(__self__, *,
2821
+ target_engine_version: str,
2822
+ target_node_type: str,
1418
2823
  target_replica_count: int,
1419
2824
  target_shard_count: int):
1420
2825
  """
2826
+ :param str target_engine_version: Output only. Target engine version for the instance.
2827
+ :param str target_node_type: Output only. Target node type for the instance.
1421
2828
  :param int target_replica_count: Output only. Target number of replica nodes per shard for the instance.
1422
2829
  :param int target_shard_count: Output only. Target number of shards for the instance.
1423
2830
  """
2831
+ pulumi.set(__self__, "target_engine_version", target_engine_version)
2832
+ pulumi.set(__self__, "target_node_type", target_node_type)
1424
2833
  pulumi.set(__self__, "target_replica_count", target_replica_count)
1425
2834
  pulumi.set(__self__, "target_shard_count", target_shard_count)
1426
2835
 
2836
+ @property
2837
+ @pulumi.getter(name="targetEngineVersion")
2838
+ def target_engine_version(self) -> str:
2839
+ """
2840
+ Output only. Target engine version for the instance.
2841
+ """
2842
+ return pulumi.get(self, "target_engine_version")
2843
+
2844
+ @property
2845
+ @pulumi.getter(name="targetNodeType")
2846
+ def target_node_type(self) -> str:
2847
+ """
2848
+ Output only. Target node type for the instance.
2849
+ """
2850
+ return pulumi.get(self, "target_node_type")
2851
+
1427
2852
  @property
1428
2853
  @pulumi.getter(name="targetReplicaCount")
1429
2854
  def target_replica_count(self) -> int: