pulumi-gcp 8.2.0a1726589141__py3-none-any.whl → 8.2.0a1726675738__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 (43) hide show
  1. pulumi_gcp/__init__.py +38 -0
  2. pulumi_gcp/bigquery/__init__.py +1 -0
  3. pulumi_gcp/bigquery/get_tables.py +143 -0
  4. pulumi_gcp/bigquery/outputs.py +30 -0
  5. pulumi_gcp/compute/__init__.py +1 -0
  6. pulumi_gcp/compute/_inputs.py +2208 -285
  7. pulumi_gcp/compute/get_instance.py +3 -0
  8. pulumi_gcp/compute/network_firewall_policy_with_rules.py +826 -0
  9. pulumi_gcp/compute/outputs.py +1383 -0
  10. pulumi_gcp/compute/region_target_http_proxy.py +159 -0
  11. pulumi_gcp/compute/region_target_https_proxy.py +175 -0
  12. pulumi_gcp/compute/service_attachment.py +75 -0
  13. pulumi_gcp/compute/target_http_proxy.py +49 -28
  14. pulumi_gcp/compute/target_https_proxy.py +49 -28
  15. pulumi_gcp/config/__init__.pyi +4 -0
  16. pulumi_gcp/config/vars.py +8 -0
  17. pulumi_gcp/container/_inputs.py +96 -0
  18. pulumi_gcp/container/attached_cluster.py +54 -1
  19. pulumi_gcp/container/outputs.py +102 -0
  20. pulumi_gcp/dataproc/metastore_federation.py +8 -8
  21. pulumi_gcp/dataproc/metastore_service.py +2 -0
  22. pulumi_gcp/datastream/stream.py +21 -14
  23. pulumi_gcp/developerconnect/__init__.py +11 -0
  24. pulumi_gcp/developerconnect/_inputs.py +301 -0
  25. pulumi_gcp/developerconnect/connection.py +1034 -0
  26. pulumi_gcp/developerconnect/git_repository_link.py +873 -0
  27. pulumi_gcp/developerconnect/outputs.py +247 -0
  28. pulumi_gcp/gkeonprem/_inputs.py +3 -3
  29. pulumi_gcp/gkeonprem/outputs.py +2 -2
  30. pulumi_gcp/memorystore/__init__.py +10 -0
  31. pulumi_gcp/memorystore/_inputs.py +731 -0
  32. pulumi_gcp/memorystore/instance.py +1663 -0
  33. pulumi_gcp/memorystore/outputs.py +598 -0
  34. pulumi_gcp/netapp/volume.py +101 -0
  35. pulumi_gcp/organizations/folder.py +52 -33
  36. pulumi_gcp/provider.py +40 -0
  37. pulumi_gcp/pulumi-plugin.json +1 -1
  38. pulumi_gcp/securitycenter/v2_project_mute_config.py +2 -2
  39. pulumi_gcp/vpcaccess/connector.py +21 -28
  40. {pulumi_gcp-8.2.0a1726589141.dist-info → pulumi_gcp-8.2.0a1726675738.dist-info}/METADATA +1 -1
  41. {pulumi_gcp-8.2.0a1726589141.dist-info → pulumi_gcp-8.2.0a1726675738.dist-info}/RECORD +43 -32
  42. {pulumi_gcp-8.2.0a1726589141.dist-info → pulumi_gcp-8.2.0a1726675738.dist-info}/WHEEL +0 -0
  43. {pulumi_gcp-8.2.0a1726589141.dist-info → pulumi_gcp-8.2.0a1726675738.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1663 @@
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 sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['InstanceArgs', 'Instance']
20
+
21
+ @pulumi.input_type
22
+ class InstanceArgs:
23
+ def __init__(__self__, *,
24
+ desired_psc_auto_connections: pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]],
25
+ instance_id: pulumi.Input[str],
26
+ location: pulumi.Input[str],
27
+ shard_count: pulumi.Input[int],
28
+ authorization_mode: Optional[pulumi.Input[str]] = None,
29
+ deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
30
+ engine_configs: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
31
+ engine_version: Optional[pulumi.Input[str]] = None,
32
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
33
+ node_type: Optional[pulumi.Input[str]] = None,
34
+ persistence_config: Optional[pulumi.Input['InstancePersistenceConfigArgs']] = None,
35
+ project: Optional[pulumi.Input[str]] = None,
36
+ replica_count: Optional[pulumi.Input[int]] = None,
37
+ transit_encryption_mode: Optional[pulumi.Input[str]] = None,
38
+ zone_distribution_config: Optional[pulumi.Input['InstanceZoneDistributionConfigArgs']] = None):
39
+ """
40
+ The set of arguments for constructing a Instance resource.
41
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]] desired_psc_auto_connections: Required. Immutable. User inputs for the auto-created PSC connections.
42
+ :param pulumi.Input[str] instance_id: Required. The ID to use for the instance, which will become the final component of
43
+ the instance's resource name.
44
+ This value is subject to the following restrictions:
45
+ * Must be 4-63 characters in length
46
+ * Must begin with a letter or digit
47
+ * Must contain only lowercase letters, digits, and hyphens
48
+ * Must not end with a hyphen
49
+ * Must be unique within a location
50
+
51
+
52
+ - - -
53
+ :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
54
+ :param pulumi.Input[int] shard_count: Required. Number of shards for the instance.
55
+ :param pulumi.Input[str] authorization_mode: Optional. Immutable. Authorization mode of the instance. Possible values:
56
+ AUTH_DISABLED
57
+ IAM_AUTH
58
+ :param pulumi.Input[bool] deletion_protection_enabled: Optional. If set to true deletion of the instance will fail.
59
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] engine_configs: Optional. User-provided engine configurations for the instance.
60
+ :param pulumi.Input[str] engine_version: Optional. Immutable. Engine version of the instance.
61
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels to represent user-provided metadata.
62
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
63
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
64
+ :param pulumi.Input[str] node_type: Optional. Immutable. Machine type for individual nodes of the instance.
65
+ Possible values:
66
+ SHARED_CORE_NANO
67
+ HIGHMEM_MEDIUM
68
+ HIGHMEM_XLARGE
69
+ STANDARD_SMALL
70
+ :param pulumi.Input['InstancePersistenceConfigArgs'] persistence_config: Represents persistence configuration for a instance.
71
+ Structure is documented below.
72
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
73
+ If it is not provided, the provider project is used.
74
+ :param pulumi.Input[int] replica_count: Optional. Number of replica nodes per shard. If omitted the default is 0 replicas.
75
+ :param pulumi.Input[str] transit_encryption_mode: Optional. Immutable. In-transit encryption mode of the instance.
76
+ Possible values:
77
+ TRANSIT_ENCRYPTION_DISABLED
78
+ SERVER_AUTHENTICATION
79
+ :param pulumi.Input['InstanceZoneDistributionConfigArgs'] zone_distribution_config: Zone distribution configuration for allocation of instance resources.
80
+ Structure is documented below.
81
+ """
82
+ pulumi.set(__self__, "desired_psc_auto_connections", desired_psc_auto_connections)
83
+ pulumi.set(__self__, "instance_id", instance_id)
84
+ pulumi.set(__self__, "location", location)
85
+ pulumi.set(__self__, "shard_count", shard_count)
86
+ if authorization_mode is not None:
87
+ pulumi.set(__self__, "authorization_mode", authorization_mode)
88
+ if deletion_protection_enabled is not None:
89
+ pulumi.set(__self__, "deletion_protection_enabled", deletion_protection_enabled)
90
+ if engine_configs is not None:
91
+ pulumi.set(__self__, "engine_configs", engine_configs)
92
+ if engine_version is not None:
93
+ pulumi.set(__self__, "engine_version", engine_version)
94
+ if labels is not None:
95
+ pulumi.set(__self__, "labels", labels)
96
+ if node_type is not None:
97
+ pulumi.set(__self__, "node_type", node_type)
98
+ if persistence_config is not None:
99
+ pulumi.set(__self__, "persistence_config", persistence_config)
100
+ if project is not None:
101
+ pulumi.set(__self__, "project", project)
102
+ if replica_count is not None:
103
+ pulumi.set(__self__, "replica_count", replica_count)
104
+ if transit_encryption_mode is not None:
105
+ pulumi.set(__self__, "transit_encryption_mode", transit_encryption_mode)
106
+ if zone_distribution_config is not None:
107
+ pulumi.set(__self__, "zone_distribution_config", zone_distribution_config)
108
+
109
+ @property
110
+ @pulumi.getter(name="desiredPscAutoConnections")
111
+ def desired_psc_auto_connections(self) -> pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]:
112
+ """
113
+ Required. Immutable. User inputs for the auto-created PSC connections.
114
+ """
115
+ return pulumi.get(self, "desired_psc_auto_connections")
116
+
117
+ @desired_psc_auto_connections.setter
118
+ def desired_psc_auto_connections(self, value: pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]):
119
+ pulumi.set(self, "desired_psc_auto_connections", value)
120
+
121
+ @property
122
+ @pulumi.getter(name="instanceId")
123
+ def instance_id(self) -> pulumi.Input[str]:
124
+ """
125
+ Required. The ID to use for the instance, which will become the final component of
126
+ the instance's resource name.
127
+ This value is subject to the following restrictions:
128
+ * Must be 4-63 characters in length
129
+ * Must begin with a letter or digit
130
+ * Must contain only lowercase letters, digits, and hyphens
131
+ * Must not end with a hyphen
132
+ * Must be unique within a location
133
+
134
+
135
+ - - -
136
+ """
137
+ return pulumi.get(self, "instance_id")
138
+
139
+ @instance_id.setter
140
+ def instance_id(self, value: pulumi.Input[str]):
141
+ pulumi.set(self, "instance_id", value)
142
+
143
+ @property
144
+ @pulumi.getter
145
+ def location(self) -> pulumi.Input[str]:
146
+ """
147
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
148
+ """
149
+ return pulumi.get(self, "location")
150
+
151
+ @location.setter
152
+ def location(self, value: pulumi.Input[str]):
153
+ pulumi.set(self, "location", value)
154
+
155
+ @property
156
+ @pulumi.getter(name="shardCount")
157
+ def shard_count(self) -> pulumi.Input[int]:
158
+ """
159
+ Required. Number of shards for the instance.
160
+ """
161
+ return pulumi.get(self, "shard_count")
162
+
163
+ @shard_count.setter
164
+ def shard_count(self, value: pulumi.Input[int]):
165
+ pulumi.set(self, "shard_count", value)
166
+
167
+ @property
168
+ @pulumi.getter(name="authorizationMode")
169
+ def authorization_mode(self) -> Optional[pulumi.Input[str]]:
170
+ """
171
+ Optional. Immutable. Authorization mode of the instance. Possible values:
172
+ AUTH_DISABLED
173
+ IAM_AUTH
174
+ """
175
+ return pulumi.get(self, "authorization_mode")
176
+
177
+ @authorization_mode.setter
178
+ def authorization_mode(self, value: Optional[pulumi.Input[str]]):
179
+ pulumi.set(self, "authorization_mode", value)
180
+
181
+ @property
182
+ @pulumi.getter(name="deletionProtectionEnabled")
183
+ def deletion_protection_enabled(self) -> Optional[pulumi.Input[bool]]:
184
+ """
185
+ Optional. If set to true deletion of the instance will fail.
186
+ """
187
+ return pulumi.get(self, "deletion_protection_enabled")
188
+
189
+ @deletion_protection_enabled.setter
190
+ def deletion_protection_enabled(self, value: Optional[pulumi.Input[bool]]):
191
+ pulumi.set(self, "deletion_protection_enabled", value)
192
+
193
+ @property
194
+ @pulumi.getter(name="engineConfigs")
195
+ def engine_configs(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
196
+ """
197
+ Optional. User-provided engine configurations for the instance.
198
+ """
199
+ return pulumi.get(self, "engine_configs")
200
+
201
+ @engine_configs.setter
202
+ def engine_configs(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
203
+ pulumi.set(self, "engine_configs", value)
204
+
205
+ @property
206
+ @pulumi.getter(name="engineVersion")
207
+ def engine_version(self) -> Optional[pulumi.Input[str]]:
208
+ """
209
+ Optional. Immutable. Engine version of the instance.
210
+ """
211
+ return pulumi.get(self, "engine_version")
212
+
213
+ @engine_version.setter
214
+ def engine_version(self, value: Optional[pulumi.Input[str]]):
215
+ pulumi.set(self, "engine_version", value)
216
+
217
+ @property
218
+ @pulumi.getter
219
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
220
+ """
221
+ Optional. Labels to represent user-provided metadata.
222
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
223
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
224
+ """
225
+ return pulumi.get(self, "labels")
226
+
227
+ @labels.setter
228
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
229
+ pulumi.set(self, "labels", value)
230
+
231
+ @property
232
+ @pulumi.getter(name="nodeType")
233
+ def node_type(self) -> Optional[pulumi.Input[str]]:
234
+ """
235
+ Optional. Immutable. Machine type for individual nodes of the instance.
236
+ Possible values:
237
+ SHARED_CORE_NANO
238
+ HIGHMEM_MEDIUM
239
+ HIGHMEM_XLARGE
240
+ STANDARD_SMALL
241
+ """
242
+ return pulumi.get(self, "node_type")
243
+
244
+ @node_type.setter
245
+ def node_type(self, value: Optional[pulumi.Input[str]]):
246
+ pulumi.set(self, "node_type", value)
247
+
248
+ @property
249
+ @pulumi.getter(name="persistenceConfig")
250
+ def persistence_config(self) -> Optional[pulumi.Input['InstancePersistenceConfigArgs']]:
251
+ """
252
+ Represents persistence configuration for a instance.
253
+ Structure is documented below.
254
+ """
255
+ return pulumi.get(self, "persistence_config")
256
+
257
+ @persistence_config.setter
258
+ def persistence_config(self, value: Optional[pulumi.Input['InstancePersistenceConfigArgs']]):
259
+ pulumi.set(self, "persistence_config", value)
260
+
261
+ @property
262
+ @pulumi.getter
263
+ def project(self) -> Optional[pulumi.Input[str]]:
264
+ """
265
+ The ID of the project in which the resource belongs.
266
+ If it is not provided, the provider project is used.
267
+ """
268
+ return pulumi.get(self, "project")
269
+
270
+ @project.setter
271
+ def project(self, value: Optional[pulumi.Input[str]]):
272
+ pulumi.set(self, "project", value)
273
+
274
+ @property
275
+ @pulumi.getter(name="replicaCount")
276
+ def replica_count(self) -> Optional[pulumi.Input[int]]:
277
+ """
278
+ Optional. Number of replica nodes per shard. If omitted the default is 0 replicas.
279
+ """
280
+ return pulumi.get(self, "replica_count")
281
+
282
+ @replica_count.setter
283
+ def replica_count(self, value: Optional[pulumi.Input[int]]):
284
+ pulumi.set(self, "replica_count", value)
285
+
286
+ @property
287
+ @pulumi.getter(name="transitEncryptionMode")
288
+ def transit_encryption_mode(self) -> Optional[pulumi.Input[str]]:
289
+ """
290
+ Optional. Immutable. In-transit encryption mode of the instance.
291
+ Possible values:
292
+ TRANSIT_ENCRYPTION_DISABLED
293
+ SERVER_AUTHENTICATION
294
+ """
295
+ return pulumi.get(self, "transit_encryption_mode")
296
+
297
+ @transit_encryption_mode.setter
298
+ def transit_encryption_mode(self, value: Optional[pulumi.Input[str]]):
299
+ pulumi.set(self, "transit_encryption_mode", value)
300
+
301
+ @property
302
+ @pulumi.getter(name="zoneDistributionConfig")
303
+ def zone_distribution_config(self) -> Optional[pulumi.Input['InstanceZoneDistributionConfigArgs']]:
304
+ """
305
+ Zone distribution configuration for allocation of instance resources.
306
+ Structure is documented below.
307
+ """
308
+ return pulumi.get(self, "zone_distribution_config")
309
+
310
+ @zone_distribution_config.setter
311
+ def zone_distribution_config(self, value: Optional[pulumi.Input['InstanceZoneDistributionConfigArgs']]):
312
+ pulumi.set(self, "zone_distribution_config", value)
313
+
314
+
315
+ @pulumi.input_type
316
+ class _InstanceState:
317
+ def __init__(__self__, *,
318
+ authorization_mode: Optional[pulumi.Input[str]] = None,
319
+ create_time: Optional[pulumi.Input[str]] = None,
320
+ deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
321
+ desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]] = None,
322
+ discovery_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDiscoveryEndpointArgs']]]] = None,
323
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
324
+ engine_configs: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
325
+ engine_version: Optional[pulumi.Input[str]] = None,
326
+ instance_id: Optional[pulumi.Input[str]] = None,
327
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
328
+ location: Optional[pulumi.Input[str]] = None,
329
+ name: Optional[pulumi.Input[str]] = None,
330
+ node_configs: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceNodeConfigArgs']]]] = None,
331
+ node_type: Optional[pulumi.Input[str]] = None,
332
+ persistence_config: Optional[pulumi.Input['InstancePersistenceConfigArgs']] = None,
333
+ project: Optional[pulumi.Input[str]] = None,
334
+ psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscAutoConnectionArgs']]]] = None,
335
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
336
+ replica_count: Optional[pulumi.Input[int]] = None,
337
+ shard_count: Optional[pulumi.Input[int]] = None,
338
+ state: Optional[pulumi.Input[str]] = None,
339
+ state_infos: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceStateInfoArgs']]]] = None,
340
+ transit_encryption_mode: Optional[pulumi.Input[str]] = None,
341
+ uid: Optional[pulumi.Input[str]] = None,
342
+ update_time: Optional[pulumi.Input[str]] = None,
343
+ zone_distribution_config: Optional[pulumi.Input['InstanceZoneDistributionConfigArgs']] = None):
344
+ """
345
+ Input properties used for looking up and filtering Instance resources.
346
+ :param pulumi.Input[str] authorization_mode: Optional. Immutable. Authorization mode of the instance. Possible values:
347
+ AUTH_DISABLED
348
+ IAM_AUTH
349
+ :param pulumi.Input[str] create_time: Output only. Creation timestamp of the instance.
350
+ :param pulumi.Input[bool] deletion_protection_enabled: Optional. If set to true deletion of the instance will fail.
351
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]] desired_psc_auto_connections: Required. Immutable. User inputs for the auto-created PSC connections.
352
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceDiscoveryEndpointArgs']]] discovery_endpoints: Output only. Endpoints clients can connect to the instance through. Currently only one
353
+ discovery endpoint is supported.
354
+ Structure is documented below.
355
+ :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.
356
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] engine_configs: Optional. User-provided engine configurations for the instance.
357
+ :param pulumi.Input[str] engine_version: Optional. Immutable. Engine version of the instance.
358
+ :param pulumi.Input[str] instance_id: Required. The ID to use for the instance, which will become the final component of
359
+ the instance's resource name.
360
+ This value is subject to the following restrictions:
361
+ * Must be 4-63 characters in length
362
+ * Must begin with a letter or digit
363
+ * Must contain only lowercase letters, digits, and hyphens
364
+ * Must not end with a hyphen
365
+ * Must be unique within a location
366
+
367
+
368
+ - - -
369
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels to represent user-provided metadata.
370
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
371
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
372
+ :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
373
+ :param pulumi.Input[str] name: Identifier. Unique name of the instance.
374
+ Format: projects/{project}/locations/{location}/instances/{instance}
375
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceNodeConfigArgs']]] node_configs: Represents configuration for nodes of the instance.
376
+ Structure is documented below.
377
+ :param pulumi.Input[str] node_type: Optional. Immutable. Machine type for individual nodes of the instance.
378
+ Possible values:
379
+ SHARED_CORE_NANO
380
+ HIGHMEM_MEDIUM
381
+ HIGHMEM_XLARGE
382
+ STANDARD_SMALL
383
+ :param pulumi.Input['InstancePersistenceConfigArgs'] persistence_config: Represents persistence configuration for a instance.
384
+ Structure is documented below.
385
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
386
+ If it is not provided, the provider project is used.
387
+ :param pulumi.Input[Sequence[pulumi.Input['InstancePscAutoConnectionArgs']]] psc_auto_connections: Output only. User inputs and resource details of the auto-created PSC connections.
388
+ Structure is documented below.
389
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
390
+ and default labels configured on the provider.
391
+ :param pulumi.Input[int] replica_count: Optional. Number of replica nodes per shard. If omitted the default is 0 replicas.
392
+ :param pulumi.Input[int] shard_count: Required. Number of shards for the instance.
393
+ :param pulumi.Input[str] state: Output only. Current state of the instance.
394
+ Possible values:
395
+ CREATING
396
+ ACTIVE
397
+ UPDATING
398
+ DELETING
399
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceStateInfoArgs']]] state_infos: Additional information about the state of the instance.
400
+ Structure is documented below.
401
+ :param pulumi.Input[str] transit_encryption_mode: Optional. Immutable. In-transit encryption mode of the instance.
402
+ Possible values:
403
+ TRANSIT_ENCRYPTION_DISABLED
404
+ SERVER_AUTHENTICATION
405
+ :param pulumi.Input[str] uid: Output only. System assigned, unique identifier for the instance.
406
+ :param pulumi.Input[str] update_time: Output only. Latest update timestamp of the instance.
407
+ :param pulumi.Input['InstanceZoneDistributionConfigArgs'] zone_distribution_config: Zone distribution configuration for allocation of instance resources.
408
+ Structure is documented below.
409
+ """
410
+ if authorization_mode is not None:
411
+ pulumi.set(__self__, "authorization_mode", authorization_mode)
412
+ if create_time is not None:
413
+ pulumi.set(__self__, "create_time", create_time)
414
+ if deletion_protection_enabled is not None:
415
+ pulumi.set(__self__, "deletion_protection_enabled", deletion_protection_enabled)
416
+ if desired_psc_auto_connections is not None:
417
+ pulumi.set(__self__, "desired_psc_auto_connections", desired_psc_auto_connections)
418
+ if discovery_endpoints is not None:
419
+ pulumi.set(__self__, "discovery_endpoints", discovery_endpoints)
420
+ if effective_labels is not None:
421
+ pulumi.set(__self__, "effective_labels", effective_labels)
422
+ if engine_configs is not None:
423
+ pulumi.set(__self__, "engine_configs", engine_configs)
424
+ if engine_version is not None:
425
+ pulumi.set(__self__, "engine_version", engine_version)
426
+ if instance_id is not None:
427
+ pulumi.set(__self__, "instance_id", instance_id)
428
+ if labels is not None:
429
+ pulumi.set(__self__, "labels", labels)
430
+ if location is not None:
431
+ pulumi.set(__self__, "location", location)
432
+ if name is not None:
433
+ pulumi.set(__self__, "name", name)
434
+ if node_configs is not None:
435
+ pulumi.set(__self__, "node_configs", node_configs)
436
+ if node_type is not None:
437
+ pulumi.set(__self__, "node_type", node_type)
438
+ if persistence_config is not None:
439
+ pulumi.set(__self__, "persistence_config", persistence_config)
440
+ if project is not None:
441
+ pulumi.set(__self__, "project", project)
442
+ if psc_auto_connections is not None:
443
+ pulumi.set(__self__, "psc_auto_connections", psc_auto_connections)
444
+ if pulumi_labels is not None:
445
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
446
+ if replica_count is not None:
447
+ pulumi.set(__self__, "replica_count", replica_count)
448
+ if shard_count is not None:
449
+ pulumi.set(__self__, "shard_count", shard_count)
450
+ if state is not None:
451
+ pulumi.set(__self__, "state", state)
452
+ if state_infos is not None:
453
+ pulumi.set(__self__, "state_infos", state_infos)
454
+ if transit_encryption_mode is not None:
455
+ pulumi.set(__self__, "transit_encryption_mode", transit_encryption_mode)
456
+ if uid is not None:
457
+ pulumi.set(__self__, "uid", uid)
458
+ if update_time is not None:
459
+ pulumi.set(__self__, "update_time", update_time)
460
+ if zone_distribution_config is not None:
461
+ pulumi.set(__self__, "zone_distribution_config", zone_distribution_config)
462
+
463
+ @property
464
+ @pulumi.getter(name="authorizationMode")
465
+ def authorization_mode(self) -> Optional[pulumi.Input[str]]:
466
+ """
467
+ Optional. Immutable. Authorization mode of the instance. Possible values:
468
+ AUTH_DISABLED
469
+ IAM_AUTH
470
+ """
471
+ return pulumi.get(self, "authorization_mode")
472
+
473
+ @authorization_mode.setter
474
+ def authorization_mode(self, value: Optional[pulumi.Input[str]]):
475
+ pulumi.set(self, "authorization_mode", value)
476
+
477
+ @property
478
+ @pulumi.getter(name="createTime")
479
+ def create_time(self) -> Optional[pulumi.Input[str]]:
480
+ """
481
+ Output only. Creation timestamp of the instance.
482
+ """
483
+ return pulumi.get(self, "create_time")
484
+
485
+ @create_time.setter
486
+ def create_time(self, value: Optional[pulumi.Input[str]]):
487
+ pulumi.set(self, "create_time", value)
488
+
489
+ @property
490
+ @pulumi.getter(name="deletionProtectionEnabled")
491
+ def deletion_protection_enabled(self) -> Optional[pulumi.Input[bool]]:
492
+ """
493
+ Optional. If set to true deletion of the instance will fail.
494
+ """
495
+ return pulumi.get(self, "deletion_protection_enabled")
496
+
497
+ @deletion_protection_enabled.setter
498
+ def deletion_protection_enabled(self, value: Optional[pulumi.Input[bool]]):
499
+ pulumi.set(self, "deletion_protection_enabled", value)
500
+
501
+ @property
502
+ @pulumi.getter(name="desiredPscAutoConnections")
503
+ def desired_psc_auto_connections(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]]:
504
+ """
505
+ Required. Immutable. User inputs for the auto-created PSC connections.
506
+ """
507
+ return pulumi.get(self, "desired_psc_auto_connections")
508
+
509
+ @desired_psc_auto_connections.setter
510
+ def desired_psc_auto_connections(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]]):
511
+ pulumi.set(self, "desired_psc_auto_connections", value)
512
+
513
+ @property
514
+ @pulumi.getter(name="discoveryEndpoints")
515
+ def discovery_endpoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDiscoveryEndpointArgs']]]]:
516
+ """
517
+ Output only. Endpoints clients can connect to the instance through. Currently only one
518
+ discovery endpoint is supported.
519
+ Structure is documented below.
520
+ """
521
+ return pulumi.get(self, "discovery_endpoints")
522
+
523
+ @discovery_endpoints.setter
524
+ def discovery_endpoints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDiscoveryEndpointArgs']]]]):
525
+ pulumi.set(self, "discovery_endpoints", value)
526
+
527
+ @property
528
+ @pulumi.getter(name="effectiveLabels")
529
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
530
+ """
531
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
532
+ """
533
+ return pulumi.get(self, "effective_labels")
534
+
535
+ @effective_labels.setter
536
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
537
+ pulumi.set(self, "effective_labels", value)
538
+
539
+ @property
540
+ @pulumi.getter(name="engineConfigs")
541
+ def engine_configs(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
542
+ """
543
+ Optional. User-provided engine configurations for the instance.
544
+ """
545
+ return pulumi.get(self, "engine_configs")
546
+
547
+ @engine_configs.setter
548
+ def engine_configs(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
549
+ pulumi.set(self, "engine_configs", value)
550
+
551
+ @property
552
+ @pulumi.getter(name="engineVersion")
553
+ def engine_version(self) -> Optional[pulumi.Input[str]]:
554
+ """
555
+ Optional. Immutable. Engine version of the instance.
556
+ """
557
+ return pulumi.get(self, "engine_version")
558
+
559
+ @engine_version.setter
560
+ def engine_version(self, value: Optional[pulumi.Input[str]]):
561
+ pulumi.set(self, "engine_version", value)
562
+
563
+ @property
564
+ @pulumi.getter(name="instanceId")
565
+ def instance_id(self) -> Optional[pulumi.Input[str]]:
566
+ """
567
+ Required. The ID to use for the instance, which will become the final component of
568
+ the instance's resource name.
569
+ This value is subject to the following restrictions:
570
+ * Must be 4-63 characters in length
571
+ * Must begin with a letter or digit
572
+ * Must contain only lowercase letters, digits, and hyphens
573
+ * Must not end with a hyphen
574
+ * Must be unique within a location
575
+
576
+
577
+ - - -
578
+ """
579
+ return pulumi.get(self, "instance_id")
580
+
581
+ @instance_id.setter
582
+ def instance_id(self, value: Optional[pulumi.Input[str]]):
583
+ pulumi.set(self, "instance_id", value)
584
+
585
+ @property
586
+ @pulumi.getter
587
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
588
+ """
589
+ Optional. Labels to represent user-provided metadata.
590
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
591
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
592
+ """
593
+ return pulumi.get(self, "labels")
594
+
595
+ @labels.setter
596
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
597
+ pulumi.set(self, "labels", value)
598
+
599
+ @property
600
+ @pulumi.getter
601
+ def location(self) -> Optional[pulumi.Input[str]]:
602
+ """
603
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
604
+ """
605
+ return pulumi.get(self, "location")
606
+
607
+ @location.setter
608
+ def location(self, value: Optional[pulumi.Input[str]]):
609
+ pulumi.set(self, "location", value)
610
+
611
+ @property
612
+ @pulumi.getter
613
+ def name(self) -> Optional[pulumi.Input[str]]:
614
+ """
615
+ Identifier. Unique name of the instance.
616
+ Format: projects/{project}/locations/{location}/instances/{instance}
617
+ """
618
+ return pulumi.get(self, "name")
619
+
620
+ @name.setter
621
+ def name(self, value: Optional[pulumi.Input[str]]):
622
+ pulumi.set(self, "name", value)
623
+
624
+ @property
625
+ @pulumi.getter(name="nodeConfigs")
626
+ def node_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceNodeConfigArgs']]]]:
627
+ """
628
+ Represents configuration for nodes of the instance.
629
+ Structure is documented below.
630
+ """
631
+ return pulumi.get(self, "node_configs")
632
+
633
+ @node_configs.setter
634
+ def node_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceNodeConfigArgs']]]]):
635
+ pulumi.set(self, "node_configs", value)
636
+
637
+ @property
638
+ @pulumi.getter(name="nodeType")
639
+ def node_type(self) -> Optional[pulumi.Input[str]]:
640
+ """
641
+ Optional. Immutable. Machine type for individual nodes of the instance.
642
+ Possible values:
643
+ SHARED_CORE_NANO
644
+ HIGHMEM_MEDIUM
645
+ HIGHMEM_XLARGE
646
+ STANDARD_SMALL
647
+ """
648
+ return pulumi.get(self, "node_type")
649
+
650
+ @node_type.setter
651
+ def node_type(self, value: Optional[pulumi.Input[str]]):
652
+ pulumi.set(self, "node_type", value)
653
+
654
+ @property
655
+ @pulumi.getter(name="persistenceConfig")
656
+ def persistence_config(self) -> Optional[pulumi.Input['InstancePersistenceConfigArgs']]:
657
+ """
658
+ Represents persistence configuration for a instance.
659
+ Structure is documented below.
660
+ """
661
+ return pulumi.get(self, "persistence_config")
662
+
663
+ @persistence_config.setter
664
+ def persistence_config(self, value: Optional[pulumi.Input['InstancePersistenceConfigArgs']]):
665
+ pulumi.set(self, "persistence_config", value)
666
+
667
+ @property
668
+ @pulumi.getter
669
+ def project(self) -> Optional[pulumi.Input[str]]:
670
+ """
671
+ The ID of the project in which the resource belongs.
672
+ If it is not provided, the provider project is used.
673
+ """
674
+ return pulumi.get(self, "project")
675
+
676
+ @project.setter
677
+ def project(self, value: Optional[pulumi.Input[str]]):
678
+ pulumi.set(self, "project", value)
679
+
680
+ @property
681
+ @pulumi.getter(name="pscAutoConnections")
682
+ def psc_auto_connections(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscAutoConnectionArgs']]]]:
683
+ """
684
+ Output only. User inputs and resource details of the auto-created PSC connections.
685
+ Structure is documented below.
686
+ """
687
+ return pulumi.get(self, "psc_auto_connections")
688
+
689
+ @psc_auto_connections.setter
690
+ def psc_auto_connections(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscAutoConnectionArgs']]]]):
691
+ pulumi.set(self, "psc_auto_connections", value)
692
+
693
+ @property
694
+ @pulumi.getter(name="pulumiLabels")
695
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
696
+ """
697
+ The combination of labels configured directly on the resource
698
+ and default labels configured on the provider.
699
+ """
700
+ return pulumi.get(self, "pulumi_labels")
701
+
702
+ @pulumi_labels.setter
703
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
704
+ pulumi.set(self, "pulumi_labels", value)
705
+
706
+ @property
707
+ @pulumi.getter(name="replicaCount")
708
+ def replica_count(self) -> Optional[pulumi.Input[int]]:
709
+ """
710
+ Optional. Number of replica nodes per shard. If omitted the default is 0 replicas.
711
+ """
712
+ return pulumi.get(self, "replica_count")
713
+
714
+ @replica_count.setter
715
+ def replica_count(self, value: Optional[pulumi.Input[int]]):
716
+ pulumi.set(self, "replica_count", value)
717
+
718
+ @property
719
+ @pulumi.getter(name="shardCount")
720
+ def shard_count(self) -> Optional[pulumi.Input[int]]:
721
+ """
722
+ Required. Number of shards for the instance.
723
+ """
724
+ return pulumi.get(self, "shard_count")
725
+
726
+ @shard_count.setter
727
+ def shard_count(self, value: Optional[pulumi.Input[int]]):
728
+ pulumi.set(self, "shard_count", value)
729
+
730
+ @property
731
+ @pulumi.getter
732
+ def state(self) -> Optional[pulumi.Input[str]]:
733
+ """
734
+ Output only. Current state of the instance.
735
+ Possible values:
736
+ CREATING
737
+ ACTIVE
738
+ UPDATING
739
+ DELETING
740
+ """
741
+ return pulumi.get(self, "state")
742
+
743
+ @state.setter
744
+ def state(self, value: Optional[pulumi.Input[str]]):
745
+ pulumi.set(self, "state", value)
746
+
747
+ @property
748
+ @pulumi.getter(name="stateInfos")
749
+ def state_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceStateInfoArgs']]]]:
750
+ """
751
+ Additional information about the state of the instance.
752
+ Structure is documented below.
753
+ """
754
+ return pulumi.get(self, "state_infos")
755
+
756
+ @state_infos.setter
757
+ def state_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceStateInfoArgs']]]]):
758
+ pulumi.set(self, "state_infos", value)
759
+
760
+ @property
761
+ @pulumi.getter(name="transitEncryptionMode")
762
+ def transit_encryption_mode(self) -> Optional[pulumi.Input[str]]:
763
+ """
764
+ Optional. Immutable. In-transit encryption mode of the instance.
765
+ Possible values:
766
+ TRANSIT_ENCRYPTION_DISABLED
767
+ SERVER_AUTHENTICATION
768
+ """
769
+ return pulumi.get(self, "transit_encryption_mode")
770
+
771
+ @transit_encryption_mode.setter
772
+ def transit_encryption_mode(self, value: Optional[pulumi.Input[str]]):
773
+ pulumi.set(self, "transit_encryption_mode", value)
774
+
775
+ @property
776
+ @pulumi.getter
777
+ def uid(self) -> Optional[pulumi.Input[str]]:
778
+ """
779
+ Output only. System assigned, unique identifier for the instance.
780
+ """
781
+ return pulumi.get(self, "uid")
782
+
783
+ @uid.setter
784
+ def uid(self, value: Optional[pulumi.Input[str]]):
785
+ pulumi.set(self, "uid", value)
786
+
787
+ @property
788
+ @pulumi.getter(name="updateTime")
789
+ def update_time(self) -> Optional[pulumi.Input[str]]:
790
+ """
791
+ Output only. Latest update timestamp of the instance.
792
+ """
793
+ return pulumi.get(self, "update_time")
794
+
795
+ @update_time.setter
796
+ def update_time(self, value: Optional[pulumi.Input[str]]):
797
+ pulumi.set(self, "update_time", value)
798
+
799
+ @property
800
+ @pulumi.getter(name="zoneDistributionConfig")
801
+ def zone_distribution_config(self) -> Optional[pulumi.Input['InstanceZoneDistributionConfigArgs']]:
802
+ """
803
+ Zone distribution configuration for allocation of instance resources.
804
+ Structure is documented below.
805
+ """
806
+ return pulumi.get(self, "zone_distribution_config")
807
+
808
+ @zone_distribution_config.setter
809
+ def zone_distribution_config(self, value: Optional[pulumi.Input['InstanceZoneDistributionConfigArgs']]):
810
+ pulumi.set(self, "zone_distribution_config", value)
811
+
812
+
813
+ class Instance(pulumi.CustomResource):
814
+ @overload
815
+ def __init__(__self__,
816
+ resource_name: str,
817
+ opts: Optional[pulumi.ResourceOptions] = None,
818
+ authorization_mode: Optional[pulumi.Input[str]] = None,
819
+ deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
820
+ desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]]] = None,
821
+ engine_configs: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
822
+ engine_version: Optional[pulumi.Input[str]] = None,
823
+ instance_id: Optional[pulumi.Input[str]] = None,
824
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
825
+ location: Optional[pulumi.Input[str]] = None,
826
+ node_type: Optional[pulumi.Input[str]] = None,
827
+ persistence_config: Optional[pulumi.Input[Union['InstancePersistenceConfigArgs', 'InstancePersistenceConfigArgsDict']]] = None,
828
+ project: Optional[pulumi.Input[str]] = None,
829
+ replica_count: Optional[pulumi.Input[int]] = None,
830
+ shard_count: Optional[pulumi.Input[int]] = None,
831
+ transit_encryption_mode: Optional[pulumi.Input[str]] = None,
832
+ zone_distribution_config: Optional[pulumi.Input[Union['InstanceZoneDistributionConfigArgs', 'InstanceZoneDistributionConfigArgsDict']]] = None,
833
+ __props__=None):
834
+ """
835
+ ## Example Usage
836
+
837
+ ### Memorystore Instance Basic
838
+
839
+ ```python
840
+ import pulumi
841
+ import pulumi_gcp as gcp
842
+
843
+ producer_net = gcp.compute.Network("producer_net",
844
+ name="my-network",
845
+ auto_create_subnetworks=False)
846
+ producer_subnet = gcp.compute.Subnetwork("producer_subnet",
847
+ name="my-subnet",
848
+ ip_cidr_range="10.0.0.248/29",
849
+ region="us-central1",
850
+ network=producer_net.id)
851
+ default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
852
+ name="my-policy",
853
+ location="us-central1",
854
+ service_class="gcp-memorystore",
855
+ description="my basic service connection policy",
856
+ network=producer_net.id,
857
+ psc_config={
858
+ "subnetworks": [producer_subnet.id],
859
+ })
860
+ project = gcp.organizations.get_project()
861
+ instance_basic = gcp.memorystore.Instance("instance-basic",
862
+ instance_id="basic-instance",
863
+ shard_count=3,
864
+ desired_psc_auto_connections=[{
865
+ "network": producer_net.id,
866
+ "project_id": project.project_id,
867
+ }],
868
+ location="us-central1",
869
+ deletion_protection_enabled=False,
870
+ opts = pulumi.ResourceOptions(depends_on=[default]))
871
+ ```
872
+ ### Memorystore Instance Full
873
+
874
+ ```python
875
+ import pulumi
876
+ import pulumi_gcp as gcp
877
+
878
+ producer_net = gcp.compute.Network("producer_net",
879
+ name="my-network",
880
+ auto_create_subnetworks=False)
881
+ producer_subnet = gcp.compute.Subnetwork("producer_subnet",
882
+ name="my-subnet",
883
+ ip_cidr_range="10.0.0.248/29",
884
+ region="us-central1",
885
+ network=producer_net.id)
886
+ default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
887
+ name="my-policy",
888
+ location="us-central1",
889
+ service_class="gcp-memorystore",
890
+ description="my basic service connection policy",
891
+ network=producer_net.id,
892
+ psc_config={
893
+ "subnetworks": [producer_subnet.id],
894
+ })
895
+ project = gcp.organizations.get_project()
896
+ instance_full = gcp.memorystore.Instance("instance-full",
897
+ instance_id="full-instance",
898
+ shard_count=3,
899
+ desired_psc_auto_connections=[{
900
+ "network": producer_net.id,
901
+ "project_id": project.project_id,
902
+ }],
903
+ location="us-central1",
904
+ replica_count=2,
905
+ node_type="SHARED_CORE_NANO",
906
+ transit_encryption_mode="TRANSIT_ENCRYPTION_DISABLED",
907
+ authorization_mode="AUTH_DISABLED",
908
+ engine_configs={
909
+ "maxmemory-policy": "volatile-ttl",
910
+ },
911
+ zone_distribution_config={
912
+ "mode": "SINGLE_ZONE",
913
+ "zone": "us-central1-b",
914
+ },
915
+ engine_version="VALKEY_7_2",
916
+ deletion_protection_enabled=False,
917
+ persistence_config={
918
+ "mode": "RDB",
919
+ "rdb_config": {
920
+ "rdb_snapshot_period": "ONE_HOUR",
921
+ "rdb_snapshot_start_time": "2024-10-02T15:01:23Z",
922
+ },
923
+ },
924
+ labels={
925
+ "abc": "xyz",
926
+ },
927
+ opts = pulumi.ResourceOptions(depends_on=[default]))
928
+ ```
929
+ ### Memorystore Instance Persistence Aof
930
+
931
+ ```python
932
+ import pulumi
933
+ import pulumi_gcp as gcp
934
+
935
+ producer_net = gcp.compute.Network("producer_net",
936
+ name="my-network",
937
+ auto_create_subnetworks=False)
938
+ producer_subnet = gcp.compute.Subnetwork("producer_subnet",
939
+ name="my-subnet",
940
+ ip_cidr_range="10.0.0.248/29",
941
+ region="us-central1",
942
+ network=producer_net.id)
943
+ default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
944
+ name="my-policy",
945
+ location="us-central1",
946
+ service_class="gcp-memorystore",
947
+ description="my basic service connection policy",
948
+ network=producer_net.id,
949
+ psc_config={
950
+ "subnetworks": [producer_subnet.id],
951
+ })
952
+ project = gcp.organizations.get_project()
953
+ instance_persistence_aof = gcp.memorystore.Instance("instance-persistence-aof",
954
+ instance_id="aof-instance",
955
+ shard_count=3,
956
+ desired_psc_auto_connections=[{
957
+ "network": producer_net.id,
958
+ "project_id": project.project_id,
959
+ }],
960
+ location="us-central1",
961
+ persistence_config={
962
+ "mode": "AOF",
963
+ "aof_config": {
964
+ "append_fsync": "EVERY_SEC",
965
+ },
966
+ },
967
+ deletion_protection_enabled=False,
968
+ opts = pulumi.ResourceOptions(depends_on=[default]))
969
+ ```
970
+
971
+ ## Import
972
+
973
+ Instance can be imported using any of these accepted formats:
974
+
975
+ * `projects/{{project}}/locations/{{location}}/instances/{{instance_id}}`
976
+
977
+ * `{{project}}/{{location}}/{{instance_id}}`
978
+
979
+ * `{{location}}/{{instance_id}}`
980
+
981
+ When using the `pulumi import` command, Instance can be imported using one of the formats above. For example:
982
+
983
+ ```sh
984
+ $ pulumi import gcp:memorystore/instance:Instance default projects/{{project}}/locations/{{location}}/instances/{{instance_id}}
985
+ ```
986
+
987
+ ```sh
988
+ $ pulumi import gcp:memorystore/instance:Instance default {{project}}/{{location}}/{{instance_id}}
989
+ ```
990
+
991
+ ```sh
992
+ $ pulumi import gcp:memorystore/instance:Instance default {{location}}/{{instance_id}}
993
+ ```
994
+
995
+ :param str resource_name: The name of the resource.
996
+ :param pulumi.ResourceOptions opts: Options for the resource.
997
+ :param pulumi.Input[str] authorization_mode: Optional. Immutable. Authorization mode of the instance. Possible values:
998
+ AUTH_DISABLED
999
+ IAM_AUTH
1000
+ :param pulumi.Input[bool] deletion_protection_enabled: Optional. If set to true deletion of the instance will fail.
1001
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]] desired_psc_auto_connections: Required. Immutable. User inputs for the auto-created PSC connections.
1002
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] engine_configs: Optional. User-provided engine configurations for the instance.
1003
+ :param pulumi.Input[str] engine_version: Optional. Immutable. Engine version of the instance.
1004
+ :param pulumi.Input[str] instance_id: Required. The ID to use for the instance, which will become the final component of
1005
+ the instance's resource name.
1006
+ This value is subject to the following restrictions:
1007
+ * Must be 4-63 characters in length
1008
+ * Must begin with a letter or digit
1009
+ * Must contain only lowercase letters, digits, and hyphens
1010
+ * Must not end with a hyphen
1011
+ * Must be unique within a location
1012
+
1013
+
1014
+ - - -
1015
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels to represent user-provided metadata.
1016
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1017
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1018
+ :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
1019
+ :param pulumi.Input[str] node_type: Optional. Immutable. Machine type for individual nodes of the instance.
1020
+ Possible values:
1021
+ SHARED_CORE_NANO
1022
+ HIGHMEM_MEDIUM
1023
+ HIGHMEM_XLARGE
1024
+ STANDARD_SMALL
1025
+ :param pulumi.Input[Union['InstancePersistenceConfigArgs', 'InstancePersistenceConfigArgsDict']] persistence_config: Represents persistence configuration for a instance.
1026
+ Structure is documented below.
1027
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1028
+ If it is not provided, the provider project is used.
1029
+ :param pulumi.Input[int] replica_count: Optional. Number of replica nodes per shard. If omitted the default is 0 replicas.
1030
+ :param pulumi.Input[int] shard_count: Required. Number of shards for the instance.
1031
+ :param pulumi.Input[str] transit_encryption_mode: Optional. Immutable. In-transit encryption mode of the instance.
1032
+ Possible values:
1033
+ TRANSIT_ENCRYPTION_DISABLED
1034
+ SERVER_AUTHENTICATION
1035
+ :param pulumi.Input[Union['InstanceZoneDistributionConfigArgs', 'InstanceZoneDistributionConfigArgsDict']] zone_distribution_config: Zone distribution configuration for allocation of instance resources.
1036
+ Structure is documented below.
1037
+ """
1038
+ ...
1039
+ @overload
1040
+ def __init__(__self__,
1041
+ resource_name: str,
1042
+ args: InstanceArgs,
1043
+ opts: Optional[pulumi.ResourceOptions] = None):
1044
+ """
1045
+ ## Example Usage
1046
+
1047
+ ### Memorystore Instance Basic
1048
+
1049
+ ```python
1050
+ import pulumi
1051
+ import pulumi_gcp as gcp
1052
+
1053
+ producer_net = gcp.compute.Network("producer_net",
1054
+ name="my-network",
1055
+ auto_create_subnetworks=False)
1056
+ producer_subnet = gcp.compute.Subnetwork("producer_subnet",
1057
+ name="my-subnet",
1058
+ ip_cidr_range="10.0.0.248/29",
1059
+ region="us-central1",
1060
+ network=producer_net.id)
1061
+ default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
1062
+ name="my-policy",
1063
+ location="us-central1",
1064
+ service_class="gcp-memorystore",
1065
+ description="my basic service connection policy",
1066
+ network=producer_net.id,
1067
+ psc_config={
1068
+ "subnetworks": [producer_subnet.id],
1069
+ })
1070
+ project = gcp.organizations.get_project()
1071
+ instance_basic = gcp.memorystore.Instance("instance-basic",
1072
+ instance_id="basic-instance",
1073
+ shard_count=3,
1074
+ desired_psc_auto_connections=[{
1075
+ "network": producer_net.id,
1076
+ "project_id": project.project_id,
1077
+ }],
1078
+ location="us-central1",
1079
+ deletion_protection_enabled=False,
1080
+ opts = pulumi.ResourceOptions(depends_on=[default]))
1081
+ ```
1082
+ ### Memorystore Instance Full
1083
+
1084
+ ```python
1085
+ import pulumi
1086
+ import pulumi_gcp as gcp
1087
+
1088
+ producer_net = gcp.compute.Network("producer_net",
1089
+ name="my-network",
1090
+ auto_create_subnetworks=False)
1091
+ producer_subnet = gcp.compute.Subnetwork("producer_subnet",
1092
+ name="my-subnet",
1093
+ ip_cidr_range="10.0.0.248/29",
1094
+ region="us-central1",
1095
+ network=producer_net.id)
1096
+ default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
1097
+ name="my-policy",
1098
+ location="us-central1",
1099
+ service_class="gcp-memorystore",
1100
+ description="my basic service connection policy",
1101
+ network=producer_net.id,
1102
+ psc_config={
1103
+ "subnetworks": [producer_subnet.id],
1104
+ })
1105
+ project = gcp.organizations.get_project()
1106
+ instance_full = gcp.memorystore.Instance("instance-full",
1107
+ instance_id="full-instance",
1108
+ shard_count=3,
1109
+ desired_psc_auto_connections=[{
1110
+ "network": producer_net.id,
1111
+ "project_id": project.project_id,
1112
+ }],
1113
+ location="us-central1",
1114
+ replica_count=2,
1115
+ node_type="SHARED_CORE_NANO",
1116
+ transit_encryption_mode="TRANSIT_ENCRYPTION_DISABLED",
1117
+ authorization_mode="AUTH_DISABLED",
1118
+ engine_configs={
1119
+ "maxmemory-policy": "volatile-ttl",
1120
+ },
1121
+ zone_distribution_config={
1122
+ "mode": "SINGLE_ZONE",
1123
+ "zone": "us-central1-b",
1124
+ },
1125
+ engine_version="VALKEY_7_2",
1126
+ deletion_protection_enabled=False,
1127
+ persistence_config={
1128
+ "mode": "RDB",
1129
+ "rdb_config": {
1130
+ "rdb_snapshot_period": "ONE_HOUR",
1131
+ "rdb_snapshot_start_time": "2024-10-02T15:01:23Z",
1132
+ },
1133
+ },
1134
+ labels={
1135
+ "abc": "xyz",
1136
+ },
1137
+ opts = pulumi.ResourceOptions(depends_on=[default]))
1138
+ ```
1139
+ ### Memorystore Instance Persistence Aof
1140
+
1141
+ ```python
1142
+ import pulumi
1143
+ import pulumi_gcp as gcp
1144
+
1145
+ producer_net = gcp.compute.Network("producer_net",
1146
+ name="my-network",
1147
+ auto_create_subnetworks=False)
1148
+ producer_subnet = gcp.compute.Subnetwork("producer_subnet",
1149
+ name="my-subnet",
1150
+ ip_cidr_range="10.0.0.248/29",
1151
+ region="us-central1",
1152
+ network=producer_net.id)
1153
+ default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
1154
+ name="my-policy",
1155
+ location="us-central1",
1156
+ service_class="gcp-memorystore",
1157
+ description="my basic service connection policy",
1158
+ network=producer_net.id,
1159
+ psc_config={
1160
+ "subnetworks": [producer_subnet.id],
1161
+ })
1162
+ project = gcp.organizations.get_project()
1163
+ instance_persistence_aof = gcp.memorystore.Instance("instance-persistence-aof",
1164
+ instance_id="aof-instance",
1165
+ shard_count=3,
1166
+ desired_psc_auto_connections=[{
1167
+ "network": producer_net.id,
1168
+ "project_id": project.project_id,
1169
+ }],
1170
+ location="us-central1",
1171
+ persistence_config={
1172
+ "mode": "AOF",
1173
+ "aof_config": {
1174
+ "append_fsync": "EVERY_SEC",
1175
+ },
1176
+ },
1177
+ deletion_protection_enabled=False,
1178
+ opts = pulumi.ResourceOptions(depends_on=[default]))
1179
+ ```
1180
+
1181
+ ## Import
1182
+
1183
+ Instance can be imported using any of these accepted formats:
1184
+
1185
+ * `projects/{{project}}/locations/{{location}}/instances/{{instance_id}}`
1186
+
1187
+ * `{{project}}/{{location}}/{{instance_id}}`
1188
+
1189
+ * `{{location}}/{{instance_id}}`
1190
+
1191
+ When using the `pulumi import` command, Instance can be imported using one of the formats above. For example:
1192
+
1193
+ ```sh
1194
+ $ pulumi import gcp:memorystore/instance:Instance default projects/{{project}}/locations/{{location}}/instances/{{instance_id}}
1195
+ ```
1196
+
1197
+ ```sh
1198
+ $ pulumi import gcp:memorystore/instance:Instance default {{project}}/{{location}}/{{instance_id}}
1199
+ ```
1200
+
1201
+ ```sh
1202
+ $ pulumi import gcp:memorystore/instance:Instance default {{location}}/{{instance_id}}
1203
+ ```
1204
+
1205
+ :param str resource_name: The name of the resource.
1206
+ :param InstanceArgs args: The arguments to use to populate this resource's properties.
1207
+ :param pulumi.ResourceOptions opts: Options for the resource.
1208
+ """
1209
+ ...
1210
+ def __init__(__self__, resource_name: str, *args, **kwargs):
1211
+ resource_args, opts = _utilities.get_resource_args_opts(InstanceArgs, pulumi.ResourceOptions, *args, **kwargs)
1212
+ if resource_args is not None:
1213
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
1214
+ else:
1215
+ __self__._internal_init(resource_name, *args, **kwargs)
1216
+
1217
+ def _internal_init(__self__,
1218
+ resource_name: str,
1219
+ opts: Optional[pulumi.ResourceOptions] = None,
1220
+ authorization_mode: Optional[pulumi.Input[str]] = None,
1221
+ deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
1222
+ desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]]] = None,
1223
+ engine_configs: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1224
+ engine_version: Optional[pulumi.Input[str]] = None,
1225
+ instance_id: Optional[pulumi.Input[str]] = None,
1226
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1227
+ location: Optional[pulumi.Input[str]] = None,
1228
+ node_type: Optional[pulumi.Input[str]] = None,
1229
+ persistence_config: Optional[pulumi.Input[Union['InstancePersistenceConfigArgs', 'InstancePersistenceConfigArgsDict']]] = None,
1230
+ project: Optional[pulumi.Input[str]] = None,
1231
+ replica_count: Optional[pulumi.Input[int]] = None,
1232
+ shard_count: Optional[pulumi.Input[int]] = None,
1233
+ transit_encryption_mode: Optional[pulumi.Input[str]] = None,
1234
+ zone_distribution_config: Optional[pulumi.Input[Union['InstanceZoneDistributionConfigArgs', 'InstanceZoneDistributionConfigArgsDict']]] = None,
1235
+ __props__=None):
1236
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1237
+ if not isinstance(opts, pulumi.ResourceOptions):
1238
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
1239
+ if opts.id is None:
1240
+ if __props__ is not None:
1241
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
1242
+ __props__ = InstanceArgs.__new__(InstanceArgs)
1243
+
1244
+ __props__.__dict__["authorization_mode"] = authorization_mode
1245
+ __props__.__dict__["deletion_protection_enabled"] = deletion_protection_enabled
1246
+ if desired_psc_auto_connections is None and not opts.urn:
1247
+ raise TypeError("Missing required property 'desired_psc_auto_connections'")
1248
+ __props__.__dict__["desired_psc_auto_connections"] = desired_psc_auto_connections
1249
+ __props__.__dict__["engine_configs"] = engine_configs
1250
+ __props__.__dict__["engine_version"] = engine_version
1251
+ if instance_id is None and not opts.urn:
1252
+ raise TypeError("Missing required property 'instance_id'")
1253
+ __props__.__dict__["instance_id"] = instance_id
1254
+ __props__.__dict__["labels"] = labels
1255
+ if location is None and not opts.urn:
1256
+ raise TypeError("Missing required property 'location'")
1257
+ __props__.__dict__["location"] = location
1258
+ __props__.__dict__["node_type"] = node_type
1259
+ __props__.__dict__["persistence_config"] = persistence_config
1260
+ __props__.__dict__["project"] = project
1261
+ __props__.__dict__["replica_count"] = replica_count
1262
+ if shard_count is None and not opts.urn:
1263
+ raise TypeError("Missing required property 'shard_count'")
1264
+ __props__.__dict__["shard_count"] = shard_count
1265
+ __props__.__dict__["transit_encryption_mode"] = transit_encryption_mode
1266
+ __props__.__dict__["zone_distribution_config"] = zone_distribution_config
1267
+ __props__.__dict__["create_time"] = None
1268
+ __props__.__dict__["discovery_endpoints"] = None
1269
+ __props__.__dict__["effective_labels"] = None
1270
+ __props__.__dict__["name"] = None
1271
+ __props__.__dict__["node_configs"] = None
1272
+ __props__.__dict__["psc_auto_connections"] = None
1273
+ __props__.__dict__["pulumi_labels"] = None
1274
+ __props__.__dict__["state"] = None
1275
+ __props__.__dict__["state_infos"] = None
1276
+ __props__.__dict__["uid"] = None
1277
+ __props__.__dict__["update_time"] = None
1278
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
1279
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
1280
+ super(Instance, __self__).__init__(
1281
+ 'gcp:memorystore/instance:Instance',
1282
+ resource_name,
1283
+ __props__,
1284
+ opts)
1285
+
1286
+ @staticmethod
1287
+ def get(resource_name: str,
1288
+ id: pulumi.Input[str],
1289
+ opts: Optional[pulumi.ResourceOptions] = None,
1290
+ authorization_mode: Optional[pulumi.Input[str]] = None,
1291
+ create_time: Optional[pulumi.Input[str]] = None,
1292
+ deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
1293
+ desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]]] = None,
1294
+ discovery_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceDiscoveryEndpointArgs', 'InstanceDiscoveryEndpointArgsDict']]]]] = None,
1295
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1296
+ engine_configs: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1297
+ engine_version: Optional[pulumi.Input[str]] = None,
1298
+ instance_id: Optional[pulumi.Input[str]] = None,
1299
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1300
+ location: Optional[pulumi.Input[str]] = None,
1301
+ name: Optional[pulumi.Input[str]] = None,
1302
+ node_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceNodeConfigArgs', 'InstanceNodeConfigArgsDict']]]]] = None,
1303
+ node_type: Optional[pulumi.Input[str]] = None,
1304
+ persistence_config: Optional[pulumi.Input[Union['InstancePersistenceConfigArgs', 'InstancePersistenceConfigArgsDict']]] = None,
1305
+ project: Optional[pulumi.Input[str]] = None,
1306
+ psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstancePscAutoConnectionArgs', 'InstancePscAutoConnectionArgsDict']]]]] = None,
1307
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1308
+ replica_count: Optional[pulumi.Input[int]] = None,
1309
+ shard_count: Optional[pulumi.Input[int]] = None,
1310
+ state: Optional[pulumi.Input[str]] = None,
1311
+ state_infos: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceStateInfoArgs', 'InstanceStateInfoArgsDict']]]]] = None,
1312
+ transit_encryption_mode: Optional[pulumi.Input[str]] = None,
1313
+ uid: Optional[pulumi.Input[str]] = None,
1314
+ update_time: Optional[pulumi.Input[str]] = None,
1315
+ zone_distribution_config: Optional[pulumi.Input[Union['InstanceZoneDistributionConfigArgs', 'InstanceZoneDistributionConfigArgsDict']]] = None) -> 'Instance':
1316
+ """
1317
+ Get an existing Instance resource's state with the given name, id, and optional extra
1318
+ properties used to qualify the lookup.
1319
+
1320
+ :param str resource_name: The unique name of the resulting resource.
1321
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1322
+ :param pulumi.ResourceOptions opts: Options for the resource.
1323
+ :param pulumi.Input[str] authorization_mode: Optional. Immutable. Authorization mode of the instance. Possible values:
1324
+ AUTH_DISABLED
1325
+ IAM_AUTH
1326
+ :param pulumi.Input[str] create_time: Output only. Creation timestamp of the instance.
1327
+ :param pulumi.Input[bool] deletion_protection_enabled: Optional. If set to true deletion of the instance will fail.
1328
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]] desired_psc_auto_connections: Required. Immutable. User inputs for the auto-created PSC connections.
1329
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceDiscoveryEndpointArgs', 'InstanceDiscoveryEndpointArgsDict']]]] discovery_endpoints: Output only. Endpoints clients can connect to the instance through. Currently only one
1330
+ discovery endpoint is supported.
1331
+ Structure is documented below.
1332
+ :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.
1333
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] engine_configs: Optional. User-provided engine configurations for the instance.
1334
+ :param pulumi.Input[str] engine_version: Optional. Immutable. Engine version of the instance.
1335
+ :param pulumi.Input[str] instance_id: Required. The ID to use for the instance, which will become the final component of
1336
+ the instance's resource name.
1337
+ This value is subject to the following restrictions:
1338
+ * Must be 4-63 characters in length
1339
+ * Must begin with a letter or digit
1340
+ * Must contain only lowercase letters, digits, and hyphens
1341
+ * Must not end with a hyphen
1342
+ * Must be unique within a location
1343
+
1344
+
1345
+ - - -
1346
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels to represent user-provided metadata.
1347
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1348
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1349
+ :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
1350
+ :param pulumi.Input[str] name: Identifier. Unique name of the instance.
1351
+ Format: projects/{project}/locations/{location}/instances/{instance}
1352
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceNodeConfigArgs', 'InstanceNodeConfigArgsDict']]]] node_configs: Represents configuration for nodes of the instance.
1353
+ Structure is documented below.
1354
+ :param pulumi.Input[str] node_type: Optional. Immutable. Machine type for individual nodes of the instance.
1355
+ Possible values:
1356
+ SHARED_CORE_NANO
1357
+ HIGHMEM_MEDIUM
1358
+ HIGHMEM_XLARGE
1359
+ STANDARD_SMALL
1360
+ :param pulumi.Input[Union['InstancePersistenceConfigArgs', 'InstancePersistenceConfigArgsDict']] persistence_config: Represents persistence configuration for a instance.
1361
+ Structure is documented below.
1362
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1363
+ If it is not provided, the provider project is used.
1364
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstancePscAutoConnectionArgs', 'InstancePscAutoConnectionArgsDict']]]] psc_auto_connections: Output only. User inputs and resource details of the auto-created PSC connections.
1365
+ Structure is documented below.
1366
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
1367
+ and default labels configured on the provider.
1368
+ :param pulumi.Input[int] replica_count: Optional. Number of replica nodes per shard. If omitted the default is 0 replicas.
1369
+ :param pulumi.Input[int] shard_count: Required. Number of shards for the instance.
1370
+ :param pulumi.Input[str] state: Output only. Current state of the instance.
1371
+ Possible values:
1372
+ CREATING
1373
+ ACTIVE
1374
+ UPDATING
1375
+ DELETING
1376
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceStateInfoArgs', 'InstanceStateInfoArgsDict']]]] state_infos: Additional information about the state of the instance.
1377
+ Structure is documented below.
1378
+ :param pulumi.Input[str] transit_encryption_mode: Optional. Immutable. In-transit encryption mode of the instance.
1379
+ Possible values:
1380
+ TRANSIT_ENCRYPTION_DISABLED
1381
+ SERVER_AUTHENTICATION
1382
+ :param pulumi.Input[str] uid: Output only. System assigned, unique identifier for the instance.
1383
+ :param pulumi.Input[str] update_time: Output only. Latest update timestamp of the instance.
1384
+ :param pulumi.Input[Union['InstanceZoneDistributionConfigArgs', 'InstanceZoneDistributionConfigArgsDict']] zone_distribution_config: Zone distribution configuration for allocation of instance resources.
1385
+ Structure is documented below.
1386
+ """
1387
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1388
+
1389
+ __props__ = _InstanceState.__new__(_InstanceState)
1390
+
1391
+ __props__.__dict__["authorization_mode"] = authorization_mode
1392
+ __props__.__dict__["create_time"] = create_time
1393
+ __props__.__dict__["deletion_protection_enabled"] = deletion_protection_enabled
1394
+ __props__.__dict__["desired_psc_auto_connections"] = desired_psc_auto_connections
1395
+ __props__.__dict__["discovery_endpoints"] = discovery_endpoints
1396
+ __props__.__dict__["effective_labels"] = effective_labels
1397
+ __props__.__dict__["engine_configs"] = engine_configs
1398
+ __props__.__dict__["engine_version"] = engine_version
1399
+ __props__.__dict__["instance_id"] = instance_id
1400
+ __props__.__dict__["labels"] = labels
1401
+ __props__.__dict__["location"] = location
1402
+ __props__.__dict__["name"] = name
1403
+ __props__.__dict__["node_configs"] = node_configs
1404
+ __props__.__dict__["node_type"] = node_type
1405
+ __props__.__dict__["persistence_config"] = persistence_config
1406
+ __props__.__dict__["project"] = project
1407
+ __props__.__dict__["psc_auto_connections"] = psc_auto_connections
1408
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
1409
+ __props__.__dict__["replica_count"] = replica_count
1410
+ __props__.__dict__["shard_count"] = shard_count
1411
+ __props__.__dict__["state"] = state
1412
+ __props__.__dict__["state_infos"] = state_infos
1413
+ __props__.__dict__["transit_encryption_mode"] = transit_encryption_mode
1414
+ __props__.__dict__["uid"] = uid
1415
+ __props__.__dict__["update_time"] = update_time
1416
+ __props__.__dict__["zone_distribution_config"] = zone_distribution_config
1417
+ return Instance(resource_name, opts=opts, __props__=__props__)
1418
+
1419
+ @property
1420
+ @pulumi.getter(name="authorizationMode")
1421
+ def authorization_mode(self) -> pulumi.Output[str]:
1422
+ """
1423
+ Optional. Immutable. Authorization mode of the instance. Possible values:
1424
+ AUTH_DISABLED
1425
+ IAM_AUTH
1426
+ """
1427
+ return pulumi.get(self, "authorization_mode")
1428
+
1429
+ @property
1430
+ @pulumi.getter(name="createTime")
1431
+ def create_time(self) -> pulumi.Output[str]:
1432
+ """
1433
+ Output only. Creation timestamp of the instance.
1434
+ """
1435
+ return pulumi.get(self, "create_time")
1436
+
1437
+ @property
1438
+ @pulumi.getter(name="deletionProtectionEnabled")
1439
+ def deletion_protection_enabled(self) -> pulumi.Output[Optional[bool]]:
1440
+ """
1441
+ Optional. If set to true deletion of the instance will fail.
1442
+ """
1443
+ return pulumi.get(self, "deletion_protection_enabled")
1444
+
1445
+ @property
1446
+ @pulumi.getter(name="desiredPscAutoConnections")
1447
+ def desired_psc_auto_connections(self) -> pulumi.Output[Sequence['outputs.InstanceDesiredPscAutoConnection']]:
1448
+ """
1449
+ Required. Immutable. User inputs for the auto-created PSC connections.
1450
+ """
1451
+ return pulumi.get(self, "desired_psc_auto_connections")
1452
+
1453
+ @property
1454
+ @pulumi.getter(name="discoveryEndpoints")
1455
+ def discovery_endpoints(self) -> pulumi.Output[Sequence['outputs.InstanceDiscoveryEndpoint']]:
1456
+ """
1457
+ Output only. Endpoints clients can connect to the instance through. Currently only one
1458
+ discovery endpoint is supported.
1459
+ Structure is documented below.
1460
+ """
1461
+ return pulumi.get(self, "discovery_endpoints")
1462
+
1463
+ @property
1464
+ @pulumi.getter(name="effectiveLabels")
1465
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
1466
+ """
1467
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1468
+ """
1469
+ return pulumi.get(self, "effective_labels")
1470
+
1471
+ @property
1472
+ @pulumi.getter(name="engineConfigs")
1473
+ def engine_configs(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1474
+ """
1475
+ Optional. User-provided engine configurations for the instance.
1476
+ """
1477
+ return pulumi.get(self, "engine_configs")
1478
+
1479
+ @property
1480
+ @pulumi.getter(name="engineVersion")
1481
+ def engine_version(self) -> pulumi.Output[str]:
1482
+ """
1483
+ Optional. Immutable. Engine version of the instance.
1484
+ """
1485
+ return pulumi.get(self, "engine_version")
1486
+
1487
+ @property
1488
+ @pulumi.getter(name="instanceId")
1489
+ def instance_id(self) -> pulumi.Output[str]:
1490
+ """
1491
+ Required. The ID to use for the instance, which will become the final component of
1492
+ the instance's resource name.
1493
+ This value is subject to the following restrictions:
1494
+ * Must be 4-63 characters in length
1495
+ * Must begin with a letter or digit
1496
+ * Must contain only lowercase letters, digits, and hyphens
1497
+ * Must not end with a hyphen
1498
+ * Must be unique within a location
1499
+
1500
+
1501
+ - - -
1502
+ """
1503
+ return pulumi.get(self, "instance_id")
1504
+
1505
+ @property
1506
+ @pulumi.getter
1507
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1508
+ """
1509
+ Optional. Labels to represent user-provided metadata.
1510
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1511
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1512
+ """
1513
+ return pulumi.get(self, "labels")
1514
+
1515
+ @property
1516
+ @pulumi.getter
1517
+ def location(self) -> pulumi.Output[str]:
1518
+ """
1519
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
1520
+ """
1521
+ return pulumi.get(self, "location")
1522
+
1523
+ @property
1524
+ @pulumi.getter
1525
+ def name(self) -> pulumi.Output[str]:
1526
+ """
1527
+ Identifier. Unique name of the instance.
1528
+ Format: projects/{project}/locations/{location}/instances/{instance}
1529
+ """
1530
+ return pulumi.get(self, "name")
1531
+
1532
+ @property
1533
+ @pulumi.getter(name="nodeConfigs")
1534
+ def node_configs(self) -> pulumi.Output[Sequence['outputs.InstanceNodeConfig']]:
1535
+ """
1536
+ Represents configuration for nodes of the instance.
1537
+ Structure is documented below.
1538
+ """
1539
+ return pulumi.get(self, "node_configs")
1540
+
1541
+ @property
1542
+ @pulumi.getter(name="nodeType")
1543
+ def node_type(self) -> pulumi.Output[str]:
1544
+ """
1545
+ Optional. Immutable. Machine type for individual nodes of the instance.
1546
+ Possible values:
1547
+ SHARED_CORE_NANO
1548
+ HIGHMEM_MEDIUM
1549
+ HIGHMEM_XLARGE
1550
+ STANDARD_SMALL
1551
+ """
1552
+ return pulumi.get(self, "node_type")
1553
+
1554
+ @property
1555
+ @pulumi.getter(name="persistenceConfig")
1556
+ def persistence_config(self) -> pulumi.Output['outputs.InstancePersistenceConfig']:
1557
+ """
1558
+ Represents persistence configuration for a instance.
1559
+ Structure is documented below.
1560
+ """
1561
+ return pulumi.get(self, "persistence_config")
1562
+
1563
+ @property
1564
+ @pulumi.getter
1565
+ def project(self) -> pulumi.Output[str]:
1566
+ """
1567
+ The ID of the project in which the resource belongs.
1568
+ If it is not provided, the provider project is used.
1569
+ """
1570
+ return pulumi.get(self, "project")
1571
+
1572
+ @property
1573
+ @pulumi.getter(name="pscAutoConnections")
1574
+ def psc_auto_connections(self) -> pulumi.Output[Sequence['outputs.InstancePscAutoConnection']]:
1575
+ """
1576
+ Output only. User inputs and resource details of the auto-created PSC connections.
1577
+ Structure is documented below.
1578
+ """
1579
+ return pulumi.get(self, "psc_auto_connections")
1580
+
1581
+ @property
1582
+ @pulumi.getter(name="pulumiLabels")
1583
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
1584
+ """
1585
+ The combination of labels configured directly on the resource
1586
+ and default labels configured on the provider.
1587
+ """
1588
+ return pulumi.get(self, "pulumi_labels")
1589
+
1590
+ @property
1591
+ @pulumi.getter(name="replicaCount")
1592
+ def replica_count(self) -> pulumi.Output[int]:
1593
+ """
1594
+ Optional. Number of replica nodes per shard. If omitted the default is 0 replicas.
1595
+ """
1596
+ return pulumi.get(self, "replica_count")
1597
+
1598
+ @property
1599
+ @pulumi.getter(name="shardCount")
1600
+ def shard_count(self) -> pulumi.Output[int]:
1601
+ """
1602
+ Required. Number of shards for the instance.
1603
+ """
1604
+ return pulumi.get(self, "shard_count")
1605
+
1606
+ @property
1607
+ @pulumi.getter
1608
+ def state(self) -> pulumi.Output[str]:
1609
+ """
1610
+ Output only. Current state of the instance.
1611
+ Possible values:
1612
+ CREATING
1613
+ ACTIVE
1614
+ UPDATING
1615
+ DELETING
1616
+ """
1617
+ return pulumi.get(self, "state")
1618
+
1619
+ @property
1620
+ @pulumi.getter(name="stateInfos")
1621
+ def state_infos(self) -> pulumi.Output[Sequence['outputs.InstanceStateInfo']]:
1622
+ """
1623
+ Additional information about the state of the instance.
1624
+ Structure is documented below.
1625
+ """
1626
+ return pulumi.get(self, "state_infos")
1627
+
1628
+ @property
1629
+ @pulumi.getter(name="transitEncryptionMode")
1630
+ def transit_encryption_mode(self) -> pulumi.Output[str]:
1631
+ """
1632
+ Optional. Immutable. In-transit encryption mode of the instance.
1633
+ Possible values:
1634
+ TRANSIT_ENCRYPTION_DISABLED
1635
+ SERVER_AUTHENTICATION
1636
+ """
1637
+ return pulumi.get(self, "transit_encryption_mode")
1638
+
1639
+ @property
1640
+ @pulumi.getter
1641
+ def uid(self) -> pulumi.Output[str]:
1642
+ """
1643
+ Output only. System assigned, unique identifier for the instance.
1644
+ """
1645
+ return pulumi.get(self, "uid")
1646
+
1647
+ @property
1648
+ @pulumi.getter(name="updateTime")
1649
+ def update_time(self) -> pulumi.Output[str]:
1650
+ """
1651
+ Output only. Latest update timestamp of the instance.
1652
+ """
1653
+ return pulumi.get(self, "update_time")
1654
+
1655
+ @property
1656
+ @pulumi.getter(name="zoneDistributionConfig")
1657
+ def zone_distribution_config(self) -> pulumi.Output['outputs.InstanceZoneDistributionConfig']:
1658
+ """
1659
+ Zone distribution configuration for allocation of instance resources.
1660
+ Structure is documented below.
1661
+ """
1662
+ return pulumi.get(self, "zone_distribution_config")
1663
+