pulumi-gcp 7.17.0a1712402830__py3-none-any.whl → 7.18.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 (66) hide show
  1. pulumi_gcp/__init__.py +27 -0
  2. pulumi_gcp/apphub/__init__.py +1 -0
  3. pulumi_gcp/apphub/get_application.py +220 -0
  4. pulumi_gcp/apphub/outputs.py +214 -0
  5. pulumi_gcp/applicationintegration/__init__.py +10 -0
  6. pulumi_gcp/applicationintegration/_inputs.py +119 -0
  7. pulumi_gcp/applicationintegration/client.py +574 -0
  8. pulumi_gcp/applicationintegration/outputs.py +122 -0
  9. pulumi_gcp/bigquery/_inputs.py +16 -0
  10. pulumi_gcp/bigquery/outputs.py +14 -0
  11. pulumi_gcp/bigquery/routine.py +98 -0
  12. pulumi_gcp/billing/project_info.py +4 -4
  13. pulumi_gcp/cloudquota/__init__.py +2 -0
  14. pulumi_gcp/cloudquota/_inputs.py +131 -0
  15. pulumi_gcp/cloudquota/outputs.py +118 -0
  16. pulumi_gcp/cloudquota/s_quota_preference.py +777 -0
  17. pulumi_gcp/cloudrunv2/_inputs.py +73 -0
  18. pulumi_gcp/cloudrunv2/outputs.py +126 -0
  19. pulumi_gcp/compute/interconnect_attachment.py +64 -0
  20. pulumi_gcp/compute/network_endpoint.py +8 -0
  21. pulumi_gcp/compute/network_endpoint_list.py +8 -0
  22. pulumi_gcp/compute/region_backend_service.py +28 -0
  23. pulumi_gcp/compute/target_instance.py +4 -4
  24. pulumi_gcp/config/__init__.pyi +2 -0
  25. pulumi_gcp/config/vars.py +4 -0
  26. pulumi_gcp/container/_inputs.py +17 -1
  27. pulumi_gcp/container/cluster.py +47 -0
  28. pulumi_gcp/container/get_cluster.py +11 -1
  29. pulumi_gcp/container/outputs.py +27 -2
  30. pulumi_gcp/databasemigrationservice/connection_profile.py +6 -6
  31. pulumi_gcp/dataflow/flex_template_job.py +84 -112
  32. pulumi_gcp/dataplex/task.py +16 -16
  33. pulumi_gcp/dataproc/_inputs.py +71 -0
  34. pulumi_gcp/dataproc/get_metastore_service.py +11 -1
  35. pulumi_gcp/dataproc/metastore_service.py +120 -0
  36. pulumi_gcp/dataproc/outputs.py +128 -0
  37. pulumi_gcp/firebase/app_check_service_config.py +2 -2
  38. pulumi_gcp/firestore/backup_schedule.py +23 -23
  39. pulumi_gcp/firestore/field.py +4 -4
  40. pulumi_gcp/gkehub/membership_binding.py +6 -6
  41. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  42. pulumi_gcp/gkehub/namespace.py +4 -4
  43. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  44. pulumi_gcp/gkeonprem/v_mware_cluster.py +49 -0
  45. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  46. pulumi_gcp/kms/_inputs.py +46 -0
  47. pulumi_gcp/kms/crypto_key.py +54 -0
  48. pulumi_gcp/kms/crypto_key_version.py +54 -0
  49. pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
  50. pulumi_gcp/kms/outputs.py +54 -0
  51. pulumi_gcp/looker/instance.py +20 -30
  52. pulumi_gcp/orgpolicy/policy.py +2 -2
  53. pulumi_gcp/provider.py +20 -0
  54. pulumi_gcp/pubsub/subscription.py +4 -4
  55. pulumi_gcp/redis/cluster.py +91 -0
  56. pulumi_gcp/storage/bucket.py +28 -0
  57. pulumi_gcp/storage/get_bucket.py +17 -2
  58. pulumi_gcp/vertex/__init__.py +1 -0
  59. pulumi_gcp/vertex/_inputs.py +169 -0
  60. pulumi_gcp/vertex/ai_deployment_resource_pool.py +477 -0
  61. pulumi_gcp/vertex/outputs.py +194 -0
  62. pulumi_gcp/vpcaccess/connector.py +77 -28
  63. {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.18.0.dist-info}/METADATA +1 -1
  64. {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.18.0.dist-info}/RECORD +66 -58
  65. {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.18.0.dist-info}/WHEEL +0 -0
  66. {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.18.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,777 @@
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
+ from ._inputs import *
13
+
14
+ __all__ = ['SQuotaPreferenceArgs', 'SQuotaPreference']
15
+
16
+ @pulumi.input_type
17
+ class SQuotaPreferenceArgs:
18
+ def __init__(__self__, *,
19
+ quota_config: pulumi.Input['SQuotaPreferenceQuotaConfigArgs'],
20
+ contact_email: Optional[pulumi.Input[str]] = None,
21
+ dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
22
+ ignore_safety_checks: Optional[pulumi.Input[str]] = None,
23
+ justification: Optional[pulumi.Input[str]] = None,
24
+ name: Optional[pulumi.Input[str]] = None,
25
+ parent: Optional[pulumi.Input[str]] = None,
26
+ quota_id: Optional[pulumi.Input[str]] = None,
27
+ service: Optional[pulumi.Input[str]] = None):
28
+ """
29
+ The set of arguments for constructing a SQuotaPreference resource.
30
+ :param pulumi.Input['SQuotaPreferenceQuotaConfigArgs'] quota_config: The preferred quota configuration.
31
+ Structure is documented below.
32
+ :param pulumi.Input[str] contact_email: An email address that can be used for quota related communication between the Google Cloud and the user in case the Google Cloud needs further information to make a decision on whether the user preferred quota can be granted.
33
+ The Google account for the email address must have quota update permission for the project, folder or organization this quota preference is for.
34
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: The dimensions that this quota preference applies to. The key of the map entry is the name of a dimension, such as "region", "zone", "network_id", and the value of the map entry is the dimension value. If a dimension is missing from the map of dimensions, the quota preference applies to all the dimension values except for those that have other quota preferences configured for the specific value.
35
+ NOTE: QuotaPreferences can only be applied across all values of "user" and "resource" dimension. Do not set values for "user" or "resource" in the dimension map.
36
+ Example: `{"provider": "Foo Inc"}` where "provider" is a service specific dimension.
37
+ :param pulumi.Input[str] ignore_safety_checks: The list of quota safety checks to be ignored.
38
+ Default value is `QUOTA_SAFETY_CHECK_UNSPECIFIED`.
39
+ Possible values are: `QUOTA_SAFETY_CHECK_UNSPECIFIED`, `QUOTA_DECREASE_BELOW_USAGE`, `QUOTA_DECREASE_PERCENTAGE_TOO_HIGH`.
40
+ :param pulumi.Input[str] justification: The reason / justification for this quota preference.
41
+ :param pulumi.Input[str] name: The resource name of the quota preference. Required except in the CREATE requests.
42
+ :param pulumi.Input[str] parent: The parent of the quota preference. Allowed parents are "projects/[project-id / number]" or "folders/[folder-id / number]" or "organizations/[org-id / number]".
43
+ :param pulumi.Input[str] quota_id: The id of the quota to which the quota preference is applied. A quota id is unique in the service.
44
+ Example: `CPUS-per-project-region`.
45
+ :param pulumi.Input[str] service: The name of the service to which the quota preference is applied.
46
+ """
47
+ pulumi.set(__self__, "quota_config", quota_config)
48
+ if contact_email is not None:
49
+ pulumi.set(__self__, "contact_email", contact_email)
50
+ if dimensions is not None:
51
+ pulumi.set(__self__, "dimensions", dimensions)
52
+ if ignore_safety_checks is not None:
53
+ pulumi.set(__self__, "ignore_safety_checks", ignore_safety_checks)
54
+ if justification is not None:
55
+ pulumi.set(__self__, "justification", justification)
56
+ if name is not None:
57
+ pulumi.set(__self__, "name", name)
58
+ if parent is not None:
59
+ pulumi.set(__self__, "parent", parent)
60
+ if quota_id is not None:
61
+ pulumi.set(__self__, "quota_id", quota_id)
62
+ if service is not None:
63
+ pulumi.set(__self__, "service", service)
64
+
65
+ @property
66
+ @pulumi.getter(name="quotaConfig")
67
+ def quota_config(self) -> pulumi.Input['SQuotaPreferenceQuotaConfigArgs']:
68
+ """
69
+ The preferred quota configuration.
70
+ Structure is documented below.
71
+ """
72
+ return pulumi.get(self, "quota_config")
73
+
74
+ @quota_config.setter
75
+ def quota_config(self, value: pulumi.Input['SQuotaPreferenceQuotaConfigArgs']):
76
+ pulumi.set(self, "quota_config", value)
77
+
78
+ @property
79
+ @pulumi.getter(name="contactEmail")
80
+ def contact_email(self) -> Optional[pulumi.Input[str]]:
81
+ """
82
+ An email address that can be used for quota related communication between the Google Cloud and the user in case the Google Cloud needs further information to make a decision on whether the user preferred quota can be granted.
83
+ The Google account for the email address must have quota update permission for the project, folder or organization this quota preference is for.
84
+ """
85
+ return pulumi.get(self, "contact_email")
86
+
87
+ @contact_email.setter
88
+ def contact_email(self, value: Optional[pulumi.Input[str]]):
89
+ pulumi.set(self, "contact_email", value)
90
+
91
+ @property
92
+ @pulumi.getter
93
+ def dimensions(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
94
+ """
95
+ The dimensions that this quota preference applies to. The key of the map entry is the name of a dimension, such as "region", "zone", "network_id", and the value of the map entry is the dimension value. If a dimension is missing from the map of dimensions, the quota preference applies to all the dimension values except for those that have other quota preferences configured for the specific value.
96
+ NOTE: QuotaPreferences can only be applied across all values of "user" and "resource" dimension. Do not set values for "user" or "resource" in the dimension map.
97
+ Example: `{"provider": "Foo Inc"}` where "provider" is a service specific dimension.
98
+ """
99
+ return pulumi.get(self, "dimensions")
100
+
101
+ @dimensions.setter
102
+ def dimensions(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
103
+ pulumi.set(self, "dimensions", value)
104
+
105
+ @property
106
+ @pulumi.getter(name="ignoreSafetyChecks")
107
+ def ignore_safety_checks(self) -> Optional[pulumi.Input[str]]:
108
+ """
109
+ The list of quota safety checks to be ignored.
110
+ Default value is `QUOTA_SAFETY_CHECK_UNSPECIFIED`.
111
+ Possible values are: `QUOTA_SAFETY_CHECK_UNSPECIFIED`, `QUOTA_DECREASE_BELOW_USAGE`, `QUOTA_DECREASE_PERCENTAGE_TOO_HIGH`.
112
+ """
113
+ return pulumi.get(self, "ignore_safety_checks")
114
+
115
+ @ignore_safety_checks.setter
116
+ def ignore_safety_checks(self, value: Optional[pulumi.Input[str]]):
117
+ pulumi.set(self, "ignore_safety_checks", value)
118
+
119
+ @property
120
+ @pulumi.getter
121
+ def justification(self) -> Optional[pulumi.Input[str]]:
122
+ """
123
+ The reason / justification for this quota preference.
124
+ """
125
+ return pulumi.get(self, "justification")
126
+
127
+ @justification.setter
128
+ def justification(self, value: Optional[pulumi.Input[str]]):
129
+ pulumi.set(self, "justification", value)
130
+
131
+ @property
132
+ @pulumi.getter
133
+ def name(self) -> Optional[pulumi.Input[str]]:
134
+ """
135
+ The resource name of the quota preference. Required except in the CREATE requests.
136
+ """
137
+ return pulumi.get(self, "name")
138
+
139
+ @name.setter
140
+ def name(self, value: Optional[pulumi.Input[str]]):
141
+ pulumi.set(self, "name", value)
142
+
143
+ @property
144
+ @pulumi.getter
145
+ def parent(self) -> Optional[pulumi.Input[str]]:
146
+ """
147
+ The parent of the quota preference. Allowed parents are "projects/[project-id / number]" or "folders/[folder-id / number]" or "organizations/[org-id / number]".
148
+ """
149
+ return pulumi.get(self, "parent")
150
+
151
+ @parent.setter
152
+ def parent(self, value: Optional[pulumi.Input[str]]):
153
+ pulumi.set(self, "parent", value)
154
+
155
+ @property
156
+ @pulumi.getter(name="quotaId")
157
+ def quota_id(self) -> Optional[pulumi.Input[str]]:
158
+ """
159
+ The id of the quota to which the quota preference is applied. A quota id is unique in the service.
160
+ Example: `CPUS-per-project-region`.
161
+ """
162
+ return pulumi.get(self, "quota_id")
163
+
164
+ @quota_id.setter
165
+ def quota_id(self, value: Optional[pulumi.Input[str]]):
166
+ pulumi.set(self, "quota_id", value)
167
+
168
+ @property
169
+ @pulumi.getter
170
+ def service(self) -> Optional[pulumi.Input[str]]:
171
+ """
172
+ The name of the service to which the quota preference is applied.
173
+ """
174
+ return pulumi.get(self, "service")
175
+
176
+ @service.setter
177
+ def service(self, value: Optional[pulumi.Input[str]]):
178
+ pulumi.set(self, "service", value)
179
+
180
+
181
+ @pulumi.input_type
182
+ class _SQuotaPreferenceState:
183
+ def __init__(__self__, *,
184
+ contact_email: Optional[pulumi.Input[str]] = None,
185
+ create_time: Optional[pulumi.Input[str]] = None,
186
+ dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
187
+ etag: Optional[pulumi.Input[str]] = None,
188
+ ignore_safety_checks: Optional[pulumi.Input[str]] = None,
189
+ justification: Optional[pulumi.Input[str]] = None,
190
+ name: Optional[pulumi.Input[str]] = None,
191
+ parent: Optional[pulumi.Input[str]] = None,
192
+ quota_config: Optional[pulumi.Input['SQuotaPreferenceQuotaConfigArgs']] = None,
193
+ quota_id: Optional[pulumi.Input[str]] = None,
194
+ reconciling: Optional[pulumi.Input[bool]] = None,
195
+ service: Optional[pulumi.Input[str]] = None,
196
+ update_time: Optional[pulumi.Input[str]] = None):
197
+ """
198
+ Input properties used for looking up and filtering SQuotaPreference resources.
199
+ :param pulumi.Input[str] contact_email: An email address that can be used for quota related communication between the Google Cloud and the user in case the Google Cloud needs further information to make a decision on whether the user preferred quota can be granted.
200
+ The Google account for the email address must have quota update permission for the project, folder or organization this quota preference is for.
201
+ :param pulumi.Input[str] create_time: Create time stamp.
202
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: `2014-10-02T15:01:23Z` and `2014-10-02T15:01:23.045123456Z`.
203
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: The dimensions that this quota preference applies to. The key of the map entry is the name of a dimension, such as "region", "zone", "network_id", and the value of the map entry is the dimension value. If a dimension is missing from the map of dimensions, the quota preference applies to all the dimension values except for those that have other quota preferences configured for the specific value.
204
+ NOTE: QuotaPreferences can only be applied across all values of "user" and "resource" dimension. Do not set values for "user" or "resource" in the dimension map.
205
+ Example: `{"provider": "Foo Inc"}` where "provider" is a service specific dimension.
206
+ :param pulumi.Input[str] etag: The current etag of the quota preference. If an etag is provided on update and does not match the current server's etag of the quota preference, the request will be blocked and an ABORTED error will be returned. See https://google.aip.dev/134#etags for more details on etags.
207
+ :param pulumi.Input[str] ignore_safety_checks: The list of quota safety checks to be ignored.
208
+ Default value is `QUOTA_SAFETY_CHECK_UNSPECIFIED`.
209
+ Possible values are: `QUOTA_SAFETY_CHECK_UNSPECIFIED`, `QUOTA_DECREASE_BELOW_USAGE`, `QUOTA_DECREASE_PERCENTAGE_TOO_HIGH`.
210
+ :param pulumi.Input[str] justification: The reason / justification for this quota preference.
211
+ :param pulumi.Input[str] name: The resource name of the quota preference. Required except in the CREATE requests.
212
+ :param pulumi.Input[str] parent: The parent of the quota preference. Allowed parents are "projects/[project-id / number]" or "folders/[folder-id / number]" or "organizations/[org-id / number]".
213
+ :param pulumi.Input['SQuotaPreferenceQuotaConfigArgs'] quota_config: The preferred quota configuration.
214
+ Structure is documented below.
215
+ :param pulumi.Input[str] quota_id: The id of the quota to which the quota preference is applied. A quota id is unique in the service.
216
+ Example: `CPUS-per-project-region`.
217
+ :param pulumi.Input[bool] reconciling: Is the quota preference pending Google Cloud approval and fulfillment.
218
+ :param pulumi.Input[str] service: The name of the service to which the quota preference is applied.
219
+ :param pulumi.Input[str] update_time: Update time stamp.
220
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: `2014-10-02T15:01:23Z` and `2014-10-02T15:01:23.045123456Z`.
221
+ """
222
+ if contact_email is not None:
223
+ pulumi.set(__self__, "contact_email", contact_email)
224
+ if create_time is not None:
225
+ pulumi.set(__self__, "create_time", create_time)
226
+ if dimensions is not None:
227
+ pulumi.set(__self__, "dimensions", dimensions)
228
+ if etag is not None:
229
+ pulumi.set(__self__, "etag", etag)
230
+ if ignore_safety_checks is not None:
231
+ pulumi.set(__self__, "ignore_safety_checks", ignore_safety_checks)
232
+ if justification is not None:
233
+ pulumi.set(__self__, "justification", justification)
234
+ if name is not None:
235
+ pulumi.set(__self__, "name", name)
236
+ if parent is not None:
237
+ pulumi.set(__self__, "parent", parent)
238
+ if quota_config is not None:
239
+ pulumi.set(__self__, "quota_config", quota_config)
240
+ if quota_id is not None:
241
+ pulumi.set(__self__, "quota_id", quota_id)
242
+ if reconciling is not None:
243
+ pulumi.set(__self__, "reconciling", reconciling)
244
+ if service is not None:
245
+ pulumi.set(__self__, "service", service)
246
+ if update_time is not None:
247
+ pulumi.set(__self__, "update_time", update_time)
248
+
249
+ @property
250
+ @pulumi.getter(name="contactEmail")
251
+ def contact_email(self) -> Optional[pulumi.Input[str]]:
252
+ """
253
+ An email address that can be used for quota related communication between the Google Cloud and the user in case the Google Cloud needs further information to make a decision on whether the user preferred quota can be granted.
254
+ The Google account for the email address must have quota update permission for the project, folder or organization this quota preference is for.
255
+ """
256
+ return pulumi.get(self, "contact_email")
257
+
258
+ @contact_email.setter
259
+ def contact_email(self, value: Optional[pulumi.Input[str]]):
260
+ pulumi.set(self, "contact_email", value)
261
+
262
+ @property
263
+ @pulumi.getter(name="createTime")
264
+ def create_time(self) -> Optional[pulumi.Input[str]]:
265
+ """
266
+ Create time stamp.
267
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: `2014-10-02T15:01:23Z` and `2014-10-02T15:01:23.045123456Z`.
268
+ """
269
+ return pulumi.get(self, "create_time")
270
+
271
+ @create_time.setter
272
+ def create_time(self, value: Optional[pulumi.Input[str]]):
273
+ pulumi.set(self, "create_time", value)
274
+
275
+ @property
276
+ @pulumi.getter
277
+ def dimensions(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
278
+ """
279
+ The dimensions that this quota preference applies to. The key of the map entry is the name of a dimension, such as "region", "zone", "network_id", and the value of the map entry is the dimension value. If a dimension is missing from the map of dimensions, the quota preference applies to all the dimension values except for those that have other quota preferences configured for the specific value.
280
+ NOTE: QuotaPreferences can only be applied across all values of "user" and "resource" dimension. Do not set values for "user" or "resource" in the dimension map.
281
+ Example: `{"provider": "Foo Inc"}` where "provider" is a service specific dimension.
282
+ """
283
+ return pulumi.get(self, "dimensions")
284
+
285
+ @dimensions.setter
286
+ def dimensions(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
287
+ pulumi.set(self, "dimensions", value)
288
+
289
+ @property
290
+ @pulumi.getter
291
+ def etag(self) -> Optional[pulumi.Input[str]]:
292
+ """
293
+ The current etag of the quota preference. If an etag is provided on update and does not match the current server's etag of the quota preference, the request will be blocked and an ABORTED error will be returned. See https://google.aip.dev/134#etags for more details on etags.
294
+ """
295
+ return pulumi.get(self, "etag")
296
+
297
+ @etag.setter
298
+ def etag(self, value: Optional[pulumi.Input[str]]):
299
+ pulumi.set(self, "etag", value)
300
+
301
+ @property
302
+ @pulumi.getter(name="ignoreSafetyChecks")
303
+ def ignore_safety_checks(self) -> Optional[pulumi.Input[str]]:
304
+ """
305
+ The list of quota safety checks to be ignored.
306
+ Default value is `QUOTA_SAFETY_CHECK_UNSPECIFIED`.
307
+ Possible values are: `QUOTA_SAFETY_CHECK_UNSPECIFIED`, `QUOTA_DECREASE_BELOW_USAGE`, `QUOTA_DECREASE_PERCENTAGE_TOO_HIGH`.
308
+ """
309
+ return pulumi.get(self, "ignore_safety_checks")
310
+
311
+ @ignore_safety_checks.setter
312
+ def ignore_safety_checks(self, value: Optional[pulumi.Input[str]]):
313
+ pulumi.set(self, "ignore_safety_checks", value)
314
+
315
+ @property
316
+ @pulumi.getter
317
+ def justification(self) -> Optional[pulumi.Input[str]]:
318
+ """
319
+ The reason / justification for this quota preference.
320
+ """
321
+ return pulumi.get(self, "justification")
322
+
323
+ @justification.setter
324
+ def justification(self, value: Optional[pulumi.Input[str]]):
325
+ pulumi.set(self, "justification", value)
326
+
327
+ @property
328
+ @pulumi.getter
329
+ def name(self) -> Optional[pulumi.Input[str]]:
330
+ """
331
+ The resource name of the quota preference. Required except in the CREATE requests.
332
+ """
333
+ return pulumi.get(self, "name")
334
+
335
+ @name.setter
336
+ def name(self, value: Optional[pulumi.Input[str]]):
337
+ pulumi.set(self, "name", value)
338
+
339
+ @property
340
+ @pulumi.getter
341
+ def parent(self) -> Optional[pulumi.Input[str]]:
342
+ """
343
+ The parent of the quota preference. Allowed parents are "projects/[project-id / number]" or "folders/[folder-id / number]" or "organizations/[org-id / number]".
344
+ """
345
+ return pulumi.get(self, "parent")
346
+
347
+ @parent.setter
348
+ def parent(self, value: Optional[pulumi.Input[str]]):
349
+ pulumi.set(self, "parent", value)
350
+
351
+ @property
352
+ @pulumi.getter(name="quotaConfig")
353
+ def quota_config(self) -> Optional[pulumi.Input['SQuotaPreferenceQuotaConfigArgs']]:
354
+ """
355
+ The preferred quota configuration.
356
+ Structure is documented below.
357
+ """
358
+ return pulumi.get(self, "quota_config")
359
+
360
+ @quota_config.setter
361
+ def quota_config(self, value: Optional[pulumi.Input['SQuotaPreferenceQuotaConfigArgs']]):
362
+ pulumi.set(self, "quota_config", value)
363
+
364
+ @property
365
+ @pulumi.getter(name="quotaId")
366
+ def quota_id(self) -> Optional[pulumi.Input[str]]:
367
+ """
368
+ The id of the quota to which the quota preference is applied. A quota id is unique in the service.
369
+ Example: `CPUS-per-project-region`.
370
+ """
371
+ return pulumi.get(self, "quota_id")
372
+
373
+ @quota_id.setter
374
+ def quota_id(self, value: Optional[pulumi.Input[str]]):
375
+ pulumi.set(self, "quota_id", value)
376
+
377
+ @property
378
+ @pulumi.getter
379
+ def reconciling(self) -> Optional[pulumi.Input[bool]]:
380
+ """
381
+ Is the quota preference pending Google Cloud approval and fulfillment.
382
+ """
383
+ return pulumi.get(self, "reconciling")
384
+
385
+ @reconciling.setter
386
+ def reconciling(self, value: Optional[pulumi.Input[bool]]):
387
+ pulumi.set(self, "reconciling", value)
388
+
389
+ @property
390
+ @pulumi.getter
391
+ def service(self) -> Optional[pulumi.Input[str]]:
392
+ """
393
+ The name of the service to which the quota preference is applied.
394
+ """
395
+ return pulumi.get(self, "service")
396
+
397
+ @service.setter
398
+ def service(self, value: Optional[pulumi.Input[str]]):
399
+ pulumi.set(self, "service", value)
400
+
401
+ @property
402
+ @pulumi.getter(name="updateTime")
403
+ def update_time(self) -> Optional[pulumi.Input[str]]:
404
+ """
405
+ Update time stamp.
406
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: `2014-10-02T15:01:23Z` and `2014-10-02T15:01:23.045123456Z`.
407
+ """
408
+ return pulumi.get(self, "update_time")
409
+
410
+ @update_time.setter
411
+ def update_time(self, value: Optional[pulumi.Input[str]]):
412
+ pulumi.set(self, "update_time", value)
413
+
414
+
415
+ class SQuotaPreference(pulumi.CustomResource):
416
+ @overload
417
+ def __init__(__self__,
418
+ resource_name: str,
419
+ opts: Optional[pulumi.ResourceOptions] = None,
420
+ contact_email: Optional[pulumi.Input[str]] = None,
421
+ dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
422
+ ignore_safety_checks: Optional[pulumi.Input[str]] = None,
423
+ justification: Optional[pulumi.Input[str]] = None,
424
+ name: Optional[pulumi.Input[str]] = None,
425
+ parent: Optional[pulumi.Input[str]] = None,
426
+ quota_config: Optional[pulumi.Input[pulumi.InputType['SQuotaPreferenceQuotaConfigArgs']]] = None,
427
+ quota_id: Optional[pulumi.Input[str]] = None,
428
+ service: Optional[pulumi.Input[str]] = None,
429
+ __props__=None):
430
+ """
431
+ QuotaPreference represents the preferred quota configuration specified for a project, folder or organization. There is only one QuotaPreference resource for a quota value targeting a unique set of dimensions.
432
+
433
+ To get more information about QuotaPreference, see:
434
+
435
+ * [API documentation](https://cloud.google.com/docs/quotas/reference/rest/v1/projects.locations.quotaPreferences)
436
+ * How-to Guides
437
+ * [Cloud Quotas Overview](https://cloud.google.com/docs/quotas/overview)
438
+
439
+ ## Example Usage
440
+
441
+ ### Cloudquotas Quota Preference Basic
442
+
443
+ <!--Start PulumiCodeChooser -->
444
+ ```python
445
+ import pulumi
446
+ import pulumi_gcp as gcp
447
+
448
+ preference = gcp.cloudquota.SQuotaPreference("preference",
449
+ parent="projects/my-project-name",
450
+ name="compute_googleapis_com-CPUS-per-project_us-east1",
451
+ dimensions={
452
+ "region": "us-east1",
453
+ },
454
+ service="compute.googleapis.com",
455
+ quota_id="CPUS-per-project-region",
456
+ contact_email="testuser@gmail.com",
457
+ quota_config=gcp.cloudquota.SQuotaPreferenceQuotaConfigArgs(
458
+ preferred_value="200",
459
+ ))
460
+ ```
461
+ <!--End PulumiCodeChooser -->
462
+
463
+ ## Import
464
+
465
+ QuotaPreference can be imported using any of these accepted formats:
466
+
467
+ * `{{parent}}/locations/global/quotaPreferences/{{name}}`
468
+
469
+ When using the `pulumi import` command, QuotaPreference can be imported using one of the formats above. For example:
470
+
471
+ ```sh
472
+ $ pulumi import gcp:cloudquota/sQuotaPreference:SQuotaPreference default {{parent}}/locations/global/quotaPreferences/{{name}}
473
+ ```
474
+
475
+ :param str resource_name: The name of the resource.
476
+ :param pulumi.ResourceOptions opts: Options for the resource.
477
+ :param pulumi.Input[str] contact_email: An email address that can be used for quota related communication between the Google Cloud and the user in case the Google Cloud needs further information to make a decision on whether the user preferred quota can be granted.
478
+ The Google account for the email address must have quota update permission for the project, folder or organization this quota preference is for.
479
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: The dimensions that this quota preference applies to. The key of the map entry is the name of a dimension, such as "region", "zone", "network_id", and the value of the map entry is the dimension value. If a dimension is missing from the map of dimensions, the quota preference applies to all the dimension values except for those that have other quota preferences configured for the specific value.
480
+ NOTE: QuotaPreferences can only be applied across all values of "user" and "resource" dimension. Do not set values for "user" or "resource" in the dimension map.
481
+ Example: `{"provider": "Foo Inc"}` where "provider" is a service specific dimension.
482
+ :param pulumi.Input[str] ignore_safety_checks: The list of quota safety checks to be ignored.
483
+ Default value is `QUOTA_SAFETY_CHECK_UNSPECIFIED`.
484
+ Possible values are: `QUOTA_SAFETY_CHECK_UNSPECIFIED`, `QUOTA_DECREASE_BELOW_USAGE`, `QUOTA_DECREASE_PERCENTAGE_TOO_HIGH`.
485
+ :param pulumi.Input[str] justification: The reason / justification for this quota preference.
486
+ :param pulumi.Input[str] name: The resource name of the quota preference. Required except in the CREATE requests.
487
+ :param pulumi.Input[str] parent: The parent of the quota preference. Allowed parents are "projects/[project-id / number]" or "folders/[folder-id / number]" or "organizations/[org-id / number]".
488
+ :param pulumi.Input[pulumi.InputType['SQuotaPreferenceQuotaConfigArgs']] quota_config: The preferred quota configuration.
489
+ Structure is documented below.
490
+ :param pulumi.Input[str] quota_id: The id of the quota to which the quota preference is applied. A quota id is unique in the service.
491
+ Example: `CPUS-per-project-region`.
492
+ :param pulumi.Input[str] service: The name of the service to which the quota preference is applied.
493
+ """
494
+ ...
495
+ @overload
496
+ def __init__(__self__,
497
+ resource_name: str,
498
+ args: SQuotaPreferenceArgs,
499
+ opts: Optional[pulumi.ResourceOptions] = None):
500
+ """
501
+ QuotaPreference represents the preferred quota configuration specified for a project, folder or organization. There is only one QuotaPreference resource for a quota value targeting a unique set of dimensions.
502
+
503
+ To get more information about QuotaPreference, see:
504
+
505
+ * [API documentation](https://cloud.google.com/docs/quotas/reference/rest/v1/projects.locations.quotaPreferences)
506
+ * How-to Guides
507
+ * [Cloud Quotas Overview](https://cloud.google.com/docs/quotas/overview)
508
+
509
+ ## Example Usage
510
+
511
+ ### Cloudquotas Quota Preference Basic
512
+
513
+ <!--Start PulumiCodeChooser -->
514
+ ```python
515
+ import pulumi
516
+ import pulumi_gcp as gcp
517
+
518
+ preference = gcp.cloudquota.SQuotaPreference("preference",
519
+ parent="projects/my-project-name",
520
+ name="compute_googleapis_com-CPUS-per-project_us-east1",
521
+ dimensions={
522
+ "region": "us-east1",
523
+ },
524
+ service="compute.googleapis.com",
525
+ quota_id="CPUS-per-project-region",
526
+ contact_email="testuser@gmail.com",
527
+ quota_config=gcp.cloudquota.SQuotaPreferenceQuotaConfigArgs(
528
+ preferred_value="200",
529
+ ))
530
+ ```
531
+ <!--End PulumiCodeChooser -->
532
+
533
+ ## Import
534
+
535
+ QuotaPreference can be imported using any of these accepted formats:
536
+
537
+ * `{{parent}}/locations/global/quotaPreferences/{{name}}`
538
+
539
+ When using the `pulumi import` command, QuotaPreference can be imported using one of the formats above. For example:
540
+
541
+ ```sh
542
+ $ pulumi import gcp:cloudquota/sQuotaPreference:SQuotaPreference default {{parent}}/locations/global/quotaPreferences/{{name}}
543
+ ```
544
+
545
+ :param str resource_name: The name of the resource.
546
+ :param SQuotaPreferenceArgs args: The arguments to use to populate this resource's properties.
547
+ :param pulumi.ResourceOptions opts: Options for the resource.
548
+ """
549
+ ...
550
+ def __init__(__self__, resource_name: str, *args, **kwargs):
551
+ resource_args, opts = _utilities.get_resource_args_opts(SQuotaPreferenceArgs, pulumi.ResourceOptions, *args, **kwargs)
552
+ if resource_args is not None:
553
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
554
+ else:
555
+ __self__._internal_init(resource_name, *args, **kwargs)
556
+
557
+ def _internal_init(__self__,
558
+ resource_name: str,
559
+ opts: Optional[pulumi.ResourceOptions] = None,
560
+ contact_email: Optional[pulumi.Input[str]] = None,
561
+ dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
562
+ ignore_safety_checks: Optional[pulumi.Input[str]] = None,
563
+ justification: Optional[pulumi.Input[str]] = None,
564
+ name: Optional[pulumi.Input[str]] = None,
565
+ parent: Optional[pulumi.Input[str]] = None,
566
+ quota_config: Optional[pulumi.Input[pulumi.InputType['SQuotaPreferenceQuotaConfigArgs']]] = None,
567
+ quota_id: Optional[pulumi.Input[str]] = None,
568
+ service: Optional[pulumi.Input[str]] = None,
569
+ __props__=None):
570
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
571
+ if not isinstance(opts, pulumi.ResourceOptions):
572
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
573
+ if opts.id is None:
574
+ if __props__ is not None:
575
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
576
+ __props__ = SQuotaPreferenceArgs.__new__(SQuotaPreferenceArgs)
577
+
578
+ __props__.__dict__["contact_email"] = contact_email
579
+ __props__.__dict__["dimensions"] = dimensions
580
+ __props__.__dict__["ignore_safety_checks"] = ignore_safety_checks
581
+ __props__.__dict__["justification"] = justification
582
+ __props__.__dict__["name"] = name
583
+ __props__.__dict__["parent"] = parent
584
+ if quota_config is None and not opts.urn:
585
+ raise TypeError("Missing required property 'quota_config'")
586
+ __props__.__dict__["quota_config"] = quota_config
587
+ __props__.__dict__["quota_id"] = quota_id
588
+ __props__.__dict__["service"] = service
589
+ __props__.__dict__["create_time"] = None
590
+ __props__.__dict__["etag"] = None
591
+ __props__.__dict__["reconciling"] = None
592
+ __props__.__dict__["update_time"] = None
593
+ super(SQuotaPreference, __self__).__init__(
594
+ 'gcp:cloudquota/sQuotaPreference:SQuotaPreference',
595
+ resource_name,
596
+ __props__,
597
+ opts)
598
+
599
+ @staticmethod
600
+ def get(resource_name: str,
601
+ id: pulumi.Input[str],
602
+ opts: Optional[pulumi.ResourceOptions] = None,
603
+ contact_email: Optional[pulumi.Input[str]] = None,
604
+ create_time: Optional[pulumi.Input[str]] = None,
605
+ dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
606
+ etag: Optional[pulumi.Input[str]] = None,
607
+ ignore_safety_checks: Optional[pulumi.Input[str]] = None,
608
+ justification: Optional[pulumi.Input[str]] = None,
609
+ name: Optional[pulumi.Input[str]] = None,
610
+ parent: Optional[pulumi.Input[str]] = None,
611
+ quota_config: Optional[pulumi.Input[pulumi.InputType['SQuotaPreferenceQuotaConfigArgs']]] = None,
612
+ quota_id: Optional[pulumi.Input[str]] = None,
613
+ reconciling: Optional[pulumi.Input[bool]] = None,
614
+ service: Optional[pulumi.Input[str]] = None,
615
+ update_time: Optional[pulumi.Input[str]] = None) -> 'SQuotaPreference':
616
+ """
617
+ Get an existing SQuotaPreference resource's state with the given name, id, and optional extra
618
+ properties used to qualify the lookup.
619
+
620
+ :param str resource_name: The unique name of the resulting resource.
621
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
622
+ :param pulumi.ResourceOptions opts: Options for the resource.
623
+ :param pulumi.Input[str] contact_email: An email address that can be used for quota related communication between the Google Cloud and the user in case the Google Cloud needs further information to make a decision on whether the user preferred quota can be granted.
624
+ The Google account for the email address must have quota update permission for the project, folder or organization this quota preference is for.
625
+ :param pulumi.Input[str] create_time: Create time stamp.
626
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: `2014-10-02T15:01:23Z` and `2014-10-02T15:01:23.045123456Z`.
627
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: The dimensions that this quota preference applies to. The key of the map entry is the name of a dimension, such as "region", "zone", "network_id", and the value of the map entry is the dimension value. If a dimension is missing from the map of dimensions, the quota preference applies to all the dimension values except for those that have other quota preferences configured for the specific value.
628
+ NOTE: QuotaPreferences can only be applied across all values of "user" and "resource" dimension. Do not set values for "user" or "resource" in the dimension map.
629
+ Example: `{"provider": "Foo Inc"}` where "provider" is a service specific dimension.
630
+ :param pulumi.Input[str] etag: The current etag of the quota preference. If an etag is provided on update and does not match the current server's etag of the quota preference, the request will be blocked and an ABORTED error will be returned. See https://google.aip.dev/134#etags for more details on etags.
631
+ :param pulumi.Input[str] ignore_safety_checks: The list of quota safety checks to be ignored.
632
+ Default value is `QUOTA_SAFETY_CHECK_UNSPECIFIED`.
633
+ Possible values are: `QUOTA_SAFETY_CHECK_UNSPECIFIED`, `QUOTA_DECREASE_BELOW_USAGE`, `QUOTA_DECREASE_PERCENTAGE_TOO_HIGH`.
634
+ :param pulumi.Input[str] justification: The reason / justification for this quota preference.
635
+ :param pulumi.Input[str] name: The resource name of the quota preference. Required except in the CREATE requests.
636
+ :param pulumi.Input[str] parent: The parent of the quota preference. Allowed parents are "projects/[project-id / number]" or "folders/[folder-id / number]" or "organizations/[org-id / number]".
637
+ :param pulumi.Input[pulumi.InputType['SQuotaPreferenceQuotaConfigArgs']] quota_config: The preferred quota configuration.
638
+ Structure is documented below.
639
+ :param pulumi.Input[str] quota_id: The id of the quota to which the quota preference is applied. A quota id is unique in the service.
640
+ Example: `CPUS-per-project-region`.
641
+ :param pulumi.Input[bool] reconciling: Is the quota preference pending Google Cloud approval and fulfillment.
642
+ :param pulumi.Input[str] service: The name of the service to which the quota preference is applied.
643
+ :param pulumi.Input[str] update_time: Update time stamp.
644
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: `2014-10-02T15:01:23Z` and `2014-10-02T15:01:23.045123456Z`.
645
+ """
646
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
647
+
648
+ __props__ = _SQuotaPreferenceState.__new__(_SQuotaPreferenceState)
649
+
650
+ __props__.__dict__["contact_email"] = contact_email
651
+ __props__.__dict__["create_time"] = create_time
652
+ __props__.__dict__["dimensions"] = dimensions
653
+ __props__.__dict__["etag"] = etag
654
+ __props__.__dict__["ignore_safety_checks"] = ignore_safety_checks
655
+ __props__.__dict__["justification"] = justification
656
+ __props__.__dict__["name"] = name
657
+ __props__.__dict__["parent"] = parent
658
+ __props__.__dict__["quota_config"] = quota_config
659
+ __props__.__dict__["quota_id"] = quota_id
660
+ __props__.__dict__["reconciling"] = reconciling
661
+ __props__.__dict__["service"] = service
662
+ __props__.__dict__["update_time"] = update_time
663
+ return SQuotaPreference(resource_name, opts=opts, __props__=__props__)
664
+
665
+ @property
666
+ @pulumi.getter(name="contactEmail")
667
+ def contact_email(self) -> pulumi.Output[Optional[str]]:
668
+ """
669
+ An email address that can be used for quota related communication between the Google Cloud and the user in case the Google Cloud needs further information to make a decision on whether the user preferred quota can be granted.
670
+ The Google account for the email address must have quota update permission for the project, folder or organization this quota preference is for.
671
+ """
672
+ return pulumi.get(self, "contact_email")
673
+
674
+ @property
675
+ @pulumi.getter(name="createTime")
676
+ def create_time(self) -> pulumi.Output[str]:
677
+ """
678
+ Create time stamp.
679
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: `2014-10-02T15:01:23Z` and `2014-10-02T15:01:23.045123456Z`.
680
+ """
681
+ return pulumi.get(self, "create_time")
682
+
683
+ @property
684
+ @pulumi.getter
685
+ def dimensions(self) -> pulumi.Output[Mapping[str, str]]:
686
+ """
687
+ The dimensions that this quota preference applies to. The key of the map entry is the name of a dimension, such as "region", "zone", "network_id", and the value of the map entry is the dimension value. If a dimension is missing from the map of dimensions, the quota preference applies to all the dimension values except for those that have other quota preferences configured for the specific value.
688
+ NOTE: QuotaPreferences can only be applied across all values of "user" and "resource" dimension. Do not set values for "user" or "resource" in the dimension map.
689
+ Example: `{"provider": "Foo Inc"}` where "provider" is a service specific dimension.
690
+ """
691
+ return pulumi.get(self, "dimensions")
692
+
693
+ @property
694
+ @pulumi.getter
695
+ def etag(self) -> pulumi.Output[str]:
696
+ """
697
+ The current etag of the quota preference. If an etag is provided on update and does not match the current server's etag of the quota preference, the request will be blocked and an ABORTED error will be returned. See https://google.aip.dev/134#etags for more details on etags.
698
+ """
699
+ return pulumi.get(self, "etag")
700
+
701
+ @property
702
+ @pulumi.getter(name="ignoreSafetyChecks")
703
+ def ignore_safety_checks(self) -> pulumi.Output[Optional[str]]:
704
+ """
705
+ The list of quota safety checks to be ignored.
706
+ Default value is `QUOTA_SAFETY_CHECK_UNSPECIFIED`.
707
+ Possible values are: `QUOTA_SAFETY_CHECK_UNSPECIFIED`, `QUOTA_DECREASE_BELOW_USAGE`, `QUOTA_DECREASE_PERCENTAGE_TOO_HIGH`.
708
+ """
709
+ return pulumi.get(self, "ignore_safety_checks")
710
+
711
+ @property
712
+ @pulumi.getter
713
+ def justification(self) -> pulumi.Output[Optional[str]]:
714
+ """
715
+ The reason / justification for this quota preference.
716
+ """
717
+ return pulumi.get(self, "justification")
718
+
719
+ @property
720
+ @pulumi.getter
721
+ def name(self) -> pulumi.Output[str]:
722
+ """
723
+ The resource name of the quota preference. Required except in the CREATE requests.
724
+ """
725
+ return pulumi.get(self, "name")
726
+
727
+ @property
728
+ @pulumi.getter
729
+ def parent(self) -> pulumi.Output[str]:
730
+ """
731
+ The parent of the quota preference. Allowed parents are "projects/[project-id / number]" or "folders/[folder-id / number]" or "organizations/[org-id / number]".
732
+ """
733
+ return pulumi.get(self, "parent")
734
+
735
+ @property
736
+ @pulumi.getter(name="quotaConfig")
737
+ def quota_config(self) -> pulumi.Output['outputs.SQuotaPreferenceQuotaConfig']:
738
+ """
739
+ The preferred quota configuration.
740
+ Structure is documented below.
741
+ """
742
+ return pulumi.get(self, "quota_config")
743
+
744
+ @property
745
+ @pulumi.getter(name="quotaId")
746
+ def quota_id(self) -> pulumi.Output[str]:
747
+ """
748
+ The id of the quota to which the quota preference is applied. A quota id is unique in the service.
749
+ Example: `CPUS-per-project-region`.
750
+ """
751
+ return pulumi.get(self, "quota_id")
752
+
753
+ @property
754
+ @pulumi.getter
755
+ def reconciling(self) -> pulumi.Output[bool]:
756
+ """
757
+ Is the quota preference pending Google Cloud approval and fulfillment.
758
+ """
759
+ return pulumi.get(self, "reconciling")
760
+
761
+ @property
762
+ @pulumi.getter
763
+ def service(self) -> pulumi.Output[str]:
764
+ """
765
+ The name of the service to which the quota preference is applied.
766
+ """
767
+ return pulumi.get(self, "service")
768
+
769
+ @property
770
+ @pulumi.getter(name="updateTime")
771
+ def update_time(self) -> pulumi.Output[str]:
772
+ """
773
+ Update time stamp.
774
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: `2014-10-02T15:01:23Z` and `2014-10-02T15:01:23.045123456Z`.
775
+ """
776
+ return pulumi.get(self, "update_time")
777
+