pulumi-gcp 7.16.0a1711520590__py3-none-any.whl → 7.16.0a1711535676__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 (38) hide show
  1. pulumi_gcp/__init__.py +8 -0
  2. pulumi_gcp/accesscontextmanager/__init__.py +1 -0
  3. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +345 -0
  4. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +80 -0
  5. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +86 -0
  6. pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +4 -2
  7. pulumi_gcp/cloudquota/__init__.py +1 -0
  8. pulumi_gcp/cloudquota/get_s_quota_infos.py +136 -0
  9. pulumi_gcp/cloudquota/outputs.py +270 -0
  10. pulumi_gcp/cloudrunv2/_inputs.py +59 -2
  11. pulumi_gcp/cloudrunv2/outputs.py +107 -4
  12. pulumi_gcp/cloudrunv2/service.py +6 -6
  13. pulumi_gcp/composer/_inputs.py +16 -0
  14. pulumi_gcp/composer/outputs.py +23 -0
  15. pulumi_gcp/compute/_inputs.py +105 -7
  16. pulumi_gcp/compute/outputs.py +140 -9
  17. pulumi_gcp/compute/region_url_map.py +152 -0
  18. pulumi_gcp/dataform/repository.py +4 -74
  19. pulumi_gcp/firebase/android_app.py +41 -40
  20. pulumi_gcp/firestore/index.py +34 -48
  21. pulumi_gcp/monitoring/_inputs.py +2 -0
  22. pulumi_gcp/monitoring/outputs.py +2 -0
  23. pulumi_gcp/networksecurity/firewall_endpoint.py +48 -0
  24. pulumi_gcp/pubsub/_inputs.py +108 -0
  25. pulumi_gcp/pubsub/get_topic.py +11 -1
  26. pulumi_gcp/pubsub/outputs.py +213 -0
  27. pulumi_gcp/pubsub/topic.py +92 -0
  28. pulumi_gcp/storage/_inputs.py +40 -0
  29. pulumi_gcp/storage/bucket.py +54 -0
  30. pulumi_gcp/storage/get_bucket.py +11 -1
  31. pulumi_gcp/storage/outputs.py +81 -0
  32. pulumi_gcp/workstations/_inputs.py +113 -0
  33. pulumi_gcp/workstations/outputs.py +109 -1
  34. pulumi_gcp/workstations/workstation_config.py +106 -0
  35. {pulumi_gcp-7.16.0a1711520590.dist-info → pulumi_gcp-7.16.0a1711535676.dist-info}/METADATA +1 -1
  36. {pulumi_gcp-7.16.0a1711520590.dist-info → pulumi_gcp-7.16.0a1711535676.dist-info}/RECORD +38 -36
  37. {pulumi_gcp-7.16.0a1711520590.dist-info → pulumi_gcp-7.16.0a1711535676.dist-info}/WHEEL +0 -0
  38. {pulumi_gcp-7.16.0a1711520590.dist-info → pulumi_gcp-7.16.0a1711535676.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,136 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+ from . import outputs
12
+
13
+ __all__ = [
14
+ 'GetSQuotaInfosResult',
15
+ 'AwaitableGetSQuotaInfosResult',
16
+ 'get_s_quota_infos',
17
+ 'get_s_quota_infos_output',
18
+ ]
19
+
20
+ @pulumi.output_type
21
+ class GetSQuotaInfosResult:
22
+ """
23
+ A collection of values returned by getSQuotaInfos.
24
+ """
25
+ def __init__(__self__, id=None, parent=None, quota_infos=None, service=None):
26
+ if id and not isinstance(id, str):
27
+ raise TypeError("Expected argument 'id' to be a str")
28
+ pulumi.set(__self__, "id", id)
29
+ if parent and not isinstance(parent, str):
30
+ raise TypeError("Expected argument 'parent' to be a str")
31
+ pulumi.set(__self__, "parent", parent)
32
+ if quota_infos and not isinstance(quota_infos, list):
33
+ raise TypeError("Expected argument 'quota_infos' to be a list")
34
+ pulumi.set(__self__, "quota_infos", quota_infos)
35
+ if service and not isinstance(service, str):
36
+ raise TypeError("Expected argument 'service' to be a str")
37
+ pulumi.set(__self__, "service", service)
38
+
39
+ @property
40
+ @pulumi.getter
41
+ def id(self) -> str:
42
+ """
43
+ The provider-assigned unique ID for this managed resource.
44
+ """
45
+ return pulumi.get(self, "id")
46
+
47
+ @property
48
+ @pulumi.getter
49
+ def parent(self) -> str:
50
+ return pulumi.get(self, "parent")
51
+
52
+ @property
53
+ @pulumi.getter(name="quotaInfos")
54
+ def quota_infos(self) -> Sequence['outputs.GetSQuotaInfosQuotaInfoResult']:
55
+ """
56
+ (Output) The list of QuotaInfo.
57
+ """
58
+ return pulumi.get(self, "quota_infos")
59
+
60
+ @property
61
+ @pulumi.getter
62
+ def service(self) -> str:
63
+ return pulumi.get(self, "service")
64
+
65
+
66
+ class AwaitableGetSQuotaInfosResult(GetSQuotaInfosResult):
67
+ # pylint: disable=using-constant-test
68
+ def __await__(self):
69
+ if False:
70
+ yield self
71
+ return GetSQuotaInfosResult(
72
+ id=self.id,
73
+ parent=self.parent,
74
+ quota_infos=self.quota_infos,
75
+ service=self.service)
76
+
77
+
78
+ def get_s_quota_infos(parent: Optional[str] = None,
79
+ service: Optional[str] = None,
80
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSQuotaInfosResult:
81
+ """
82
+ Provides information about all quotas for a given project, folder or organization.
83
+
84
+ ## Example Usage
85
+
86
+ <!--Start PulumiCodeChooser -->
87
+ ```python
88
+ import pulumi
89
+ import pulumi_gcp as gcp
90
+
91
+ my_quota_infos = gcp.cloudquota.get_s_quota_infos(parent="projects/my-project",
92
+ service="compute.googleapis.com")
93
+ ```
94
+ <!--End PulumiCodeChooser -->
95
+
96
+
97
+ :param str parent: Parent value of QuotaInfo resources. Listing across different resource containers (such as 'projects/-') is not allowed. Allowed parents are "projects/[project-id / number]" or "folders/[folder-id / number]" or "organizations/[org-id / number].
98
+ :param str service: The name of the service in which the quotas are defined.
99
+ """
100
+ __args__ = dict()
101
+ __args__['parent'] = parent
102
+ __args__['service'] = service
103
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
104
+ __ret__ = pulumi.runtime.invoke('gcp:cloudquota/getSQuotaInfos:getSQuotaInfos', __args__, opts=opts, typ=GetSQuotaInfosResult).value
105
+
106
+ return AwaitableGetSQuotaInfosResult(
107
+ id=pulumi.get(__ret__, 'id'),
108
+ parent=pulumi.get(__ret__, 'parent'),
109
+ quota_infos=pulumi.get(__ret__, 'quota_infos'),
110
+ service=pulumi.get(__ret__, 'service'))
111
+
112
+
113
+ @_utilities.lift_output_func(get_s_quota_infos)
114
+ def get_s_quota_infos_output(parent: Optional[pulumi.Input[str]] = None,
115
+ service: Optional[pulumi.Input[str]] = None,
116
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSQuotaInfosResult]:
117
+ """
118
+ Provides information about all quotas for a given project, folder or organization.
119
+
120
+ ## Example Usage
121
+
122
+ <!--Start PulumiCodeChooser -->
123
+ ```python
124
+ import pulumi
125
+ import pulumi_gcp as gcp
126
+
127
+ my_quota_infos = gcp.cloudquota.get_s_quota_infos(parent="projects/my-project",
128
+ service="compute.googleapis.com")
129
+ ```
130
+ <!--End PulumiCodeChooser -->
131
+
132
+
133
+ :param str parent: Parent value of QuotaInfo resources. Listing across different resource containers (such as 'projects/-') is not allowed. Allowed parents are "projects/[project-id / number]" or "folders/[folder-id / number]" or "organizations/[org-id / number].
134
+ :param str service: The name of the service in which the quotas are defined.
135
+ """
136
+ ...
@@ -14,6 +14,10 @@ __all__ = [
14
14
  'GetSQuotaInfoDimensionsInfoResult',
15
15
  'GetSQuotaInfoDimensionsInfoDetailResult',
16
16
  'GetSQuotaInfoQuotaIncreaseEligibilityResult',
17
+ 'GetSQuotaInfosQuotaInfoResult',
18
+ 'GetSQuotaInfosQuotaInfoDimensionsInfoResult',
19
+ 'GetSQuotaInfosQuotaInfoDimensionsInfoDetailResult',
20
+ 'GetSQuotaInfosQuotaInfoQuotaIncreaseEligibilityResult',
17
21
  ]
18
22
 
19
23
  @pulumi.output_type
@@ -103,3 +107,269 @@ class GetSQuotaInfoQuotaIncreaseEligibilityResult(dict):
103
107
  return pulumi.get(self, "is_eligible")
104
108
 
105
109
 
110
+ @pulumi.output_type
111
+ class GetSQuotaInfosQuotaInfoResult(dict):
112
+ def __init__(__self__, *,
113
+ container_type: str,
114
+ dimensions: Sequence[str],
115
+ dimensions_infos: Sequence['outputs.GetSQuotaInfosQuotaInfoDimensionsInfoResult'],
116
+ is_concurrent: bool,
117
+ is_fixed: bool,
118
+ is_precise: bool,
119
+ metric: str,
120
+ metric_display_name: str,
121
+ metric_unit: str,
122
+ name: str,
123
+ quota_display_name: str,
124
+ quota_id: str,
125
+ quota_increase_eligibilities: Sequence['outputs.GetSQuotaInfosQuotaInfoQuotaIncreaseEligibilityResult'],
126
+ refresh_interval: str,
127
+ service: str,
128
+ service_request_quota_uri: str):
129
+ """
130
+ :param str container_type: (Output) The container type of the QuotaInfo.
131
+ :param Sequence[str] dimensions: The map of dimensions for this dimensions info. The key of a map entry is "region", "zone" or the name of a service specific dimension, and the value of a map entry is the value of the dimension. If a dimension does not appear in the map of dimensions, the dimensions info applies to all the dimension values except for those that have another DimenisonInfo instance configured for the specific value. Example: {"provider" : "Foo Inc"} where "provider" is a service specific dimension of a quota.
132
+ :param Sequence['GetSQuotaInfosQuotaInfoDimensionsInfoArgs'] dimensions_infos: (Output) The collection of dimensions info ordered by their dimensions from more specific ones to less specific ones.
133
+ :param bool is_concurrent: (Output) Whether the quota is a concurrent quota. Concurrent quotas are enforced on the total number of concurrent operations in flight at any given time.
134
+ :param bool is_fixed: (Output) Whether the quota value is fixed or adjustable.
135
+ :param bool is_precise: (Output) Whether this is a precise quota. A precise quota is tracked with absolute precision. In contrast, an imprecise quota is not tracked with precision.
136
+ :param str metric: (Output) The metric of the quota. It specifies the resources consumption the quota is defined for, for example: `compute.googleapis.com/cpus`.
137
+ :param str metric_display_name: (Output) The display name of the quota metric.
138
+ :param str metric_unit: (Output) The unit in which the metric value is reported, e.g., `MByte`.
139
+ :param str name: (Output) Resource name of this QuotaInfo, for example: `projects/123/locations/global/services/compute.googleapis.com/quotaInfos/CpusPerProjectPerRegion`.
140
+ :param str quota_display_name: (Output) The display name of the quota.
141
+ :param Sequence['GetSQuotaInfosQuotaInfoQuotaIncreaseEligibilityArgs'] quota_increase_eligibilities: (Output) Whether it is eligible to request a higher quota value for this quota.
142
+ :param str refresh_interval: (Output) The reset time interval for the quota. Refresh interval applies to rate quota only. Example: "minute" for per minute, "day" for per day, or "10 seconds" for every 10 seconds.
143
+ :param str service: The name of the service in which the quotas are defined.
144
+ :param str service_request_quota_uri: (Output) URI to the page where users can request more quota for the cloud service, for example: `https://console.cloud.google.com/iam-admin/quotas`.
145
+ """
146
+ pulumi.set(__self__, "container_type", container_type)
147
+ pulumi.set(__self__, "dimensions", dimensions)
148
+ pulumi.set(__self__, "dimensions_infos", dimensions_infos)
149
+ pulumi.set(__self__, "is_concurrent", is_concurrent)
150
+ pulumi.set(__self__, "is_fixed", is_fixed)
151
+ pulumi.set(__self__, "is_precise", is_precise)
152
+ pulumi.set(__self__, "metric", metric)
153
+ pulumi.set(__self__, "metric_display_name", metric_display_name)
154
+ pulumi.set(__self__, "metric_unit", metric_unit)
155
+ pulumi.set(__self__, "name", name)
156
+ pulumi.set(__self__, "quota_display_name", quota_display_name)
157
+ pulumi.set(__self__, "quota_id", quota_id)
158
+ pulumi.set(__self__, "quota_increase_eligibilities", quota_increase_eligibilities)
159
+ pulumi.set(__self__, "refresh_interval", refresh_interval)
160
+ pulumi.set(__self__, "service", service)
161
+ pulumi.set(__self__, "service_request_quota_uri", service_request_quota_uri)
162
+
163
+ @property
164
+ @pulumi.getter(name="containerType")
165
+ def container_type(self) -> str:
166
+ """
167
+ (Output) The container type of the QuotaInfo.
168
+ """
169
+ return pulumi.get(self, "container_type")
170
+
171
+ @property
172
+ @pulumi.getter
173
+ def dimensions(self) -> Sequence[str]:
174
+ """
175
+ The map of dimensions for this dimensions info. The key of a map entry is "region", "zone" or the name of a service specific dimension, and the value of a map entry is the value of the dimension. If a dimension does not appear in the map of dimensions, the dimensions info applies to all the dimension values except for those that have another DimenisonInfo instance configured for the specific value. Example: {"provider" : "Foo Inc"} where "provider" is a service specific dimension of a quota.
176
+ """
177
+ return pulumi.get(self, "dimensions")
178
+
179
+ @property
180
+ @pulumi.getter(name="dimensionsInfos")
181
+ def dimensions_infos(self) -> Sequence['outputs.GetSQuotaInfosQuotaInfoDimensionsInfoResult']:
182
+ """
183
+ (Output) The collection of dimensions info ordered by their dimensions from more specific ones to less specific ones.
184
+ """
185
+ return pulumi.get(self, "dimensions_infos")
186
+
187
+ @property
188
+ @pulumi.getter(name="isConcurrent")
189
+ def is_concurrent(self) -> bool:
190
+ """
191
+ (Output) Whether the quota is a concurrent quota. Concurrent quotas are enforced on the total number of concurrent operations in flight at any given time.
192
+ """
193
+ return pulumi.get(self, "is_concurrent")
194
+
195
+ @property
196
+ @pulumi.getter(name="isFixed")
197
+ def is_fixed(self) -> bool:
198
+ """
199
+ (Output) Whether the quota value is fixed or adjustable.
200
+ """
201
+ return pulumi.get(self, "is_fixed")
202
+
203
+ @property
204
+ @pulumi.getter(name="isPrecise")
205
+ def is_precise(self) -> bool:
206
+ """
207
+ (Output) Whether this is a precise quota. A precise quota is tracked with absolute precision. In contrast, an imprecise quota is not tracked with precision.
208
+ """
209
+ return pulumi.get(self, "is_precise")
210
+
211
+ @property
212
+ @pulumi.getter
213
+ def metric(self) -> str:
214
+ """
215
+ (Output) The metric of the quota. It specifies the resources consumption the quota is defined for, for example: `compute.googleapis.com/cpus`.
216
+ """
217
+ return pulumi.get(self, "metric")
218
+
219
+ @property
220
+ @pulumi.getter(name="metricDisplayName")
221
+ def metric_display_name(self) -> str:
222
+ """
223
+ (Output) The display name of the quota metric.
224
+ """
225
+ return pulumi.get(self, "metric_display_name")
226
+
227
+ @property
228
+ @pulumi.getter(name="metricUnit")
229
+ def metric_unit(self) -> str:
230
+ """
231
+ (Output) The unit in which the metric value is reported, e.g., `MByte`.
232
+ """
233
+ return pulumi.get(self, "metric_unit")
234
+
235
+ @property
236
+ @pulumi.getter
237
+ def name(self) -> str:
238
+ """
239
+ (Output) Resource name of this QuotaInfo, for example: `projects/123/locations/global/services/compute.googleapis.com/quotaInfos/CpusPerProjectPerRegion`.
240
+ """
241
+ return pulumi.get(self, "name")
242
+
243
+ @property
244
+ @pulumi.getter(name="quotaDisplayName")
245
+ def quota_display_name(self) -> str:
246
+ """
247
+ (Output) The display name of the quota.
248
+ """
249
+ return pulumi.get(self, "quota_display_name")
250
+
251
+ @property
252
+ @pulumi.getter(name="quotaId")
253
+ def quota_id(self) -> str:
254
+ return pulumi.get(self, "quota_id")
255
+
256
+ @property
257
+ @pulumi.getter(name="quotaIncreaseEligibilities")
258
+ def quota_increase_eligibilities(self) -> Sequence['outputs.GetSQuotaInfosQuotaInfoQuotaIncreaseEligibilityResult']:
259
+ """
260
+ (Output) Whether it is eligible to request a higher quota value for this quota.
261
+ """
262
+ return pulumi.get(self, "quota_increase_eligibilities")
263
+
264
+ @property
265
+ @pulumi.getter(name="refreshInterval")
266
+ def refresh_interval(self) -> str:
267
+ """
268
+ (Output) The reset time interval for the quota. Refresh interval applies to rate quota only. Example: "minute" for per minute, "day" for per day, or "10 seconds" for every 10 seconds.
269
+ """
270
+ return pulumi.get(self, "refresh_interval")
271
+
272
+ @property
273
+ @pulumi.getter
274
+ def service(self) -> str:
275
+ """
276
+ The name of the service in which the quotas are defined.
277
+ """
278
+ return pulumi.get(self, "service")
279
+
280
+ @property
281
+ @pulumi.getter(name="serviceRequestQuotaUri")
282
+ def service_request_quota_uri(self) -> str:
283
+ """
284
+ (Output) URI to the page where users can request more quota for the cloud service, for example: `https://console.cloud.google.com/iam-admin/quotas`.
285
+ """
286
+ return pulumi.get(self, "service_request_quota_uri")
287
+
288
+
289
+ @pulumi.output_type
290
+ class GetSQuotaInfosQuotaInfoDimensionsInfoResult(dict):
291
+ def __init__(__self__, *,
292
+ applicable_locations: Sequence[str],
293
+ details: Sequence['outputs.GetSQuotaInfosQuotaInfoDimensionsInfoDetailResult'],
294
+ dimensions: Mapping[str, Any]):
295
+ """
296
+ :param Sequence[str] applicable_locations: The applicable regions or zones of this dimensions info. The field will be set to `['global']` for quotas that are not per region or per zone. Otherwise, it will be set to the list of locations this dimension info is applicable to.
297
+ :param Sequence['GetSQuotaInfosQuotaInfoDimensionsInfoDetailArgs'] details: The quota details for a map of dimensions.
298
+ :param Mapping[str, Any] dimensions: The map of dimensions for this dimensions info. The key of a map entry is "region", "zone" or the name of a service specific dimension, and the value of a map entry is the value of the dimension. If a dimension does not appear in the map of dimensions, the dimensions info applies to all the dimension values except for those that have another DimenisonInfo instance configured for the specific value. Example: {"provider" : "Foo Inc"} where "provider" is a service specific dimension of a quota.
299
+ """
300
+ pulumi.set(__self__, "applicable_locations", applicable_locations)
301
+ pulumi.set(__self__, "details", details)
302
+ pulumi.set(__self__, "dimensions", dimensions)
303
+
304
+ @property
305
+ @pulumi.getter(name="applicableLocations")
306
+ def applicable_locations(self) -> Sequence[str]:
307
+ """
308
+ The applicable regions or zones of this dimensions info. The field will be set to `['global']` for quotas that are not per region or per zone. Otherwise, it will be set to the list of locations this dimension info is applicable to.
309
+ """
310
+ return pulumi.get(self, "applicable_locations")
311
+
312
+ @property
313
+ @pulumi.getter
314
+ def details(self) -> Sequence['outputs.GetSQuotaInfosQuotaInfoDimensionsInfoDetailResult']:
315
+ """
316
+ The quota details for a map of dimensions.
317
+ """
318
+ return pulumi.get(self, "details")
319
+
320
+ @property
321
+ @pulumi.getter
322
+ def dimensions(self) -> Mapping[str, Any]:
323
+ """
324
+ The map of dimensions for this dimensions info. The key of a map entry is "region", "zone" or the name of a service specific dimension, and the value of a map entry is the value of the dimension. If a dimension does not appear in the map of dimensions, the dimensions info applies to all the dimension values except for those that have another DimenisonInfo instance configured for the specific value. Example: {"provider" : "Foo Inc"} where "provider" is a service specific dimension of a quota.
325
+ """
326
+ return pulumi.get(self, "dimensions")
327
+
328
+
329
+ @pulumi.output_type
330
+ class GetSQuotaInfosQuotaInfoDimensionsInfoDetailResult(dict):
331
+ def __init__(__self__, *,
332
+ value: str):
333
+ """
334
+ :param str value: The value currently in effect and being enforced.
335
+ """
336
+ pulumi.set(__self__, "value", value)
337
+
338
+ @property
339
+ @pulumi.getter
340
+ def value(self) -> str:
341
+ """
342
+ The value currently in effect and being enforced.
343
+ """
344
+ return pulumi.get(self, "value")
345
+
346
+
347
+ @pulumi.output_type
348
+ class GetSQuotaInfosQuotaInfoQuotaIncreaseEligibilityResult(dict):
349
+ def __init__(__self__, *,
350
+ ineligibility_reason: str,
351
+ is_eligible: bool):
352
+ """
353
+ :param str ineligibility_reason: The enumeration of reasons when it is ineligible to request increase adjustment.
354
+ :param bool is_eligible: Whether a higher quota value can be requested for the quota.
355
+ """
356
+ pulumi.set(__self__, "ineligibility_reason", ineligibility_reason)
357
+ pulumi.set(__self__, "is_eligible", is_eligible)
358
+
359
+ @property
360
+ @pulumi.getter(name="ineligibilityReason")
361
+ def ineligibility_reason(self) -> str:
362
+ """
363
+ The enumeration of reasons when it is ineligible to request increase adjustment.
364
+ """
365
+ return pulumi.get(self, "ineligibility_reason")
366
+
367
+ @property
368
+ @pulumi.getter(name="isEligible")
369
+ def is_eligible(self) -> bool:
370
+ """
371
+ Whether a higher quota value can be requested for the quota.
372
+ """
373
+ return pulumi.get(self, "is_eligible")
374
+
375
+
@@ -27,6 +27,7 @@ __all__ = [
27
27
  'JobTemplateTemplateVolumeArgs',
28
28
  'JobTemplateTemplateVolumeCloudSqlInstanceArgs',
29
29
  'JobTemplateTemplateVolumeEmptyDirArgs',
30
+ 'JobTemplateTemplateVolumeGcsArgs',
30
31
  'JobTemplateTemplateVolumeSecretArgs',
31
32
  'JobTemplateTemplateVolumeSecretItemArgs',
32
33
  'JobTemplateTemplateVpcAccessArgs',
@@ -1033,6 +1034,7 @@ class JobTemplateTemplateVolumeArgs:
1033
1034
  name: pulumi.Input[str],
1034
1035
  cloud_sql_instance: Optional[pulumi.Input['JobTemplateTemplateVolumeCloudSqlInstanceArgs']] = None,
1035
1036
  empty_dir: Optional[pulumi.Input['JobTemplateTemplateVolumeEmptyDirArgs']] = None,
1037
+ gcs: Optional[pulumi.Input['JobTemplateTemplateVolumeGcsArgs']] = None,
1036
1038
  secret: Optional[pulumi.Input['JobTemplateTemplateVolumeSecretArgs']] = None):
1037
1039
  """
1038
1040
  :param pulumi.Input[str] name: Volume's name.
@@ -1040,6 +1042,8 @@ class JobTemplateTemplateVolumeArgs:
1040
1042
  Structure is documented below.
1041
1043
  :param pulumi.Input['JobTemplateTemplateVolumeEmptyDirArgs'] empty_dir: Ephemeral storage used as a shared volume.
1042
1044
  Structure is documented below.
1045
+ :param pulumi.Input['JobTemplateTemplateVolumeGcsArgs'] gcs: Cloud Storage bucket mounted as a volume using GCSFuse. This feature requires the launch stage to be set to ALPHA or BETA.
1046
+ Structure is documented below.
1043
1047
  :param pulumi.Input['JobTemplateTemplateVolumeSecretArgs'] secret: Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
1044
1048
  Structure is documented below.
1045
1049
  """
@@ -1048,6 +1052,8 @@ class JobTemplateTemplateVolumeArgs:
1048
1052
  pulumi.set(__self__, "cloud_sql_instance", cloud_sql_instance)
1049
1053
  if empty_dir is not None:
1050
1054
  pulumi.set(__self__, "empty_dir", empty_dir)
1055
+ if gcs is not None:
1056
+ pulumi.set(__self__, "gcs", gcs)
1051
1057
  if secret is not None:
1052
1058
  pulumi.set(__self__, "secret", secret)
1053
1059
 
@@ -1089,6 +1095,19 @@ class JobTemplateTemplateVolumeArgs:
1089
1095
  def empty_dir(self, value: Optional[pulumi.Input['JobTemplateTemplateVolumeEmptyDirArgs']]):
1090
1096
  pulumi.set(self, "empty_dir", value)
1091
1097
 
1098
+ @property
1099
+ @pulumi.getter
1100
+ def gcs(self) -> Optional[pulumi.Input['JobTemplateTemplateVolumeGcsArgs']]:
1101
+ """
1102
+ Cloud Storage bucket mounted as a volume using GCSFuse. This feature requires the launch stage to be set to ALPHA or BETA.
1103
+ Structure is documented below.
1104
+ """
1105
+ return pulumi.get(self, "gcs")
1106
+
1107
+ @gcs.setter
1108
+ def gcs(self, value: Optional[pulumi.Input['JobTemplateTemplateVolumeGcsArgs']]):
1109
+ pulumi.set(self, "gcs", value)
1110
+
1092
1111
  @property
1093
1112
  @pulumi.getter
1094
1113
  def secret(self) -> Optional[pulumi.Input['JobTemplateTemplateVolumeSecretArgs']]:
@@ -1169,6 +1188,44 @@ class JobTemplateTemplateVolumeEmptyDirArgs:
1169
1188
  pulumi.set(self, "size_limit", value)
1170
1189
 
1171
1190
 
1191
+ @pulumi.input_type
1192
+ class JobTemplateTemplateVolumeGcsArgs:
1193
+ def __init__(__self__, *,
1194
+ bucket: pulumi.Input[str],
1195
+ read_only: Optional[pulumi.Input[bool]] = None):
1196
+ """
1197
+ :param pulumi.Input[str] bucket: Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket.
1198
+ :param pulumi.Input[bool] read_only: If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write.
1199
+ """
1200
+ pulumi.set(__self__, "bucket", bucket)
1201
+ if read_only is not None:
1202
+ pulumi.set(__self__, "read_only", read_only)
1203
+
1204
+ @property
1205
+ @pulumi.getter
1206
+ def bucket(self) -> pulumi.Input[str]:
1207
+ """
1208
+ Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket.
1209
+ """
1210
+ return pulumi.get(self, "bucket")
1211
+
1212
+ @bucket.setter
1213
+ def bucket(self, value: pulumi.Input[str]):
1214
+ pulumi.set(self, "bucket", value)
1215
+
1216
+ @property
1217
+ @pulumi.getter(name="readOnly")
1218
+ def read_only(self) -> Optional[pulumi.Input[bool]]:
1219
+ """
1220
+ If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write.
1221
+ """
1222
+ return pulumi.get(self, "read_only")
1223
+
1224
+ @read_only.setter
1225
+ def read_only(self, value: Optional[pulumi.Input[bool]]):
1226
+ pulumi.set(self, "read_only", value)
1227
+
1228
+
1172
1229
  @pulumi.input_type
1173
1230
  class JobTemplateTemplateVolumeSecretArgs:
1174
1231
  def __init__(__self__, *,
@@ -3190,7 +3247,7 @@ class ServiceTemplateVolumeArgs:
3190
3247
  Structure is documented below.
3191
3248
  :param pulumi.Input['ServiceTemplateVolumeEmptyDirArgs'] empty_dir: Ephemeral storage used as a shared volume.
3192
3249
  Structure is documented below.
3193
- :param pulumi.Input['ServiceTemplateVolumeGcsArgs'] gcs: Represents a GCS Bucket mounted as a volume.
3250
+ :param pulumi.Input['ServiceTemplateVolumeGcsArgs'] gcs: Cloud Storage bucket mounted as a volume using GCSFuse. This feature is only supported in the gen2 execution environment and requires launch-stage to be set to ALPHA or BETA.
3194
3251
  Structure is documented below.
3195
3252
  :param pulumi.Input['ServiceTemplateVolumeNfsArgs'] nfs: Represents an NFS mount.
3196
3253
  Structure is documented below.
@@ -3251,7 +3308,7 @@ class ServiceTemplateVolumeArgs:
3251
3308
  @pulumi.getter
3252
3309
  def gcs(self) -> Optional[pulumi.Input['ServiceTemplateVolumeGcsArgs']]:
3253
3310
  """
3254
- Represents a GCS Bucket mounted as a volume.
3311
+ Cloud Storage bucket mounted as a volume using GCSFuse. This feature is only supported in the gen2 execution environment and requires launch-stage to be set to ALPHA or BETA.
3255
3312
  Structure is documented below.
3256
3313
  """
3257
3314
  return pulumi.get(self, "gcs")