pulumi-gcp 8.10.2__py3-none-any.whl → 8.11.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.
- pulumi_gcp/__init__.py +91 -0
- pulumi_gcp/accesscontextmanager/_inputs.py +29 -0
- pulumi_gcp/accesscontextmanager/outputs.py +18 -0
- pulumi_gcp/accesscontextmanager/service_perimeter.py +36 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +6 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +6 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +6 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +6 -0
- pulumi_gcp/apigee/app_group.py +7 -7
- pulumi_gcp/applicationintegration/client.py +8 -6
- pulumi_gcp/artifactregistry/_inputs.py +24 -15
- pulumi_gcp/artifactregistry/outputs.py +32 -20
- pulumi_gcp/artifactregistry/repository.py +128 -0
- pulumi_gcp/assuredworkloads/workload.py +7 -7
- pulumi_gcp/backupdisasterrecovery/__init__.py +2 -0
- pulumi_gcp/backupdisasterrecovery/backup_plan.py +2 -2
- pulumi_gcp/backupdisasterrecovery/backup_vault.py +12 -8
- pulumi_gcp/backupdisasterrecovery/get_backup.py +153 -0
- pulumi_gcp/backupdisasterrecovery/get_backup_vault.py +415 -0
- pulumi_gcp/backupdisasterrecovery/outputs.py +63 -0
- pulumi_gcp/bigquery/app_profile.py +75 -0
- pulumi_gcp/billing/_inputs.py +6 -6
- pulumi_gcp/billing/outputs.py +4 -4
- pulumi_gcp/certificateauthority/_inputs.py +9 -9
- pulumi_gcp/certificateauthority/outputs.py +8 -8
- pulumi_gcp/cloudbuild/_inputs.py +53 -0
- pulumi_gcp/cloudbuild/outputs.py +50 -0
- pulumi_gcp/cloudbuild/worker_pool.py +47 -0
- pulumi_gcp/clouddeploy/_inputs.py +254 -0
- pulumi_gcp/clouddeploy/outputs.py +211 -0
- pulumi_gcp/clouddeploy/target.py +47 -0
- pulumi_gcp/cloudfunctionsv2/_inputs.py +6 -6
- pulumi_gcp/cloudfunctionsv2/outputs.py +8 -8
- pulumi_gcp/cloudrunv2/job.py +4 -4
- pulumi_gcp/cloudrunv2/service.py +4 -4
- pulumi_gcp/composer/get_user_workloads_config_map.py +4 -0
- pulumi_gcp/composer/get_user_workloads_secret.py +4 -0
- pulumi_gcp/composer/user_workloads_config_map.py +14 -0
- pulumi_gcp/composer/user_workloads_secret.py +6 -0
- pulumi_gcp/compute/_inputs.py +566 -25
- pulumi_gcp/compute/disk.py +21 -7
- pulumi_gcp/compute/firewall_policy_rule.py +12 -0
- pulumi_gcp/compute/get_forwarding_rules.py +2 -2
- pulumi_gcp/compute/get_global_forwarding_rule.py +12 -1
- pulumi_gcp/compute/get_instance_group_manager.py +12 -1
- pulumi_gcp/compute/get_network.py +35 -1
- pulumi_gcp/compute/get_region_instance_group_manager.py +12 -1
- pulumi_gcp/compute/get_region_network_endpoint_group.py +12 -1
- pulumi_gcp/compute/global_forwarding_rule.py +28 -0
- pulumi_gcp/compute/instance_group_manager.py +28 -0
- pulumi_gcp/compute/network.py +75 -0
- pulumi_gcp/compute/outputs.py +655 -26
- pulumi_gcp/compute/region_health_check.py +28 -0
- pulumi_gcp/compute/region_instance_group_manager.py +28 -0
- pulumi_gcp/compute/region_network_endpoint.py +28 -0
- pulumi_gcp/compute/region_network_endpoint_group.py +70 -2
- pulumi_gcp/compute/subnetwork.py +30 -2
- pulumi_gcp/compute/url_map.py +7 -7
- pulumi_gcp/config/__init__.pyi +4 -0
- pulumi_gcp/config/vars.py +8 -0
- pulumi_gcp/container/_inputs.py +201 -3
- pulumi_gcp/container/cluster.py +68 -14
- pulumi_gcp/container/get_cluster.py +12 -1
- pulumi_gcp/container/outputs.py +249 -3
- pulumi_gcp/dataproc/_inputs.py +209 -1
- pulumi_gcp/dataproc/batch.py +76 -0
- pulumi_gcp/dataproc/outputs.py +169 -3
- pulumi_gcp/diagflow/_inputs.py +3 -3
- pulumi_gcp/diagflow/outputs.py +2 -2
- pulumi_gcp/discoveryengine/search_engine.py +7 -7
- pulumi_gcp/firebaserules/release.py +76 -0
- pulumi_gcp/firestore/field.py +4 -4
- pulumi_gcp/gemini/__init__.py +15 -0
- pulumi_gcp/gemini/_inputs.py +183 -0
- pulumi_gcp/gemini/code_repository_index.py +659 -0
- pulumi_gcp/gemini/get_repository_group_iam_policy.py +171 -0
- pulumi_gcp/gemini/outputs.py +130 -0
- pulumi_gcp/gemini/repository_group.py +586 -0
- pulumi_gcp/gemini/repository_group_iam_binding.py +604 -0
- pulumi_gcp/gemini/repository_group_iam_member.py +604 -0
- pulumi_gcp/gemini/repository_group_iam_policy.py +443 -0
- pulumi_gcp/gkehub/_inputs.py +30 -10
- pulumi_gcp/gkehub/membership_binding.py +6 -6
- pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
- pulumi_gcp/gkehub/namespace.py +4 -4
- pulumi_gcp/gkehub/outputs.py +21 -7
- pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
- pulumi_gcp/iam/__init__.py +1 -0
- pulumi_gcp/iam/_inputs.py +137 -0
- pulumi_gcp/iam/folders_policy_binding.py +16 -0
- pulumi_gcp/iam/organizations_policy_binding.py +16 -0
- pulumi_gcp/iam/outputs.py +99 -0
- pulumi_gcp/iam/principal_access_boundary_policy.py +16 -0
- pulumi_gcp/iam/projects_policy_binding.py +917 -0
- pulumi_gcp/iap/tunnel_dest_group.py +2 -2
- pulumi_gcp/integrationconnectors/_inputs.py +15 -15
- pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
- pulumi_gcp/integrationconnectors/outputs.py +10 -10
- pulumi_gcp/monitoring/_inputs.py +13 -6
- pulumi_gcp/monitoring/outputs.py +10 -4
- pulumi_gcp/netapp/_inputs.py +3 -3
- pulumi_gcp/netapp/active_directory.py +7 -7
- pulumi_gcp/netapp/outputs.py +2 -2
- pulumi_gcp/netapp/volume.py +11 -11
- pulumi_gcp/networkconnectivity/spoke.py +10 -10
- pulumi_gcp/networksecurity/__init__.py +4 -0
- pulumi_gcp/networksecurity/_inputs.py +115 -0
- pulumi_gcp/networksecurity/mirroring_deployment.py +848 -0
- pulumi_gcp/networksecurity/mirroring_deployment_group.py +752 -0
- pulumi_gcp/networksecurity/mirroring_endpoint_group.py +737 -0
- pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +840 -0
- pulumi_gcp/networksecurity/outputs.py +70 -0
- pulumi_gcp/oracledatabase/autonomous_database.py +42 -4
- pulumi_gcp/oracledatabase/cloud_exadata_infrastructure.py +42 -4
- pulumi_gcp/oracledatabase/cloud_vm_cluster.py +50 -8
- pulumi_gcp/oracledatabase/get_autonomous_database.py +12 -1
- pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructure.py +12 -1
- pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +12 -1
- pulumi_gcp/oracledatabase/outputs.py +21 -0
- pulumi_gcp/orgpolicy/policy.py +2 -2
- pulumi_gcp/parallelstore/instance.py +4 -0
- pulumi_gcp/provider.py +20 -0
- pulumi_gcp/pubsub/subscription.py +6 -6
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/redis/_inputs.py +435 -3
- pulumi_gcp/redis/cluster.py +287 -16
- pulumi_gcp/redis/outputs.py +304 -2
- pulumi_gcp/serviceaccount/get_account_id_token.py +2 -2
- pulumi_gcp/serviceaccount/get_account_key.py +2 -2
- pulumi_gcp/storage/get_bucket.py +2 -2
- pulumi_gcp/storage/get_bucket_object_content.py +2 -2
- pulumi_gcp/tpu/__init__.py +1 -0
- pulumi_gcp/tpu/_inputs.py +188 -6
- pulumi_gcp/tpu/outputs.py +164 -4
- pulumi_gcp/tpu/v2_queued_resource.py +434 -0
- pulumi_gcp/vertex/ai_endpoint.py +4 -4
- pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
- pulumi_gcp/vertex/ai_index_endpoint.py +2 -2
- {pulumi_gcp-8.10.2.dist-info → pulumi_gcp-8.11.0.dist-info}/METADATA +3 -3
- {pulumi_gcp-8.10.2.dist-info → pulumi_gcp-8.11.0.dist-info}/RECORD +142 -125
- {pulumi_gcp-8.10.2.dist-info → pulumi_gcp-8.11.0.dist-info}/WHEEL +0 -0
- {pulumi_gcp-8.10.2.dist-info → pulumi_gcp-8.11.0.dist-info}/top_level.txt +0 -0
pulumi_gcp/redis/outputs.py
CHANGED
@@ -16,6 +16,12 @@ from .. import _utilities
|
|
16
16
|
from . import outputs
|
17
17
|
|
18
18
|
__all__ = [
|
19
|
+
'ClusterCrossClusterReplicationConfig',
|
20
|
+
'ClusterCrossClusterReplicationConfigMembership',
|
21
|
+
'ClusterCrossClusterReplicationConfigMembershipPrimaryCluster',
|
22
|
+
'ClusterCrossClusterReplicationConfigMembershipSecondaryCluster',
|
23
|
+
'ClusterCrossClusterReplicationConfigPrimaryCluster',
|
24
|
+
'ClusterCrossClusterReplicationConfigSecondaryCluster',
|
19
25
|
'ClusterDiscoveryEndpoint',
|
20
26
|
'ClusterDiscoveryEndpointPscConfig',
|
21
27
|
'ClusterMaintenancePolicy',
|
@@ -46,6 +52,302 @@ __all__ = [
|
|
46
52
|
'GetInstanceServerCaCertResult',
|
47
53
|
]
|
48
54
|
|
55
|
+
@pulumi.output_type
|
56
|
+
class ClusterCrossClusterReplicationConfig(dict):
|
57
|
+
@staticmethod
|
58
|
+
def __key_warning(key: str):
|
59
|
+
suggest = None
|
60
|
+
if key == "clusterRole":
|
61
|
+
suggest = "cluster_role"
|
62
|
+
elif key == "primaryCluster":
|
63
|
+
suggest = "primary_cluster"
|
64
|
+
elif key == "secondaryClusters":
|
65
|
+
suggest = "secondary_clusters"
|
66
|
+
elif key == "updateTime":
|
67
|
+
suggest = "update_time"
|
68
|
+
|
69
|
+
if suggest:
|
70
|
+
pulumi.log.warn(f"Key '{key}' not found in ClusterCrossClusterReplicationConfig. Access the value via the '{suggest}' property getter instead.")
|
71
|
+
|
72
|
+
def __getitem__(self, key: str) -> Any:
|
73
|
+
ClusterCrossClusterReplicationConfig.__key_warning(key)
|
74
|
+
return super().__getitem__(key)
|
75
|
+
|
76
|
+
def get(self, key: str, default = None) -> Any:
|
77
|
+
ClusterCrossClusterReplicationConfig.__key_warning(key)
|
78
|
+
return super().get(key, default)
|
79
|
+
|
80
|
+
def __init__(__self__, *,
|
81
|
+
cluster_role: Optional[str] = None,
|
82
|
+
memberships: Optional[Sequence['outputs.ClusterCrossClusterReplicationConfigMembership']] = None,
|
83
|
+
primary_cluster: Optional['outputs.ClusterCrossClusterReplicationConfigPrimaryCluster'] = None,
|
84
|
+
secondary_clusters: Optional[Sequence['outputs.ClusterCrossClusterReplicationConfigSecondaryCluster']] = None,
|
85
|
+
update_time: Optional[str] = None):
|
86
|
+
"""
|
87
|
+
:param str cluster_role: The role of the cluster in cross cluster replication. Supported values are:
|
88
|
+
1. `CLUSTER_ROLE_UNSPECIFIED`: This is an independent cluster that has never participated in cross cluster replication. It allows both reads and writes.
|
89
|
+
1. `NONE`: This is an independent cluster that previously participated in cross cluster replication(either as a `PRIMARY` or `SECONDARY` cluster). It allows both reads and writes.
|
90
|
+
1. `PRIMARY`: This cluster serves as the replication source for secondary clusters that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
|
91
|
+
1. `SECONDARY`: This cluster replicates data from the primary cluster. It allows only reads.
|
92
|
+
Possible values are: `CLUSTER_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
|
93
|
+
:param Sequence['ClusterCrossClusterReplicationConfigMembershipArgs'] memberships: (Output)
|
94
|
+
An output only view of all the member clusters participating in cross cluster replication. This field is populated for all the member clusters irrespective of their cluster role.
|
95
|
+
Structure is documented below.
|
96
|
+
:param 'ClusterCrossClusterReplicationConfigPrimaryClusterArgs' primary_cluster: Details of the primary cluster that is used as the replication source for this secondary cluster. This is allowed to be set only for clusters whose cluster role is of type `SECONDARY`.
|
97
|
+
Structure is documented below.
|
98
|
+
:param Sequence['ClusterCrossClusterReplicationConfigSecondaryClusterArgs'] secondary_clusters: List of secondary clusters that are replicating from this primary cluster. This is allowed to be set only for clusters whose cluster role is of type `PRIMARY`.
|
99
|
+
Structure is documented below.
|
100
|
+
:param str update_time: (Output)
|
101
|
+
The last time cross cluster replication config was updated.
|
102
|
+
"""
|
103
|
+
if cluster_role is not None:
|
104
|
+
pulumi.set(__self__, "cluster_role", cluster_role)
|
105
|
+
if memberships is not None:
|
106
|
+
pulumi.set(__self__, "memberships", memberships)
|
107
|
+
if primary_cluster is not None:
|
108
|
+
pulumi.set(__self__, "primary_cluster", primary_cluster)
|
109
|
+
if secondary_clusters is not None:
|
110
|
+
pulumi.set(__self__, "secondary_clusters", secondary_clusters)
|
111
|
+
if update_time is not None:
|
112
|
+
pulumi.set(__self__, "update_time", update_time)
|
113
|
+
|
114
|
+
@property
|
115
|
+
@pulumi.getter(name="clusterRole")
|
116
|
+
def cluster_role(self) -> Optional[str]:
|
117
|
+
"""
|
118
|
+
The role of the cluster in cross cluster replication. Supported values are:
|
119
|
+
1. `CLUSTER_ROLE_UNSPECIFIED`: This is an independent cluster that has never participated in cross cluster replication. It allows both reads and writes.
|
120
|
+
1. `NONE`: This is an independent cluster that previously participated in cross cluster replication(either as a `PRIMARY` or `SECONDARY` cluster). It allows both reads and writes.
|
121
|
+
1. `PRIMARY`: This cluster serves as the replication source for secondary clusters that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
|
122
|
+
1. `SECONDARY`: This cluster replicates data from the primary cluster. It allows only reads.
|
123
|
+
Possible values are: `CLUSTER_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
|
124
|
+
"""
|
125
|
+
return pulumi.get(self, "cluster_role")
|
126
|
+
|
127
|
+
@property
|
128
|
+
@pulumi.getter
|
129
|
+
def memberships(self) -> Optional[Sequence['outputs.ClusterCrossClusterReplicationConfigMembership']]:
|
130
|
+
"""
|
131
|
+
(Output)
|
132
|
+
An output only view of all the member clusters participating in cross cluster replication. This field is populated for all the member clusters irrespective of their cluster role.
|
133
|
+
Structure is documented below.
|
134
|
+
"""
|
135
|
+
return pulumi.get(self, "memberships")
|
136
|
+
|
137
|
+
@property
|
138
|
+
@pulumi.getter(name="primaryCluster")
|
139
|
+
def primary_cluster(self) -> Optional['outputs.ClusterCrossClusterReplicationConfigPrimaryCluster']:
|
140
|
+
"""
|
141
|
+
Details of the primary cluster that is used as the replication source for this secondary cluster. This is allowed to be set only for clusters whose cluster role is of type `SECONDARY`.
|
142
|
+
Structure is documented below.
|
143
|
+
"""
|
144
|
+
return pulumi.get(self, "primary_cluster")
|
145
|
+
|
146
|
+
@property
|
147
|
+
@pulumi.getter(name="secondaryClusters")
|
148
|
+
def secondary_clusters(self) -> Optional[Sequence['outputs.ClusterCrossClusterReplicationConfigSecondaryCluster']]:
|
149
|
+
"""
|
150
|
+
List of secondary clusters that are replicating from this primary cluster. This is allowed to be set only for clusters whose cluster role is of type `PRIMARY`.
|
151
|
+
Structure is documented below.
|
152
|
+
"""
|
153
|
+
return pulumi.get(self, "secondary_clusters")
|
154
|
+
|
155
|
+
@property
|
156
|
+
@pulumi.getter(name="updateTime")
|
157
|
+
def update_time(self) -> Optional[str]:
|
158
|
+
"""
|
159
|
+
(Output)
|
160
|
+
The last time cross cluster replication config was updated.
|
161
|
+
"""
|
162
|
+
return pulumi.get(self, "update_time")
|
163
|
+
|
164
|
+
|
165
|
+
@pulumi.output_type
|
166
|
+
class ClusterCrossClusterReplicationConfigMembership(dict):
|
167
|
+
@staticmethod
|
168
|
+
def __key_warning(key: str):
|
169
|
+
suggest = None
|
170
|
+
if key == "primaryClusters":
|
171
|
+
suggest = "primary_clusters"
|
172
|
+
elif key == "secondaryClusters":
|
173
|
+
suggest = "secondary_clusters"
|
174
|
+
|
175
|
+
if suggest:
|
176
|
+
pulumi.log.warn(f"Key '{key}' not found in ClusterCrossClusterReplicationConfigMembership. Access the value via the '{suggest}' property getter instead.")
|
177
|
+
|
178
|
+
def __getitem__(self, key: str) -> Any:
|
179
|
+
ClusterCrossClusterReplicationConfigMembership.__key_warning(key)
|
180
|
+
return super().__getitem__(key)
|
181
|
+
|
182
|
+
def get(self, key: str, default = None) -> Any:
|
183
|
+
ClusterCrossClusterReplicationConfigMembership.__key_warning(key)
|
184
|
+
return super().get(key, default)
|
185
|
+
|
186
|
+
def __init__(__self__, *,
|
187
|
+
primary_clusters: Optional[Sequence['outputs.ClusterCrossClusterReplicationConfigMembershipPrimaryCluster']] = None,
|
188
|
+
secondary_clusters: Optional[Sequence['outputs.ClusterCrossClusterReplicationConfigMembershipSecondaryCluster']] = None):
|
189
|
+
"""
|
190
|
+
:param Sequence['ClusterCrossClusterReplicationConfigMembershipPrimaryClusterArgs'] primary_clusters: Details of the primary cluster that is used as the replication source for all the secondary clusters.
|
191
|
+
:param Sequence['ClusterCrossClusterReplicationConfigMembershipSecondaryClusterArgs'] secondary_clusters: List of secondary clusters that are replicating from the primary cluster.
|
192
|
+
"""
|
193
|
+
if primary_clusters is not None:
|
194
|
+
pulumi.set(__self__, "primary_clusters", primary_clusters)
|
195
|
+
if secondary_clusters is not None:
|
196
|
+
pulumi.set(__self__, "secondary_clusters", secondary_clusters)
|
197
|
+
|
198
|
+
@property
|
199
|
+
@pulumi.getter(name="primaryClusters")
|
200
|
+
def primary_clusters(self) -> Optional[Sequence['outputs.ClusterCrossClusterReplicationConfigMembershipPrimaryCluster']]:
|
201
|
+
"""
|
202
|
+
Details of the primary cluster that is used as the replication source for all the secondary clusters.
|
203
|
+
"""
|
204
|
+
return pulumi.get(self, "primary_clusters")
|
205
|
+
|
206
|
+
@property
|
207
|
+
@pulumi.getter(name="secondaryClusters")
|
208
|
+
def secondary_clusters(self) -> Optional[Sequence['outputs.ClusterCrossClusterReplicationConfigMembershipSecondaryCluster']]:
|
209
|
+
"""
|
210
|
+
List of secondary clusters that are replicating from the primary cluster.
|
211
|
+
"""
|
212
|
+
return pulumi.get(self, "secondary_clusters")
|
213
|
+
|
214
|
+
|
215
|
+
@pulumi.output_type
|
216
|
+
class ClusterCrossClusterReplicationConfigMembershipPrimaryCluster(dict):
|
217
|
+
def __init__(__self__, *,
|
218
|
+
cluster: Optional[str] = None,
|
219
|
+
uid: Optional[str] = None):
|
220
|
+
"""
|
221
|
+
:param str cluster: The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
|
222
|
+
:param str uid: (Output)
|
223
|
+
The unique id of the primary cluster.
|
224
|
+
"""
|
225
|
+
if cluster is not None:
|
226
|
+
pulumi.set(__self__, "cluster", cluster)
|
227
|
+
if uid is not None:
|
228
|
+
pulumi.set(__self__, "uid", uid)
|
229
|
+
|
230
|
+
@property
|
231
|
+
@pulumi.getter
|
232
|
+
def cluster(self) -> Optional[str]:
|
233
|
+
"""
|
234
|
+
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
|
235
|
+
"""
|
236
|
+
return pulumi.get(self, "cluster")
|
237
|
+
|
238
|
+
@property
|
239
|
+
@pulumi.getter
|
240
|
+
def uid(self) -> Optional[str]:
|
241
|
+
"""
|
242
|
+
(Output)
|
243
|
+
The unique id of the primary cluster.
|
244
|
+
"""
|
245
|
+
return pulumi.get(self, "uid")
|
246
|
+
|
247
|
+
|
248
|
+
@pulumi.output_type
|
249
|
+
class ClusterCrossClusterReplicationConfigMembershipSecondaryCluster(dict):
|
250
|
+
def __init__(__self__, *,
|
251
|
+
cluster: Optional[str] = None,
|
252
|
+
uid: Optional[str] = None):
|
253
|
+
"""
|
254
|
+
:param str cluster: (Output)
|
255
|
+
The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
|
256
|
+
:param str uid: (Output)
|
257
|
+
The unique id of the secondary cluster.
|
258
|
+
"""
|
259
|
+
if cluster is not None:
|
260
|
+
pulumi.set(__self__, "cluster", cluster)
|
261
|
+
if uid is not None:
|
262
|
+
pulumi.set(__self__, "uid", uid)
|
263
|
+
|
264
|
+
@property
|
265
|
+
@pulumi.getter
|
266
|
+
def cluster(self) -> Optional[str]:
|
267
|
+
"""
|
268
|
+
(Output)
|
269
|
+
The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
|
270
|
+
"""
|
271
|
+
return pulumi.get(self, "cluster")
|
272
|
+
|
273
|
+
@property
|
274
|
+
@pulumi.getter
|
275
|
+
def uid(self) -> Optional[str]:
|
276
|
+
"""
|
277
|
+
(Output)
|
278
|
+
The unique id of the secondary cluster.
|
279
|
+
"""
|
280
|
+
return pulumi.get(self, "uid")
|
281
|
+
|
282
|
+
|
283
|
+
@pulumi.output_type
|
284
|
+
class ClusterCrossClusterReplicationConfigPrimaryCluster(dict):
|
285
|
+
def __init__(__self__, *,
|
286
|
+
cluster: Optional[str] = None,
|
287
|
+
uid: Optional[str] = None):
|
288
|
+
"""
|
289
|
+
:param str cluster: The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
|
290
|
+
:param str uid: (Output)
|
291
|
+
The unique id of the primary cluster.
|
292
|
+
"""
|
293
|
+
if cluster is not None:
|
294
|
+
pulumi.set(__self__, "cluster", cluster)
|
295
|
+
if uid is not None:
|
296
|
+
pulumi.set(__self__, "uid", uid)
|
297
|
+
|
298
|
+
@property
|
299
|
+
@pulumi.getter
|
300
|
+
def cluster(self) -> Optional[str]:
|
301
|
+
"""
|
302
|
+
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
|
303
|
+
"""
|
304
|
+
return pulumi.get(self, "cluster")
|
305
|
+
|
306
|
+
@property
|
307
|
+
@pulumi.getter
|
308
|
+
def uid(self) -> Optional[str]:
|
309
|
+
"""
|
310
|
+
(Output)
|
311
|
+
The unique id of the primary cluster.
|
312
|
+
"""
|
313
|
+
return pulumi.get(self, "uid")
|
314
|
+
|
315
|
+
|
316
|
+
@pulumi.output_type
|
317
|
+
class ClusterCrossClusterReplicationConfigSecondaryCluster(dict):
|
318
|
+
def __init__(__self__, *,
|
319
|
+
cluster: Optional[str] = None,
|
320
|
+
uid: Optional[str] = None):
|
321
|
+
"""
|
322
|
+
:param str cluster: (Output)
|
323
|
+
The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
|
324
|
+
:param str uid: (Output)
|
325
|
+
The unique id of the secondary cluster.
|
326
|
+
"""
|
327
|
+
if cluster is not None:
|
328
|
+
pulumi.set(__self__, "cluster", cluster)
|
329
|
+
if uid is not None:
|
330
|
+
pulumi.set(__self__, "uid", uid)
|
331
|
+
|
332
|
+
@property
|
333
|
+
@pulumi.getter
|
334
|
+
def cluster(self) -> Optional[str]:
|
335
|
+
"""
|
336
|
+
(Output)
|
337
|
+
The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
|
338
|
+
"""
|
339
|
+
return pulumi.get(self, "cluster")
|
340
|
+
|
341
|
+
@property
|
342
|
+
@pulumi.getter
|
343
|
+
def uid(self) -> Optional[str]:
|
344
|
+
"""
|
345
|
+
(Output)
|
346
|
+
The unique id of the secondary cluster.
|
347
|
+
"""
|
348
|
+
return pulumi.get(self, "uid")
|
349
|
+
|
350
|
+
|
49
351
|
@pulumi.output_type
|
50
352
|
class ClusterDiscoveryEndpoint(dict):
|
51
353
|
@staticmethod
|
@@ -537,7 +839,7 @@ class ClusterPersistenceConfigAofConfig(dict):
|
|
537
839
|
append_fsync: Optional[str] = None):
|
538
840
|
"""
|
539
841
|
:param str append_fsync: Optional. Available fsync modes.
|
540
|
-
- NO - Do not
|
842
|
+
- NO - Do not explicitly call fsync(). Rely on OS defaults.
|
541
843
|
- EVERYSEC - Call fsync() once per second in a background thread. A balance between performance and durability.
|
542
844
|
- ALWAYS - Call fsync() for earch write command.
|
543
845
|
Possible values are: `APPEND_FSYNC_UNSPECIFIED`, `NO`, `EVERYSEC`, `ALWAYS`.
|
@@ -550,7 +852,7 @@ class ClusterPersistenceConfigAofConfig(dict):
|
|
550
852
|
def append_fsync(self) -> Optional[str]:
|
551
853
|
"""
|
552
854
|
Optional. Available fsync modes.
|
553
|
-
- NO - Do not
|
855
|
+
- NO - Do not explicitly call fsync(). Rely on OS defaults.
|
554
856
|
- EVERYSEC - Call fsync() once per second in a background thread. A balance between performance and durability.
|
555
857
|
- ALWAYS - Call fsync() for earch write command.
|
556
858
|
Possible values are: `APPEND_FSYNC_UNSPECIFIED`, `NO`, `EVERYSEC`, `ALWAYS`.
|
@@ -122,7 +122,7 @@ def get_account_id_token(delegates: Optional[Sequence[str]] = None,
|
|
122
122
|
```
|
123
123
|
|
124
124
|
### Service Account Impersonation.
|
125
|
-
`
|
125
|
+
`serviceaccount_get_account_id_token` will use background impersonated credentials provided by `serviceaccount_get_account_access_token`.
|
126
126
|
|
127
127
|
Note: to use the following, you must grant `target_service_account` the
|
128
128
|
`roles/iam.serviceAccountTokenCreator` role on itself.
|
@@ -208,7 +208,7 @@ def get_account_id_token_output(delegates: Optional[pulumi.Input[Optional[Sequen
|
|
208
208
|
```
|
209
209
|
|
210
210
|
### Service Account Impersonation.
|
211
|
-
`
|
211
|
+
`serviceaccount_get_account_id_token` will use background impersonated credentials provided by `serviceaccount_get_account_access_token`.
|
212
212
|
|
213
213
|
Note: to use the following, you must grant `target_service_account` the
|
214
214
|
`roles/iam.serviceAccountTokenCreator` role on itself.
|
@@ -120,7 +120,7 @@ def get_account_key(name: Optional[str] = None,
|
|
120
120
|
:param str name: The name of the service account key. This must have format
|
121
121
|
`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}`, where `{ACCOUNT}`
|
122
122
|
is the email address or unique id of the service account.
|
123
|
-
:param str project: The ID of the project that the service account
|
123
|
+
:param str project: The ID of the project that the service account is present in.
|
124
124
|
Defaults to the provider project configuration.
|
125
125
|
:param str public_key_type: The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.
|
126
126
|
"""
|
@@ -161,7 +161,7 @@ def get_account_key_output(name: Optional[pulumi.Input[str]] = None,
|
|
161
161
|
:param str name: The name of the service account key. This must have format
|
162
162
|
`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}`, where `{ACCOUNT}`
|
163
163
|
is the email address or unique id of the service account.
|
164
|
-
:param str project: The ID of the project that the service account
|
164
|
+
:param str project: The ID of the project that the service account is present in.
|
165
165
|
Defaults to the provider project configuration.
|
166
166
|
:param str public_key_type: The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.
|
167
167
|
"""
|
pulumi_gcp/storage/get_bucket.py
CHANGED
@@ -322,7 +322,7 @@ def get_bucket(name: Optional[str] = None,
|
|
322
322
|
|
323
323
|
|
324
324
|
:param str name: The name of the bucket.
|
325
|
-
:param str project: The ID of the project in which the resource belongs. If it is not provided
|
325
|
+
:param str project: The ID of the project in which the resource belongs. If it is not provided then the data source will use the Compute API to find the project id that corresponds to the project number returned from the Storage API, and if no Compute API permissions are available or if the Compute API is disabled it defaults to the provider value. Supplying a value for `project` doesn't influence retrieving data about the bucket but it can be used to prevent use of the Compute API. If you do provide a `project` value ensure that it is the correct value for that bucket; the data source will not check that the project id and project number match.
|
326
326
|
"""
|
327
327
|
__args__ = dict()
|
328
328
|
__args__['name'] = name
|
@@ -380,7 +380,7 @@ def get_bucket_output(name: Optional[pulumi.Input[str]] = None,
|
|
380
380
|
|
381
381
|
|
382
382
|
:param str name: The name of the bucket.
|
383
|
-
:param str project: The ID of the project in which the resource belongs. If it is not provided
|
383
|
+
:param str project: The ID of the project in which the resource belongs. If it is not provided then the data source will use the Compute API to find the project id that corresponds to the project number returned from the Storage API, and if no Compute API permissions are available or if the Compute API is disabled it defaults to the provider value. Supplying a value for `project` doesn't influence retrieving data about the bucket but it can be used to prevent use of the Compute API. If you do provide a `project` value ensure that it is the correct value for that bucket; the data source will not check that the project id and project number match.
|
384
384
|
"""
|
385
385
|
__args__ = dict()
|
386
386
|
__args__['name'] = name
|
@@ -270,7 +270,7 @@ def get_bucket_object_content(bucket: Optional[str] = None,
|
|
270
270
|
and
|
271
271
|
[API](https://cloud.google.com/storage/docs/json_api/v1/objects).
|
272
272
|
|
273
|
-
> **Warning:** The object content will be saved in the state, and
|
273
|
+
> **Warning:** The object content will be saved in the state, and visible to everyone who has access to the state file.
|
274
274
|
|
275
275
|
## Example Usage
|
276
276
|
|
@@ -332,7 +332,7 @@ def get_bucket_object_content_output(bucket: Optional[pulumi.Input[str]] = None,
|
|
332
332
|
and
|
333
333
|
[API](https://cloud.google.com/storage/docs/json_api/v1/objects).
|
334
334
|
|
335
|
-
> **Warning:** The object content will be saved in the state, and
|
335
|
+
> **Warning:** The object content will be saved in the state, and visible to everyone who has access to the state file.
|
336
336
|
|
337
337
|
## Example Usage
|
338
338
|
|
pulumi_gcp/tpu/__init__.py
CHANGED
pulumi_gcp/tpu/_inputs.py
CHANGED
@@ -19,6 +19,12 @@ __all__ = [
|
|
19
19
|
'NodeNetworkEndpointArgsDict',
|
20
20
|
'NodeSchedulingConfigArgs',
|
21
21
|
'NodeSchedulingConfigArgsDict',
|
22
|
+
'V2QueuedResourceTpuArgs',
|
23
|
+
'V2QueuedResourceTpuArgsDict',
|
24
|
+
'V2QueuedResourceTpuNodeSpecArgs',
|
25
|
+
'V2QueuedResourceTpuNodeSpecArgsDict',
|
26
|
+
'V2QueuedResourceTpuNodeSpecNodeArgs',
|
27
|
+
'V2QueuedResourceTpuNodeSpecNodeArgsDict',
|
22
28
|
'V2VmAcceleratorConfigArgs',
|
23
29
|
'V2VmAcceleratorConfigArgsDict',
|
24
30
|
'V2VmDataDiskArgs',
|
@@ -130,6 +136,185 @@ class NodeSchedulingConfigArgs:
|
|
130
136
|
pulumi.set(self, "preemptible", value)
|
131
137
|
|
132
138
|
|
139
|
+
if not MYPY:
|
140
|
+
class V2QueuedResourceTpuArgsDict(TypedDict):
|
141
|
+
node_specs: NotRequired[pulumi.Input[Sequence[pulumi.Input['V2QueuedResourceTpuNodeSpecArgsDict']]]]
|
142
|
+
"""
|
143
|
+
The TPU node(s) being requested.
|
144
|
+
Structure is documented below.
|
145
|
+
"""
|
146
|
+
elif False:
|
147
|
+
V2QueuedResourceTpuArgsDict: TypeAlias = Mapping[str, Any]
|
148
|
+
|
149
|
+
@pulumi.input_type
|
150
|
+
class V2QueuedResourceTpuArgs:
|
151
|
+
def __init__(__self__, *,
|
152
|
+
node_specs: Optional[pulumi.Input[Sequence[pulumi.Input['V2QueuedResourceTpuNodeSpecArgs']]]] = None):
|
153
|
+
"""
|
154
|
+
:param pulumi.Input[Sequence[pulumi.Input['V2QueuedResourceTpuNodeSpecArgs']]] node_specs: The TPU node(s) being requested.
|
155
|
+
Structure is documented below.
|
156
|
+
"""
|
157
|
+
if node_specs is not None:
|
158
|
+
pulumi.set(__self__, "node_specs", node_specs)
|
159
|
+
|
160
|
+
@property
|
161
|
+
@pulumi.getter(name="nodeSpecs")
|
162
|
+
def node_specs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['V2QueuedResourceTpuNodeSpecArgs']]]]:
|
163
|
+
"""
|
164
|
+
The TPU node(s) being requested.
|
165
|
+
Structure is documented below.
|
166
|
+
"""
|
167
|
+
return pulumi.get(self, "node_specs")
|
168
|
+
|
169
|
+
@node_specs.setter
|
170
|
+
def node_specs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['V2QueuedResourceTpuNodeSpecArgs']]]]):
|
171
|
+
pulumi.set(self, "node_specs", value)
|
172
|
+
|
173
|
+
|
174
|
+
if not MYPY:
|
175
|
+
class V2QueuedResourceTpuNodeSpecArgsDict(TypedDict):
|
176
|
+
node: pulumi.Input['V2QueuedResourceTpuNodeSpecNodeArgsDict']
|
177
|
+
"""
|
178
|
+
The node.
|
179
|
+
Structure is documented below.
|
180
|
+
"""
|
181
|
+
parent: pulumi.Input[str]
|
182
|
+
"""
|
183
|
+
The parent resource name.
|
184
|
+
"""
|
185
|
+
node_id: NotRequired[pulumi.Input[str]]
|
186
|
+
"""
|
187
|
+
Unqualified node identifier used to identify the node in the project once provisioned.
|
188
|
+
"""
|
189
|
+
elif False:
|
190
|
+
V2QueuedResourceTpuNodeSpecArgsDict: TypeAlias = Mapping[str, Any]
|
191
|
+
|
192
|
+
@pulumi.input_type
|
193
|
+
class V2QueuedResourceTpuNodeSpecArgs:
|
194
|
+
def __init__(__self__, *,
|
195
|
+
node: pulumi.Input['V2QueuedResourceTpuNodeSpecNodeArgs'],
|
196
|
+
parent: pulumi.Input[str],
|
197
|
+
node_id: Optional[pulumi.Input[str]] = None):
|
198
|
+
"""
|
199
|
+
:param pulumi.Input['V2QueuedResourceTpuNodeSpecNodeArgs'] node: The node.
|
200
|
+
Structure is documented below.
|
201
|
+
:param pulumi.Input[str] parent: The parent resource name.
|
202
|
+
:param pulumi.Input[str] node_id: Unqualified node identifier used to identify the node in the project once provisioned.
|
203
|
+
"""
|
204
|
+
pulumi.set(__self__, "node", node)
|
205
|
+
pulumi.set(__self__, "parent", parent)
|
206
|
+
if node_id is not None:
|
207
|
+
pulumi.set(__self__, "node_id", node_id)
|
208
|
+
|
209
|
+
@property
|
210
|
+
@pulumi.getter
|
211
|
+
def node(self) -> pulumi.Input['V2QueuedResourceTpuNodeSpecNodeArgs']:
|
212
|
+
"""
|
213
|
+
The node.
|
214
|
+
Structure is documented below.
|
215
|
+
"""
|
216
|
+
return pulumi.get(self, "node")
|
217
|
+
|
218
|
+
@node.setter
|
219
|
+
def node(self, value: pulumi.Input['V2QueuedResourceTpuNodeSpecNodeArgs']):
|
220
|
+
pulumi.set(self, "node", value)
|
221
|
+
|
222
|
+
@property
|
223
|
+
@pulumi.getter
|
224
|
+
def parent(self) -> pulumi.Input[str]:
|
225
|
+
"""
|
226
|
+
The parent resource name.
|
227
|
+
"""
|
228
|
+
return pulumi.get(self, "parent")
|
229
|
+
|
230
|
+
@parent.setter
|
231
|
+
def parent(self, value: pulumi.Input[str]):
|
232
|
+
pulumi.set(self, "parent", value)
|
233
|
+
|
234
|
+
@property
|
235
|
+
@pulumi.getter(name="nodeId")
|
236
|
+
def node_id(self) -> Optional[pulumi.Input[str]]:
|
237
|
+
"""
|
238
|
+
Unqualified node identifier used to identify the node in the project once provisioned.
|
239
|
+
"""
|
240
|
+
return pulumi.get(self, "node_id")
|
241
|
+
|
242
|
+
@node_id.setter
|
243
|
+
def node_id(self, value: Optional[pulumi.Input[str]]):
|
244
|
+
pulumi.set(self, "node_id", value)
|
245
|
+
|
246
|
+
|
247
|
+
if not MYPY:
|
248
|
+
class V2QueuedResourceTpuNodeSpecNodeArgsDict(TypedDict):
|
249
|
+
runtime_version: pulumi.Input[str]
|
250
|
+
"""
|
251
|
+
Runtime version for the TPU.
|
252
|
+
"""
|
253
|
+
accelerator_type: NotRequired[pulumi.Input[str]]
|
254
|
+
"""
|
255
|
+
TPU accelerator type for the TPU. If not specified, this defaults to 'v2-8'.
|
256
|
+
"""
|
257
|
+
description: NotRequired[pulumi.Input[str]]
|
258
|
+
"""
|
259
|
+
Text description of the TPU.
|
260
|
+
"""
|
261
|
+
elif False:
|
262
|
+
V2QueuedResourceTpuNodeSpecNodeArgsDict: TypeAlias = Mapping[str, Any]
|
263
|
+
|
264
|
+
@pulumi.input_type
|
265
|
+
class V2QueuedResourceTpuNodeSpecNodeArgs:
|
266
|
+
def __init__(__self__, *,
|
267
|
+
runtime_version: pulumi.Input[str],
|
268
|
+
accelerator_type: Optional[pulumi.Input[str]] = None,
|
269
|
+
description: Optional[pulumi.Input[str]] = None):
|
270
|
+
"""
|
271
|
+
:param pulumi.Input[str] runtime_version: Runtime version for the TPU.
|
272
|
+
:param pulumi.Input[str] accelerator_type: TPU accelerator type for the TPU. If not specified, this defaults to 'v2-8'.
|
273
|
+
:param pulumi.Input[str] description: Text description of the TPU.
|
274
|
+
"""
|
275
|
+
pulumi.set(__self__, "runtime_version", runtime_version)
|
276
|
+
if accelerator_type is not None:
|
277
|
+
pulumi.set(__self__, "accelerator_type", accelerator_type)
|
278
|
+
if description is not None:
|
279
|
+
pulumi.set(__self__, "description", description)
|
280
|
+
|
281
|
+
@property
|
282
|
+
@pulumi.getter(name="runtimeVersion")
|
283
|
+
def runtime_version(self) -> pulumi.Input[str]:
|
284
|
+
"""
|
285
|
+
Runtime version for the TPU.
|
286
|
+
"""
|
287
|
+
return pulumi.get(self, "runtime_version")
|
288
|
+
|
289
|
+
@runtime_version.setter
|
290
|
+
def runtime_version(self, value: pulumi.Input[str]):
|
291
|
+
pulumi.set(self, "runtime_version", value)
|
292
|
+
|
293
|
+
@property
|
294
|
+
@pulumi.getter(name="acceleratorType")
|
295
|
+
def accelerator_type(self) -> Optional[pulumi.Input[str]]:
|
296
|
+
"""
|
297
|
+
TPU accelerator type for the TPU. If not specified, this defaults to 'v2-8'.
|
298
|
+
"""
|
299
|
+
return pulumi.get(self, "accelerator_type")
|
300
|
+
|
301
|
+
@accelerator_type.setter
|
302
|
+
def accelerator_type(self, value: Optional[pulumi.Input[str]]):
|
303
|
+
pulumi.set(self, "accelerator_type", value)
|
304
|
+
|
305
|
+
@property
|
306
|
+
@pulumi.getter
|
307
|
+
def description(self) -> Optional[pulumi.Input[str]]:
|
308
|
+
"""
|
309
|
+
Text description of the TPU.
|
310
|
+
"""
|
311
|
+
return pulumi.get(self, "description")
|
312
|
+
|
313
|
+
@description.setter
|
314
|
+
def description(self, value: Optional[pulumi.Input[str]]):
|
315
|
+
pulumi.set(self, "description", value)
|
316
|
+
|
317
|
+
|
133
318
|
if not MYPY:
|
134
319
|
class V2VmAcceleratorConfigArgsDict(TypedDict):
|
135
320
|
topology: pulumi.Input[str]
|
@@ -138,8 +323,7 @@ if not MYPY:
|
|
138
323
|
"""
|
139
324
|
type: pulumi.Input[str]
|
140
325
|
"""
|
141
|
-
Type of TPU.
|
142
|
-
Possible values are: `V2`, `V3`, `V4`, `V5P`.
|
326
|
+
Type of TPU. Please select one of the allowed types: https://cloud.google.com/tpu/docs/reference/rest/v2/AcceleratorConfig#Type
|
143
327
|
"""
|
144
328
|
elif False:
|
145
329
|
V2VmAcceleratorConfigArgsDict: TypeAlias = Mapping[str, Any]
|
@@ -151,8 +335,7 @@ class V2VmAcceleratorConfigArgs:
|
|
151
335
|
type: pulumi.Input[str]):
|
152
336
|
"""
|
153
337
|
:param pulumi.Input[str] topology: Topology of TPU in chips.
|
154
|
-
:param pulumi.Input[str] type: Type of TPU.
|
155
|
-
Possible values are: `V2`, `V3`, `V4`, `V5P`.
|
338
|
+
:param pulumi.Input[str] type: Type of TPU. Please select one of the allowed types: https://cloud.google.com/tpu/docs/reference/rest/v2/AcceleratorConfig#Type
|
156
339
|
"""
|
157
340
|
pulumi.set(__self__, "topology", topology)
|
158
341
|
pulumi.set(__self__, "type", type)
|
@@ -173,8 +356,7 @@ class V2VmAcceleratorConfigArgs:
|
|
173
356
|
@pulumi.getter
|
174
357
|
def type(self) -> pulumi.Input[str]:
|
175
358
|
"""
|
176
|
-
Type of TPU.
|
177
|
-
Possible values are: `V2`, `V3`, `V4`, `V5P`.
|
359
|
+
Type of TPU. Please select one of the allowed types: https://cloud.google.com/tpu/docs/reference/rest/v2/AcceleratorConfig#Type
|
178
360
|
"""
|
179
361
|
return pulumi.get(self, "type")
|
180
362
|
|