pulumi-gcp 7.27.0a1718103841__py3-none-any.whl → 7.27.0a1718279079__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 (81) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/appengine/_inputs.py +40 -0
  3. pulumi_gcp/appengine/flexible_app_version.py +47 -0
  4. pulumi_gcp/appengine/outputs.py +51 -0
  5. pulumi_gcp/bigtable/instance.py +47 -0
  6. pulumi_gcp/clouddeploy/_inputs.py +16 -0
  7. pulumi_gcp/clouddeploy/outputs.py +12 -0
  8. pulumi_gcp/compute/__init__.py +2 -0
  9. pulumi_gcp/compute/_inputs.py +84 -0
  10. pulumi_gcp/compute/backend_service.py +54 -0
  11. pulumi_gcp/compute/disk.py +68 -0
  12. pulumi_gcp/compute/get_backend_service.py +11 -1
  13. pulumi_gcp/compute/get_disk.py +11 -1
  14. pulumi_gcp/compute/get_instance.py +11 -1
  15. pulumi_gcp/compute/get_instance_group_manager.py +31 -1
  16. pulumi_gcp/compute/get_instance_template.py +11 -1
  17. pulumi_gcp/compute/get_region_instance_template.py +11 -1
  18. pulumi_gcp/compute/get_security_policy.py +214 -0
  19. pulumi_gcp/compute/instance.py +47 -0
  20. pulumi_gcp/compute/instance_from_machine_image.py +47 -0
  21. pulumi_gcp/compute/instance_from_template.py +47 -0
  22. pulumi_gcp/compute/instance_group_manager.py +185 -0
  23. pulumi_gcp/compute/instance_template.py +47 -0
  24. pulumi_gcp/compute/outputs.py +1039 -0
  25. pulumi_gcp/compute/project_cloud_armor_tier.py +336 -0
  26. pulumi_gcp/compute/region_instance_group_manager.py +185 -0
  27. pulumi_gcp/compute/region_instance_template.py +47 -0
  28. pulumi_gcp/config/__init__.pyi +2 -0
  29. pulumi_gcp/config/vars.py +4 -0
  30. pulumi_gcp/container/_inputs.py +33 -4
  31. pulumi_gcp/container/cluster.py +61 -0
  32. pulumi_gcp/container/get_cluster.py +11 -1
  33. pulumi_gcp/container/outputs.py +48 -4
  34. pulumi_gcp/dataloss/_inputs.py +185 -19
  35. pulumi_gcp/dataloss/outputs.py +206 -17
  36. pulumi_gcp/dataloss/prevention_inspect_template.py +54 -0
  37. pulumi_gcp/gkebackup/_inputs.py +282 -7
  38. pulumi_gcp/gkebackup/backup_plan.py +100 -0
  39. pulumi_gcp/gkebackup/outputs.py +312 -7
  40. pulumi_gcp/gkebackup/restore_plan.py +326 -0
  41. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +326 -0
  42. pulumi_gcp/gkebackup/restore_plan_iam_member.py +326 -0
  43. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +326 -0
  44. pulumi_gcp/healthcare/_inputs.py +17 -1
  45. pulumi_gcp/healthcare/dicom_store.py +2 -0
  46. pulumi_gcp/healthcare/fhir_store.py +44 -60
  47. pulumi_gcp/healthcare/outputs.py +15 -1
  48. pulumi_gcp/integrationconnectors/endpoint_attachment.py +47 -0
  49. pulumi_gcp/kms/crypto_key.py +14 -7
  50. pulumi_gcp/netapp/_inputs.py +58 -0
  51. pulumi_gcp/netapp/outputs.py +67 -0
  52. pulumi_gcp/netapp/volume.py +54 -0
  53. pulumi_gcp/networkservices/__init__.py +1 -0
  54. pulumi_gcp/networkservices/_inputs.py +47 -0
  55. pulumi_gcp/networkservices/outputs.py +56 -0
  56. pulumi_gcp/networkservices/service_lb_policies.py +782 -0
  57. pulumi_gcp/provider.py +20 -0
  58. pulumi_gcp/pulumi-plugin.json +1 -1
  59. pulumi_gcp/redis/_inputs.py +44 -0
  60. pulumi_gcp/redis/cluster.py +128 -3
  61. pulumi_gcp/redis/outputs.py +36 -0
  62. pulumi_gcp/secretmanager/_inputs.py +20 -0
  63. pulumi_gcp/secretmanager/outputs.py +20 -0
  64. pulumi_gcp/secretmanager/secret_iam_binding.py +244 -0
  65. pulumi_gcp/secretmanager/secret_iam_member.py +244 -0
  66. pulumi_gcp/secretmanager/secret_iam_policy.py +224 -0
  67. pulumi_gcp/securitycenter/__init__.py +1 -0
  68. pulumi_gcp/securitycenter/management_organization_event_threat_detection_custom_module.py +568 -0
  69. pulumi_gcp/spanner/__init__.py +1 -0
  70. pulumi_gcp/spanner/_inputs.py +68 -0
  71. pulumi_gcp/spanner/instance_config.py +569 -0
  72. pulumi_gcp/spanner/outputs.py +73 -0
  73. pulumi_gcp/sql/_inputs.py +8 -2
  74. pulumi_gcp/sql/outputs.py +9 -6
  75. pulumi_gcp/workstations/_inputs.py +51 -1
  76. pulumi_gcp/workstations/outputs.py +46 -2
  77. pulumi_gcp/workstations/workstation_config.py +10 -4
  78. {pulumi_gcp-7.27.0a1718103841.dist-info → pulumi_gcp-7.27.0a1718279079.dist-info}/METADATA +1 -1
  79. {pulumi_gcp-7.27.0a1718103841.dist-info → pulumi_gcp-7.27.0a1718279079.dist-info}/RECORD +81 -76
  80. {pulumi_gcp-7.27.0a1718103841.dist-info → pulumi_gcp-7.27.0a1718279079.dist-info}/WHEEL +0 -0
  81. {pulumi_gcp-7.27.0a1718103841.dist-info → pulumi_gcp-7.27.0a1718279079.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,569 @@
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__ = ['InstanceConfigArgs', 'InstanceConfig']
15
+
16
+ @pulumi.input_type
17
+ class InstanceConfigArgs:
18
+ def __init__(__self__, *,
19
+ display_name: pulumi.Input[str],
20
+ replicas: pulumi.Input[Sequence[pulumi.Input['InstanceConfigReplicaArgs']]],
21
+ base_config: Optional[pulumi.Input[str]] = None,
22
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
23
+ name: Optional[pulumi.Input[str]] = None,
24
+ project: Optional[pulumi.Input[str]] = None):
25
+ """
26
+ The set of arguments for constructing a InstanceConfig resource.
27
+ :param pulumi.Input[str] display_name: The name of this instance configuration as it appears in UIs.
28
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceConfigReplicaArgs']]] replicas: The geographic placement of nodes in this instance configuration and their replication properties.
29
+ Structure is documented below.
30
+ :param pulumi.Input[str] base_config: Base configuration name, e.g. nam3, based on which this configuration is created. Only set for user managed
31
+ configurations. baseConfig must refer to a configuration of type GOOGLE_MANAGED in the same project as this
32
+ configuration.
33
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
34
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer
35
+ to the field 'effective_labels' for all of the labels present on the resource.
36
+ :param pulumi.Input[str] name: A unique identifier for the instance configuration. Values are of the
37
+ form projects/<project>/instanceConfigs/[a-z][-a-z0-9]*
38
+ """
39
+ pulumi.set(__self__, "display_name", display_name)
40
+ pulumi.set(__self__, "replicas", replicas)
41
+ if base_config is not None:
42
+ pulumi.set(__self__, "base_config", base_config)
43
+ if labels is not None:
44
+ pulumi.set(__self__, "labels", labels)
45
+ if name is not None:
46
+ pulumi.set(__self__, "name", name)
47
+ if project is not None:
48
+ pulumi.set(__self__, "project", project)
49
+
50
+ @property
51
+ @pulumi.getter(name="displayName")
52
+ def display_name(self) -> pulumi.Input[str]:
53
+ """
54
+ The name of this instance configuration as it appears in UIs.
55
+ """
56
+ return pulumi.get(self, "display_name")
57
+
58
+ @display_name.setter
59
+ def display_name(self, value: pulumi.Input[str]):
60
+ pulumi.set(self, "display_name", value)
61
+
62
+ @property
63
+ @pulumi.getter
64
+ def replicas(self) -> pulumi.Input[Sequence[pulumi.Input['InstanceConfigReplicaArgs']]]:
65
+ """
66
+ The geographic placement of nodes in this instance configuration and their replication properties.
67
+ Structure is documented below.
68
+ """
69
+ return pulumi.get(self, "replicas")
70
+
71
+ @replicas.setter
72
+ def replicas(self, value: pulumi.Input[Sequence[pulumi.Input['InstanceConfigReplicaArgs']]]):
73
+ pulumi.set(self, "replicas", value)
74
+
75
+ @property
76
+ @pulumi.getter(name="baseConfig")
77
+ def base_config(self) -> Optional[pulumi.Input[str]]:
78
+ """
79
+ Base configuration name, e.g. nam3, based on which this configuration is created. Only set for user managed
80
+ configurations. baseConfig must refer to a configuration of type GOOGLE_MANAGED in the same project as this
81
+ configuration.
82
+ """
83
+ return pulumi.get(self, "base_config")
84
+
85
+ @base_config.setter
86
+ def base_config(self, value: Optional[pulumi.Input[str]]):
87
+ pulumi.set(self, "base_config", value)
88
+
89
+ @property
90
+ @pulumi.getter
91
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
92
+ """
93
+ An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
94
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer
95
+ to the field 'effective_labels' for all of the labels present on the resource.
96
+ """
97
+ return pulumi.get(self, "labels")
98
+
99
+ @labels.setter
100
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
101
+ pulumi.set(self, "labels", value)
102
+
103
+ @property
104
+ @pulumi.getter
105
+ def name(self) -> Optional[pulumi.Input[str]]:
106
+ """
107
+ A unique identifier for the instance configuration. Values are of the
108
+ form projects/<project>/instanceConfigs/[a-z][-a-z0-9]*
109
+ """
110
+ return pulumi.get(self, "name")
111
+
112
+ @name.setter
113
+ def name(self, value: Optional[pulumi.Input[str]]):
114
+ pulumi.set(self, "name", value)
115
+
116
+ @property
117
+ @pulumi.getter
118
+ def project(self) -> Optional[pulumi.Input[str]]:
119
+ return pulumi.get(self, "project")
120
+
121
+ @project.setter
122
+ def project(self, value: Optional[pulumi.Input[str]]):
123
+ pulumi.set(self, "project", value)
124
+
125
+
126
+ @pulumi.input_type
127
+ class _InstanceConfigState:
128
+ def __init__(__self__, *,
129
+ base_config: Optional[pulumi.Input[str]] = None,
130
+ config_type: Optional[pulumi.Input[str]] = None,
131
+ display_name: Optional[pulumi.Input[str]] = None,
132
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
133
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
134
+ name: Optional[pulumi.Input[str]] = None,
135
+ project: Optional[pulumi.Input[str]] = None,
136
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
137
+ replicas: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceConfigReplicaArgs']]]] = None):
138
+ """
139
+ Input properties used for looking up and filtering InstanceConfig resources.
140
+ :param pulumi.Input[str] base_config: Base configuration name, e.g. nam3, based on which this configuration is created. Only set for user managed
141
+ configurations. baseConfig must refer to a configuration of type GOOGLE_MANAGED in the same project as this
142
+ configuration.
143
+ :param pulumi.Input[str] config_type: Output only. Whether this instance config is a Google or User Managed Configuration.
144
+ :param pulumi.Input[str] display_name: The name of this instance configuration as it appears in UIs.
145
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
146
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
147
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer
148
+ to the field 'effective_labels' for all of the labels present on the resource.
149
+ :param pulumi.Input[str] name: A unique identifier for the instance configuration. Values are of the
150
+ form projects/<project>/instanceConfigs/[a-z][-a-z0-9]*
151
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
152
+ and default labels configured on the provider.
153
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceConfigReplicaArgs']]] replicas: The geographic placement of nodes in this instance configuration and their replication properties.
154
+ Structure is documented below.
155
+ """
156
+ if base_config is not None:
157
+ pulumi.set(__self__, "base_config", base_config)
158
+ if config_type is not None:
159
+ pulumi.set(__self__, "config_type", config_type)
160
+ if display_name is not None:
161
+ pulumi.set(__self__, "display_name", display_name)
162
+ if effective_labels is not None:
163
+ pulumi.set(__self__, "effective_labels", effective_labels)
164
+ if labels is not None:
165
+ pulumi.set(__self__, "labels", labels)
166
+ if name is not None:
167
+ pulumi.set(__self__, "name", name)
168
+ if project is not None:
169
+ pulumi.set(__self__, "project", project)
170
+ if pulumi_labels is not None:
171
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
172
+ if replicas is not None:
173
+ pulumi.set(__self__, "replicas", replicas)
174
+
175
+ @property
176
+ @pulumi.getter(name="baseConfig")
177
+ def base_config(self) -> Optional[pulumi.Input[str]]:
178
+ """
179
+ Base configuration name, e.g. nam3, based on which this configuration is created. Only set for user managed
180
+ configurations. baseConfig must refer to a configuration of type GOOGLE_MANAGED in the same project as this
181
+ configuration.
182
+ """
183
+ return pulumi.get(self, "base_config")
184
+
185
+ @base_config.setter
186
+ def base_config(self, value: Optional[pulumi.Input[str]]):
187
+ pulumi.set(self, "base_config", value)
188
+
189
+ @property
190
+ @pulumi.getter(name="configType")
191
+ def config_type(self) -> Optional[pulumi.Input[str]]:
192
+ """
193
+ Output only. Whether this instance config is a Google or User Managed Configuration.
194
+ """
195
+ return pulumi.get(self, "config_type")
196
+
197
+ @config_type.setter
198
+ def config_type(self, value: Optional[pulumi.Input[str]]):
199
+ pulumi.set(self, "config_type", value)
200
+
201
+ @property
202
+ @pulumi.getter(name="displayName")
203
+ def display_name(self) -> Optional[pulumi.Input[str]]:
204
+ """
205
+ The name of this instance configuration as it appears in UIs.
206
+ """
207
+ return pulumi.get(self, "display_name")
208
+
209
+ @display_name.setter
210
+ def display_name(self, value: Optional[pulumi.Input[str]]):
211
+ pulumi.set(self, "display_name", value)
212
+
213
+ @property
214
+ @pulumi.getter(name="effectiveLabels")
215
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
216
+ """
217
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
218
+ """
219
+ return pulumi.get(self, "effective_labels")
220
+
221
+ @effective_labels.setter
222
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
223
+ pulumi.set(self, "effective_labels", value)
224
+
225
+ @property
226
+ @pulumi.getter
227
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
228
+ """
229
+ An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
230
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer
231
+ to the field 'effective_labels' for all of the labels present on the resource.
232
+ """
233
+ return pulumi.get(self, "labels")
234
+
235
+ @labels.setter
236
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
237
+ pulumi.set(self, "labels", value)
238
+
239
+ @property
240
+ @pulumi.getter
241
+ def name(self) -> Optional[pulumi.Input[str]]:
242
+ """
243
+ A unique identifier for the instance configuration. Values are of the
244
+ form projects/<project>/instanceConfigs/[a-z][-a-z0-9]*
245
+ """
246
+ return pulumi.get(self, "name")
247
+
248
+ @name.setter
249
+ def name(self, value: Optional[pulumi.Input[str]]):
250
+ pulumi.set(self, "name", value)
251
+
252
+ @property
253
+ @pulumi.getter
254
+ def project(self) -> Optional[pulumi.Input[str]]:
255
+ return pulumi.get(self, "project")
256
+
257
+ @project.setter
258
+ def project(self, value: Optional[pulumi.Input[str]]):
259
+ pulumi.set(self, "project", value)
260
+
261
+ @property
262
+ @pulumi.getter(name="pulumiLabels")
263
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
264
+ """
265
+ The combination of labels configured directly on the resource
266
+ and default labels configured on the provider.
267
+ """
268
+ return pulumi.get(self, "pulumi_labels")
269
+
270
+ @pulumi_labels.setter
271
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
272
+ pulumi.set(self, "pulumi_labels", value)
273
+
274
+ @property
275
+ @pulumi.getter
276
+ def replicas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceConfigReplicaArgs']]]]:
277
+ """
278
+ The geographic placement of nodes in this instance configuration and their replication properties.
279
+ Structure is documented below.
280
+ """
281
+ return pulumi.get(self, "replicas")
282
+
283
+ @replicas.setter
284
+ def replicas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceConfigReplicaArgs']]]]):
285
+ pulumi.set(self, "replicas", value)
286
+
287
+
288
+ class InstanceConfig(pulumi.CustomResource):
289
+ @overload
290
+ def __init__(__self__,
291
+ resource_name: str,
292
+ opts: Optional[pulumi.ResourceOptions] = None,
293
+ base_config: Optional[pulumi.Input[str]] = None,
294
+ display_name: Optional[pulumi.Input[str]] = None,
295
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
296
+ name: Optional[pulumi.Input[str]] = None,
297
+ project: Optional[pulumi.Input[str]] = None,
298
+ replicas: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceConfigReplicaArgs']]]]] = None,
299
+ __props__=None):
300
+ """
301
+ A possible configuration for a Cloud Spanner instance. Configurations
302
+ define the geographic placement of nodes and their replication.
303
+
304
+ To get more information about InstanceConfig, see:
305
+
306
+ * [API documentation](https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instanceConfigs)
307
+ * How-to Guides
308
+ * [Official Documentation](https://cloud.google.com/spanner/)
309
+
310
+ ## Example Usage
311
+
312
+ ## Import
313
+
314
+ InstanceConfig can be imported using any of these accepted formats:
315
+
316
+ * `projects/{{project}}/instanceConfigs/{{name}}`
317
+
318
+ * `{{project}}/{{name}}`
319
+
320
+ * `{{name}}`
321
+
322
+ When using the `pulumi import` command, InstanceConfig can be imported using one of the formats above. For example:
323
+
324
+ ```sh
325
+ $ pulumi import gcp:spanner/instanceConfig:InstanceConfig default projects/{{project}}/instanceConfigs/{{name}}
326
+ ```
327
+
328
+ ```sh
329
+ $ pulumi import gcp:spanner/instanceConfig:InstanceConfig default {{project}}/{{name}}
330
+ ```
331
+
332
+ ```sh
333
+ $ pulumi import gcp:spanner/instanceConfig:InstanceConfig default {{name}}
334
+ ```
335
+
336
+ :param str resource_name: The name of the resource.
337
+ :param pulumi.ResourceOptions opts: Options for the resource.
338
+ :param pulumi.Input[str] base_config: Base configuration name, e.g. nam3, based on which this configuration is created. Only set for user managed
339
+ configurations. baseConfig must refer to a configuration of type GOOGLE_MANAGED in the same project as this
340
+ configuration.
341
+ :param pulumi.Input[str] display_name: The name of this instance configuration as it appears in UIs.
342
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
343
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer
344
+ to the field 'effective_labels' for all of the labels present on the resource.
345
+ :param pulumi.Input[str] name: A unique identifier for the instance configuration. Values are of the
346
+ form projects/<project>/instanceConfigs/[a-z][-a-z0-9]*
347
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceConfigReplicaArgs']]]] replicas: The geographic placement of nodes in this instance configuration and their replication properties.
348
+ Structure is documented below.
349
+ """
350
+ ...
351
+ @overload
352
+ def __init__(__self__,
353
+ resource_name: str,
354
+ args: InstanceConfigArgs,
355
+ opts: Optional[pulumi.ResourceOptions] = None):
356
+ """
357
+ A possible configuration for a Cloud Spanner instance. Configurations
358
+ define the geographic placement of nodes and their replication.
359
+
360
+ To get more information about InstanceConfig, see:
361
+
362
+ * [API documentation](https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instanceConfigs)
363
+ * How-to Guides
364
+ * [Official Documentation](https://cloud.google.com/spanner/)
365
+
366
+ ## Example Usage
367
+
368
+ ## Import
369
+
370
+ InstanceConfig can be imported using any of these accepted formats:
371
+
372
+ * `projects/{{project}}/instanceConfigs/{{name}}`
373
+
374
+ * `{{project}}/{{name}}`
375
+
376
+ * `{{name}}`
377
+
378
+ When using the `pulumi import` command, InstanceConfig can be imported using one of the formats above. For example:
379
+
380
+ ```sh
381
+ $ pulumi import gcp:spanner/instanceConfig:InstanceConfig default projects/{{project}}/instanceConfigs/{{name}}
382
+ ```
383
+
384
+ ```sh
385
+ $ pulumi import gcp:spanner/instanceConfig:InstanceConfig default {{project}}/{{name}}
386
+ ```
387
+
388
+ ```sh
389
+ $ pulumi import gcp:spanner/instanceConfig:InstanceConfig default {{name}}
390
+ ```
391
+
392
+ :param str resource_name: The name of the resource.
393
+ :param InstanceConfigArgs args: The arguments to use to populate this resource's properties.
394
+ :param pulumi.ResourceOptions opts: Options for the resource.
395
+ """
396
+ ...
397
+ def __init__(__self__, resource_name: str, *args, **kwargs):
398
+ resource_args, opts = _utilities.get_resource_args_opts(InstanceConfigArgs, pulumi.ResourceOptions, *args, **kwargs)
399
+ if resource_args is not None:
400
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
401
+ else:
402
+ __self__._internal_init(resource_name, *args, **kwargs)
403
+
404
+ def _internal_init(__self__,
405
+ resource_name: str,
406
+ opts: Optional[pulumi.ResourceOptions] = None,
407
+ base_config: Optional[pulumi.Input[str]] = None,
408
+ display_name: Optional[pulumi.Input[str]] = None,
409
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
410
+ name: Optional[pulumi.Input[str]] = None,
411
+ project: Optional[pulumi.Input[str]] = None,
412
+ replicas: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceConfigReplicaArgs']]]]] = None,
413
+ __props__=None):
414
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
415
+ if not isinstance(opts, pulumi.ResourceOptions):
416
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
417
+ if opts.id is None:
418
+ if __props__ is not None:
419
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
420
+ __props__ = InstanceConfigArgs.__new__(InstanceConfigArgs)
421
+
422
+ __props__.__dict__["base_config"] = base_config
423
+ if display_name is None and not opts.urn:
424
+ raise TypeError("Missing required property 'display_name'")
425
+ __props__.__dict__["display_name"] = display_name
426
+ __props__.__dict__["labels"] = labels
427
+ __props__.__dict__["name"] = name
428
+ __props__.__dict__["project"] = project
429
+ if replicas is None and not opts.urn:
430
+ raise TypeError("Missing required property 'replicas'")
431
+ __props__.__dict__["replicas"] = replicas
432
+ __props__.__dict__["config_type"] = None
433
+ __props__.__dict__["effective_labels"] = None
434
+ __props__.__dict__["pulumi_labels"] = None
435
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
436
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
437
+ super(InstanceConfig, __self__).__init__(
438
+ 'gcp:spanner/instanceConfig:InstanceConfig',
439
+ resource_name,
440
+ __props__,
441
+ opts)
442
+
443
+ @staticmethod
444
+ def get(resource_name: str,
445
+ id: pulumi.Input[str],
446
+ opts: Optional[pulumi.ResourceOptions] = None,
447
+ base_config: Optional[pulumi.Input[str]] = None,
448
+ config_type: Optional[pulumi.Input[str]] = None,
449
+ display_name: Optional[pulumi.Input[str]] = None,
450
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
451
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
452
+ name: Optional[pulumi.Input[str]] = None,
453
+ project: Optional[pulumi.Input[str]] = None,
454
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
455
+ replicas: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceConfigReplicaArgs']]]]] = None) -> 'InstanceConfig':
456
+ """
457
+ Get an existing InstanceConfig resource's state with the given name, id, and optional extra
458
+ properties used to qualify the lookup.
459
+
460
+ :param str resource_name: The unique name of the resulting resource.
461
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
462
+ :param pulumi.ResourceOptions opts: Options for the resource.
463
+ :param pulumi.Input[str] base_config: Base configuration name, e.g. nam3, based on which this configuration is created. Only set for user managed
464
+ configurations. baseConfig must refer to a configuration of type GOOGLE_MANAGED in the same project as this
465
+ configuration.
466
+ :param pulumi.Input[str] config_type: Output only. Whether this instance config is a Google or User Managed Configuration.
467
+ :param pulumi.Input[str] display_name: The name of this instance configuration as it appears in UIs.
468
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
469
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
470
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer
471
+ to the field 'effective_labels' for all of the labels present on the resource.
472
+ :param pulumi.Input[str] name: A unique identifier for the instance configuration. Values are of the
473
+ form projects/<project>/instanceConfigs/[a-z][-a-z0-9]*
474
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
475
+ and default labels configured on the provider.
476
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceConfigReplicaArgs']]]] replicas: The geographic placement of nodes in this instance configuration and their replication properties.
477
+ Structure is documented below.
478
+ """
479
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
480
+
481
+ __props__ = _InstanceConfigState.__new__(_InstanceConfigState)
482
+
483
+ __props__.__dict__["base_config"] = base_config
484
+ __props__.__dict__["config_type"] = config_type
485
+ __props__.__dict__["display_name"] = display_name
486
+ __props__.__dict__["effective_labels"] = effective_labels
487
+ __props__.__dict__["labels"] = labels
488
+ __props__.__dict__["name"] = name
489
+ __props__.__dict__["project"] = project
490
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
491
+ __props__.__dict__["replicas"] = replicas
492
+ return InstanceConfig(resource_name, opts=opts, __props__=__props__)
493
+
494
+ @property
495
+ @pulumi.getter(name="baseConfig")
496
+ def base_config(self) -> pulumi.Output[str]:
497
+ """
498
+ Base configuration name, e.g. nam3, based on which this configuration is created. Only set for user managed
499
+ configurations. baseConfig must refer to a configuration of type GOOGLE_MANAGED in the same project as this
500
+ configuration.
501
+ """
502
+ return pulumi.get(self, "base_config")
503
+
504
+ @property
505
+ @pulumi.getter(name="configType")
506
+ def config_type(self) -> pulumi.Output[str]:
507
+ """
508
+ Output only. Whether this instance config is a Google or User Managed Configuration.
509
+ """
510
+ return pulumi.get(self, "config_type")
511
+
512
+ @property
513
+ @pulumi.getter(name="displayName")
514
+ def display_name(self) -> pulumi.Output[str]:
515
+ """
516
+ The name of this instance configuration as it appears in UIs.
517
+ """
518
+ return pulumi.get(self, "display_name")
519
+
520
+ @property
521
+ @pulumi.getter(name="effectiveLabels")
522
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
523
+ """
524
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
525
+ """
526
+ return pulumi.get(self, "effective_labels")
527
+
528
+ @property
529
+ @pulumi.getter
530
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
531
+ """
532
+ An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
533
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer
534
+ to the field 'effective_labels' for all of the labels present on the resource.
535
+ """
536
+ return pulumi.get(self, "labels")
537
+
538
+ @property
539
+ @pulumi.getter
540
+ def name(self) -> pulumi.Output[str]:
541
+ """
542
+ A unique identifier for the instance configuration. Values are of the
543
+ form projects/<project>/instanceConfigs/[a-z][-a-z0-9]*
544
+ """
545
+ return pulumi.get(self, "name")
546
+
547
+ @property
548
+ @pulumi.getter
549
+ def project(self) -> pulumi.Output[str]:
550
+ return pulumi.get(self, "project")
551
+
552
+ @property
553
+ @pulumi.getter(name="pulumiLabels")
554
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
555
+ """
556
+ The combination of labels configured directly on the resource
557
+ and default labels configured on the provider.
558
+ """
559
+ return pulumi.get(self, "pulumi_labels")
560
+
561
+ @property
562
+ @pulumi.getter
563
+ def replicas(self) -> pulumi.Output[Sequence['outputs.InstanceConfigReplica']]:
564
+ """
565
+ The geographic placement of nodes in this instance configuration and their replication properties.
566
+ Structure is documented below.
567
+ """
568
+ return pulumi.get(self, "replicas")
569
+
@@ -17,6 +17,7 @@ __all__ = [
17
17
  'InstanceAutoscalingConfig',
18
18
  'InstanceAutoscalingConfigAutoscalingLimits',
19
19
  'InstanceAutoscalingConfigAutoscalingTargets',
20
+ 'InstanceConfigReplica',
20
21
  'InstanceIAMBindingCondition',
21
22
  'InstanceIAMMemberCondition',
22
23
  'GetInstanceAutoscalingConfigResult',
@@ -347,6 +348,78 @@ class InstanceAutoscalingConfigAutoscalingTargets(dict):
347
348
  return pulumi.get(self, "storage_utilization_percent")
348
349
 
349
350
 
351
+ @pulumi.output_type
352
+ class InstanceConfigReplica(dict):
353
+ @staticmethod
354
+ def __key_warning(key: str):
355
+ suggest = None
356
+ if key == "defaultLeaderLocation":
357
+ suggest = "default_leader_location"
358
+
359
+ if suggest:
360
+ pulumi.log.warn(f"Key '{key}' not found in InstanceConfigReplica. Access the value via the '{suggest}' property getter instead.")
361
+
362
+ def __getitem__(self, key: str) -> Any:
363
+ InstanceConfigReplica.__key_warning(key)
364
+ return super().__getitem__(key)
365
+
366
+ def get(self, key: str, default = None) -> Any:
367
+ InstanceConfigReplica.__key_warning(key)
368
+ return super().get(key, default)
369
+
370
+ def __init__(__self__, *,
371
+ default_leader_location: Optional[bool] = None,
372
+ location: Optional[str] = None,
373
+ type: Optional[str] = None):
374
+ """
375
+ :param bool default_leader_location: If true, this location is designated as the default leader location where
376
+ leader replicas are placed.
377
+
378
+ - - -
379
+ :param str location: The location of the serving resources, e.g. "us-central1".
380
+ :param str type: Indicates the type of replica. See the [replica types
381
+ documentation](https://cloud.google.com/spanner/docs/replication#replica_types)
382
+ for more details.
383
+ Possible values are: `READ_WRITE`, `READ_ONLY`, `WITNESS`.
384
+ """
385
+ if default_leader_location is not None:
386
+ pulumi.set(__self__, "default_leader_location", default_leader_location)
387
+ if location is not None:
388
+ pulumi.set(__self__, "location", location)
389
+ if type is not None:
390
+ pulumi.set(__self__, "type", type)
391
+
392
+ @property
393
+ @pulumi.getter(name="defaultLeaderLocation")
394
+ def default_leader_location(self) -> Optional[bool]:
395
+ """
396
+ If true, this location is designated as the default leader location where
397
+ leader replicas are placed.
398
+
399
+ - - -
400
+ """
401
+ return pulumi.get(self, "default_leader_location")
402
+
403
+ @property
404
+ @pulumi.getter
405
+ def location(self) -> Optional[str]:
406
+ """
407
+ The location of the serving resources, e.g. "us-central1".
408
+ """
409
+ return pulumi.get(self, "location")
410
+
411
+ @property
412
+ @pulumi.getter
413
+ def type(self) -> Optional[str]:
414
+ """
415
+ Indicates the type of replica. See the [replica types
416
+ documentation](https://cloud.google.com/spanner/docs/replication#replica_types)
417
+ for more details.
418
+ Possible values are: `READ_WRITE`, `READ_ONLY`, `WITNESS`.
419
+ """
420
+ return pulumi.get(self, "type")
421
+
422
+
350
423
  @pulumi.output_type
351
424
  class InstanceIAMBindingCondition(dict):
352
425
  def __init__(__self__, *,