pulumi-gcp 8.16.0a1738080576__py3-none-any.whl → 8.17.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. pulumi_gcp/__init__.py +91 -0
  2. pulumi_gcp/alloydb/cluster.py +75 -7
  3. pulumi_gcp/apigee/_inputs.py +91 -0
  4. pulumi_gcp/apigee/endpoint_attachment.py +0 -64
  5. pulumi_gcp/apigee/environment.py +54 -0
  6. pulumi_gcp/apigee/outputs.py +54 -0
  7. pulumi_gcp/apihub/__init__.py +10 -0
  8. pulumi_gcp/apihub/_inputs.py +154 -0
  9. pulumi_gcp/apihub/api_hub_instance.py +784 -0
  10. pulumi_gcp/apihub/outputs.py +124 -0
  11. pulumi_gcp/chronicle/__init__.py +1 -0
  12. pulumi_gcp/chronicle/_inputs.py +124 -0
  13. pulumi_gcp/chronicle/outputs.py +112 -0
  14. pulumi_gcp/chronicle/retrohunt.py +645 -0
  15. pulumi_gcp/cloudrunv2/_inputs.py +197 -0
  16. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  17. pulumi_gcp/cloudrunv2/outputs.py +256 -0
  18. pulumi_gcp/cloudrunv2/service.py +159 -0
  19. pulumi_gcp/colab/__init__.py +5 -0
  20. pulumi_gcp/colab/_inputs.py +131 -0
  21. pulumi_gcp/colab/get_runtime_template_iam_policy.py +182 -0
  22. pulumi_gcp/colab/outputs.py +92 -0
  23. pulumi_gcp/colab/runtime.py +696 -0
  24. pulumi_gcp/colab/runtime_template_iam_binding.py +828 -0
  25. pulumi_gcp/colab/runtime_template_iam_member.py +828 -0
  26. pulumi_gcp/colab/runtime_template_iam_policy.py +667 -0
  27. pulumi_gcp/compute/__init__.py +4 -0
  28. pulumi_gcp/compute/_inputs.py +526 -0
  29. pulumi_gcp/compute/firewall_policy_rule.py +104 -22
  30. pulumi_gcp/compute/firewall_policy_with_rules.py +114 -42
  31. pulumi_gcp/compute/get_instance_template_iam_policy.py +159 -0
  32. pulumi_gcp/compute/instance_template_iam_binding.py +998 -0
  33. pulumi_gcp/compute/instance_template_iam_member.py +998 -0
  34. pulumi_gcp/compute/instance_template_iam_policy.py +817 -0
  35. pulumi_gcp/compute/interconnect_attachment.py +189 -2
  36. pulumi_gcp/compute/network_firewall_policy_rule.py +122 -10
  37. pulumi_gcp/compute/network_firewall_policy_with_rules.py +116 -44
  38. pulumi_gcp/compute/outputs.py +352 -0
  39. pulumi_gcp/compute/project_metadata_item.py +12 -0
  40. pulumi_gcp/compute/public_advertised_prefix.py +87 -0
  41. pulumi_gcp/compute/region_network_firewall_policy_rule.py +130 -10
  42. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +104 -32
  43. pulumi_gcp/compute/router_peer.py +115 -3
  44. pulumi_gcp/config/__init__.pyi +2 -0
  45. pulumi_gcp/config/vars.py +4 -0
  46. pulumi_gcp/filestore/get_instance.py +12 -1
  47. pulumi_gcp/filestore/instance.py +75 -0
  48. pulumi_gcp/gemini/code_repository_index.py +29 -33
  49. pulumi_gcp/gemini/get_repository_group_iam_policy.py +28 -2
  50. pulumi_gcp/gemini/repository_group.py +76 -26
  51. pulumi_gcp/gemini/repository_group_iam_binding.py +258 -0
  52. pulumi_gcp/gemini/repository_group_iam_member.py +258 -0
  53. pulumi_gcp/gemini/repository_group_iam_policy.py +258 -0
  54. pulumi_gcp/kms/__init__.py +1 -0
  55. pulumi_gcp/kms/get_key_handles.py +172 -0
  56. pulumi_gcp/kms/outputs.py +45 -0
  57. pulumi_gcp/networksecurity/_inputs.py +72 -0
  58. pulumi_gcp/networksecurity/outputs.py +76 -0
  59. pulumi_gcp/networksecurity/security_profile.py +233 -7
  60. pulumi_gcp/networksecurity/security_profile_group.py +218 -0
  61. pulumi_gcp/organizations/__init__.py +1 -0
  62. pulumi_gcp/organizations/get_s.py +128 -0
  63. pulumi_gcp/organizations/outputs.py +63 -0
  64. pulumi_gcp/parametermanager/__init__.py +3 -0
  65. pulumi_gcp/parametermanager/get_parameter.py +211 -0
  66. pulumi_gcp/parametermanager/get_regional_parameters.py +157 -0
  67. pulumi_gcp/parametermanager/outputs.py +210 -0
  68. pulumi_gcp/parametermanager/parameter_version.py +496 -0
  69. pulumi_gcp/parametermanager/regional_parameter_version.py +10 -38
  70. pulumi_gcp/provider.py +20 -0
  71. pulumi_gcp/pubsub/_inputs.py +213 -1
  72. pulumi_gcp/pubsub/outputs.py +278 -2
  73. pulumi_gcp/pubsub/topic.py +42 -0
  74. pulumi_gcp/pulumi-plugin.json +1 -1
  75. pulumi_gcp/redis/__init__.py +1 -0
  76. pulumi_gcp/redis/_inputs.py +342 -6
  77. pulumi_gcp/redis/cluster.py +223 -102
  78. pulumi_gcp/redis/cluster_user_created_connections.py +845 -0
  79. pulumi_gcp/redis/outputs.py +268 -4
  80. {pulumi_gcp-8.16.0a1738080576.dist-info → pulumi_gcp-8.17.0.dist-info}/METADATA +1 -1
  81. {pulumi_gcp-8.16.0a1738080576.dist-info → pulumi_gcp-8.17.0.dist-info}/RECORD +83 -63
  82. {pulumi_gcp-8.16.0a1738080576.dist-info → pulumi_gcp-8.17.0.dist-info}/WHEEL +0 -0
  83. {pulumi_gcp-8.16.0a1738080576.dist-info → pulumi_gcp-8.17.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,845 @@
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__ = ['ClusterUserCreatedConnectionsArgs', 'ClusterUserCreatedConnections']
20
+
21
+ @pulumi.input_type
22
+ class ClusterUserCreatedConnectionsArgs:
23
+ def __init__(__self__, *,
24
+ region: pulumi.Input[str],
25
+ cluster_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterUserCreatedConnectionsClusterEndpointArgs']]]] = None,
26
+ name: Optional[pulumi.Input[str]] = None,
27
+ project: Optional[pulumi.Input[str]] = None):
28
+ """
29
+ The set of arguments for constructing a ClusterUserCreatedConnections resource.
30
+ :param pulumi.Input[str] region: The name of the region of the Redis cluster these endpoints should be added to.
31
+
32
+
33
+ - - -
34
+ :param pulumi.Input[Sequence[pulumi.Input['ClusterUserCreatedConnectionsClusterEndpointArgs']]] cluster_endpoints: A list of cluster endpoints
35
+ Structure is documented below.
36
+ :param pulumi.Input[str] name: The name of the Redis cluster these endpoints should be added to.
37
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
38
+ If it is not provided, the provider project is used.
39
+ """
40
+ pulumi.set(__self__, "region", region)
41
+ if cluster_endpoints is not None:
42
+ pulumi.set(__self__, "cluster_endpoints", cluster_endpoints)
43
+ if name is not None:
44
+ pulumi.set(__self__, "name", name)
45
+ if project is not None:
46
+ pulumi.set(__self__, "project", project)
47
+
48
+ @property
49
+ @pulumi.getter
50
+ def region(self) -> pulumi.Input[str]:
51
+ """
52
+ The name of the region of the Redis cluster these endpoints should be added to.
53
+
54
+
55
+ - - -
56
+ """
57
+ return pulumi.get(self, "region")
58
+
59
+ @region.setter
60
+ def region(self, value: pulumi.Input[str]):
61
+ pulumi.set(self, "region", value)
62
+
63
+ @property
64
+ @pulumi.getter(name="clusterEndpoints")
65
+ def cluster_endpoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterUserCreatedConnectionsClusterEndpointArgs']]]]:
66
+ """
67
+ A list of cluster endpoints
68
+ Structure is documented below.
69
+ """
70
+ return pulumi.get(self, "cluster_endpoints")
71
+
72
+ @cluster_endpoints.setter
73
+ def cluster_endpoints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterUserCreatedConnectionsClusterEndpointArgs']]]]):
74
+ pulumi.set(self, "cluster_endpoints", value)
75
+
76
+ @property
77
+ @pulumi.getter
78
+ def name(self) -> Optional[pulumi.Input[str]]:
79
+ """
80
+ The name of the Redis cluster these endpoints should be added to.
81
+ """
82
+ return pulumi.get(self, "name")
83
+
84
+ @name.setter
85
+ def name(self, value: Optional[pulumi.Input[str]]):
86
+ pulumi.set(self, "name", value)
87
+
88
+ @property
89
+ @pulumi.getter
90
+ def project(self) -> Optional[pulumi.Input[str]]:
91
+ """
92
+ The ID of the project in which the resource belongs.
93
+ If it is not provided, the provider project is used.
94
+ """
95
+ return pulumi.get(self, "project")
96
+
97
+ @project.setter
98
+ def project(self, value: Optional[pulumi.Input[str]]):
99
+ pulumi.set(self, "project", value)
100
+
101
+
102
+ @pulumi.input_type
103
+ class _ClusterUserCreatedConnectionsState:
104
+ def __init__(__self__, *,
105
+ cluster_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterUserCreatedConnectionsClusterEndpointArgs']]]] = None,
106
+ name: Optional[pulumi.Input[str]] = None,
107
+ project: Optional[pulumi.Input[str]] = None,
108
+ region: Optional[pulumi.Input[str]] = None):
109
+ """
110
+ Input properties used for looking up and filtering ClusterUserCreatedConnections resources.
111
+ :param pulumi.Input[Sequence[pulumi.Input['ClusterUserCreatedConnectionsClusterEndpointArgs']]] cluster_endpoints: A list of cluster endpoints
112
+ Structure is documented below.
113
+ :param pulumi.Input[str] name: The name of the Redis cluster these endpoints should be added to.
114
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
115
+ If it is not provided, the provider project is used.
116
+ :param pulumi.Input[str] region: The name of the region of the Redis cluster these endpoints should be added to.
117
+
118
+
119
+ - - -
120
+ """
121
+ if cluster_endpoints is not None:
122
+ pulumi.set(__self__, "cluster_endpoints", cluster_endpoints)
123
+ if name is not None:
124
+ pulumi.set(__self__, "name", name)
125
+ if project is not None:
126
+ pulumi.set(__self__, "project", project)
127
+ if region is not None:
128
+ pulumi.set(__self__, "region", region)
129
+
130
+ @property
131
+ @pulumi.getter(name="clusterEndpoints")
132
+ def cluster_endpoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterUserCreatedConnectionsClusterEndpointArgs']]]]:
133
+ """
134
+ A list of cluster endpoints
135
+ Structure is documented below.
136
+ """
137
+ return pulumi.get(self, "cluster_endpoints")
138
+
139
+ @cluster_endpoints.setter
140
+ def cluster_endpoints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterUserCreatedConnectionsClusterEndpointArgs']]]]):
141
+ pulumi.set(self, "cluster_endpoints", value)
142
+
143
+ @property
144
+ @pulumi.getter
145
+ def name(self) -> Optional[pulumi.Input[str]]:
146
+ """
147
+ The name of the Redis cluster these endpoints should be added to.
148
+ """
149
+ return pulumi.get(self, "name")
150
+
151
+ @name.setter
152
+ def name(self, value: Optional[pulumi.Input[str]]):
153
+ pulumi.set(self, "name", value)
154
+
155
+ @property
156
+ @pulumi.getter
157
+ def project(self) -> Optional[pulumi.Input[str]]:
158
+ """
159
+ The ID of the project in which the resource belongs.
160
+ If it is not provided, the provider project is used.
161
+ """
162
+ return pulumi.get(self, "project")
163
+
164
+ @project.setter
165
+ def project(self, value: Optional[pulumi.Input[str]]):
166
+ pulumi.set(self, "project", value)
167
+
168
+ @property
169
+ @pulumi.getter
170
+ def region(self) -> Optional[pulumi.Input[str]]:
171
+ """
172
+ The name of the region of the Redis cluster these endpoints should be added to.
173
+
174
+
175
+ - - -
176
+ """
177
+ return pulumi.get(self, "region")
178
+
179
+ @region.setter
180
+ def region(self, value: Optional[pulumi.Input[str]]):
181
+ pulumi.set(self, "region", value)
182
+
183
+
184
+ class ClusterUserCreatedConnections(pulumi.CustomResource):
185
+ @overload
186
+ def __init__(__self__,
187
+ resource_name: str,
188
+ opts: Optional[pulumi.ResourceOptions] = None,
189
+ cluster_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClusterUserCreatedConnectionsClusterEndpointArgs', 'ClusterUserCreatedConnectionsClusterEndpointArgsDict']]]]] = None,
190
+ name: Optional[pulumi.Input[str]] = None,
191
+ project: Optional[pulumi.Input[str]] = None,
192
+ region: Optional[pulumi.Input[str]] = None,
193
+ __props__=None):
194
+ """
195
+ ## Example Usage
196
+
197
+ ### Redis Cluster User Created Connections
198
+
199
+ ```python
200
+ import pulumi
201
+ import pulumi_gcp as gcp
202
+
203
+ network1 = gcp.compute.Network("network1",
204
+ name="net1",
205
+ auto_create_subnetworks=False)
206
+ subnet_network1 = gcp.compute.Subnetwork("subnet_network1",
207
+ name="subnet-net1",
208
+ ip_cidr_range="10.0.0.248/29",
209
+ region="us-central1",
210
+ network=network1.id)
211
+ ip1_network1 = gcp.compute.Address("ip1_network1",
212
+ name="ip1-net1",
213
+ region="us-central1",
214
+ subnetwork=subnet_network1.id,
215
+ address_type="INTERNAL",
216
+ purpose="GCE_ENDPOINT")
217
+ # redis cluster without endpoint
218
+ cluster_user_conn_cluster = gcp.redis.Cluster("cluster-user-conn",
219
+ name="cluster-user-conn",
220
+ shard_count=3,
221
+ region="us-central1",
222
+ replica_count=0,
223
+ deletion_protection_enabled=False)
224
+ forwarding_rule1_network1 = gcp.compute.ForwardingRule("forwarding_rule1_network1",
225
+ name="fwd1-net1",
226
+ region="us-central1",
227
+ ip_address=ip1_network1.id,
228
+ load_balancing_scheme="",
229
+ network=network1.id,
230
+ target=cluster_user_conn_cluster.psc_service_attachments[0].service_attachment)
231
+ ip2_network1 = gcp.compute.Address("ip2_network1",
232
+ name="ip2-net1",
233
+ region="us-central1",
234
+ subnetwork=subnet_network1.id,
235
+ address_type="INTERNAL",
236
+ purpose="GCE_ENDPOINT")
237
+ forwarding_rule2_network1 = gcp.compute.ForwardingRule("forwarding_rule2_network1",
238
+ name="fwd2-net1",
239
+ region="us-central1",
240
+ ip_address=ip2_network1.id,
241
+ load_balancing_scheme="",
242
+ network=network1.id,
243
+ target=cluster_user_conn_cluster.psc_service_attachments[1].service_attachment)
244
+ network2 = gcp.compute.Network("network2",
245
+ name="network2",
246
+ auto_create_subnetworks=False)
247
+ subnet_network2 = gcp.compute.Subnetwork("subnet_network2",
248
+ name="subnet-net2",
249
+ ip_cidr_range="10.0.0.248/29",
250
+ region="us-central1",
251
+ network=network2.id)
252
+ ip1_network2 = gcp.compute.Address("ip1_network2",
253
+ name="ip1-net2",
254
+ region="us-central1",
255
+ subnetwork=subnet_network2.id,
256
+ address_type="INTERNAL",
257
+ purpose="GCE_ENDPOINT")
258
+ forwarding_rule1_network2 = gcp.compute.ForwardingRule("forwarding_rule1_network2",
259
+ name="fwd1-net2",
260
+ region="us-central1",
261
+ ip_address=ip1_network2.id,
262
+ load_balancing_scheme="",
263
+ network=network2.id,
264
+ target=cluster_user_conn_cluster.psc_service_attachments[0].service_attachment)
265
+ ip2_network2 = gcp.compute.Address("ip2_network2",
266
+ name="ip2-net2",
267
+ region="us-central1",
268
+ subnetwork=subnet_network2.id,
269
+ address_type="INTERNAL",
270
+ purpose="GCE_ENDPOINT")
271
+ forwarding_rule2_network2 = gcp.compute.ForwardingRule("forwarding_rule2_network2",
272
+ name="fwd2-net2",
273
+ region="us-central1",
274
+ ip_address=ip2_network2.id,
275
+ load_balancing_scheme="",
276
+ network=network2.id,
277
+ target=cluster_user_conn_cluster.psc_service_attachments[1].service_attachment)
278
+ project = gcp.organizations.get_project()
279
+ cluster_user_conn = gcp.redis.ClusterUserCreatedConnections("cluster-user-conn",
280
+ name="cluster-user-conn",
281
+ region="us-central1",
282
+ cluster_endpoints=[
283
+ {
284
+ "connections": [
285
+ {
286
+ "psc_connection": {
287
+ "psc_connection_id": forwarding_rule1_network1.psc_connection_id,
288
+ "address": ip1_network1.address,
289
+ "forwarding_rule": forwarding_rule1_network1.id,
290
+ "network": network1.id,
291
+ "project_id": project.project_id,
292
+ "service_attachment": cluster_user_conn_cluster.psc_service_attachments[0].service_attachment,
293
+ },
294
+ },
295
+ {
296
+ "psc_connection": {
297
+ "psc_connection_id": forwarding_rule2_network1.psc_connection_id,
298
+ "address": ip2_network1.address,
299
+ "forwarding_rule": forwarding_rule2_network1.id,
300
+ "network": network1.id,
301
+ "service_attachment": cluster_user_conn_cluster.psc_service_attachments[1].service_attachment,
302
+ },
303
+ },
304
+ ],
305
+ },
306
+ {
307
+ "connections": [
308
+ {
309
+ "psc_connection": {
310
+ "psc_connection_id": forwarding_rule1_network2.psc_connection_id,
311
+ "address": ip1_network2.address,
312
+ "forwarding_rule": forwarding_rule1_network2.id,
313
+ "network": network2.id,
314
+ "service_attachment": cluster_user_conn_cluster.psc_service_attachments[0].service_attachment,
315
+ },
316
+ },
317
+ {
318
+ "psc_connection": {
319
+ "psc_connection_id": forwarding_rule2_network2.psc_connection_id,
320
+ "address": ip2_network2.address,
321
+ "forwarding_rule": forwarding_rule2_network2.id,
322
+ "network": network2.id,
323
+ "service_attachment": cluster_user_conn_cluster.psc_service_attachments[1].service_attachment,
324
+ },
325
+ },
326
+ ],
327
+ },
328
+ ])
329
+ ```
330
+ ### Redis Cluster User And Auto Created Connections
331
+
332
+ ```python
333
+ import pulumi
334
+ import pulumi_gcp as gcp
335
+
336
+ network2 = gcp.compute.Network("network2",
337
+ name="network2",
338
+ auto_create_subnetworks=False)
339
+ subnet_network2 = gcp.compute.Subnetwork("subnet_network2",
340
+ name="subnet-net2",
341
+ ip_cidr_range="10.0.0.248/29",
342
+ region="us-central1",
343
+ network=network2.id)
344
+ ip1_network2 = gcp.compute.Address("ip1_network2",
345
+ name="ip1-net2",
346
+ region="us-central1",
347
+ subnetwork=subnet_network2.id,
348
+ address_type="INTERNAL",
349
+ purpose="GCE_ENDPOINT")
350
+ network1 = gcp.compute.Network("network1",
351
+ name="net1",
352
+ auto_create_subnetworks=False)
353
+ subnet_network1 = gcp.compute.Subnetwork("subnet_network1",
354
+ name="subnet-net1",
355
+ ip_cidr_range="10.0.0.248/29",
356
+ region="us-central1",
357
+ network=network1.id)
358
+ default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
359
+ name="scpolicy",
360
+ location="us-central1",
361
+ service_class="gcp-memorystore-redis",
362
+ description="my basic service connection policy",
363
+ network=network1.id,
364
+ psc_config={
365
+ "subnetworks": [subnet_network1.id],
366
+ })
367
+ # redis cluster without endpoint
368
+ cluster_user_auto_conn_cluster = gcp.redis.Cluster("cluster-user-auto-conn",
369
+ name="cluster-user-auto-conn",
370
+ shard_count=3,
371
+ region="us-central1",
372
+ replica_count=0,
373
+ deletion_protection_enabled=False,
374
+ psc_configs=[{
375
+ "network": network1.id,
376
+ }],
377
+ opts = pulumi.ResourceOptions(depends_on=[default]))
378
+ forwarding_rule1_network2 = gcp.compute.ForwardingRule("forwarding_rule1_network2",
379
+ name="fwd1-net2",
380
+ region="us-central1",
381
+ ip_address=ip1_network2.id,
382
+ load_balancing_scheme="",
383
+ network=network2.id,
384
+ target=cluster_user_auto_conn_cluster.psc_service_attachments[0].service_attachment)
385
+ ip2_network2 = gcp.compute.Address("ip2_network2",
386
+ name="ip2-net2",
387
+ region="us-central1",
388
+ subnetwork=subnet_network2.id,
389
+ address_type="INTERNAL",
390
+ purpose="GCE_ENDPOINT")
391
+ forwarding_rule2_network2 = gcp.compute.ForwardingRule("forwarding_rule2_network2",
392
+ name="fwd2-net2",
393
+ region="us-central1",
394
+ ip_address=ip2_network2.id,
395
+ load_balancing_scheme="",
396
+ network=network2.id,
397
+ target=cluster_user_auto_conn_cluster.psc_service_attachments[1].service_attachment)
398
+ cluster_user_auto_conn = gcp.redis.ClusterUserCreatedConnections("cluster-user-auto-conn",
399
+ name="cluster-user-auto-conn",
400
+ region="us-central1",
401
+ cluster_endpoints=[{
402
+ "connections": [
403
+ {
404
+ "psc_connection": {
405
+ "psc_connection_id": forwarding_rule1_network2.psc_connection_id,
406
+ "address": ip1_network2.address,
407
+ "forwarding_rule": forwarding_rule1_network2.id,
408
+ "network": network2.id,
409
+ "service_attachment": cluster_user_auto_conn_cluster.psc_service_attachments[0].service_attachment,
410
+ },
411
+ },
412
+ {
413
+ "psc_connection": {
414
+ "psc_connection_id": forwarding_rule2_network2.psc_connection_id,
415
+ "address": ip2_network2.address,
416
+ "forwarding_rule": forwarding_rule2_network2.id,
417
+ "network": network2.id,
418
+ "service_attachment": cluster_user_auto_conn_cluster.psc_service_attachments[1].service_attachment,
419
+ },
420
+ },
421
+ ],
422
+ }])
423
+ ```
424
+
425
+ ## Import
426
+
427
+ ClusterUserCreatedConnections can be imported using any of these accepted formats:
428
+
429
+ * `projects/{{project}}/locations/{{region}}/clusters/{{name}}`
430
+
431
+ * `{{project}}/{{region}}/{{name}}`
432
+
433
+ * `{{region}}/{{name}}`
434
+
435
+ * `{{name}}`
436
+
437
+ When using the `pulumi import` command, ClusterUserCreatedConnections can be imported using one of the formats above. For example:
438
+
439
+ ```sh
440
+ $ pulumi import gcp:redis/clusterUserCreatedConnections:ClusterUserCreatedConnections default projects/{{project}}/locations/{{region}}/clusters/{{name}}
441
+ ```
442
+
443
+ ```sh
444
+ $ pulumi import gcp:redis/clusterUserCreatedConnections:ClusterUserCreatedConnections default {{project}}/{{region}}/{{name}}
445
+ ```
446
+
447
+ ```sh
448
+ $ pulumi import gcp:redis/clusterUserCreatedConnections:ClusterUserCreatedConnections default {{region}}/{{name}}
449
+ ```
450
+
451
+ ```sh
452
+ $ pulumi import gcp:redis/clusterUserCreatedConnections:ClusterUserCreatedConnections default {{name}}
453
+ ```
454
+
455
+ :param str resource_name: The name of the resource.
456
+ :param pulumi.ResourceOptions opts: Options for the resource.
457
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ClusterUserCreatedConnectionsClusterEndpointArgs', 'ClusterUserCreatedConnectionsClusterEndpointArgsDict']]]] cluster_endpoints: A list of cluster endpoints
458
+ Structure is documented below.
459
+ :param pulumi.Input[str] name: The name of the Redis cluster these endpoints should be added to.
460
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
461
+ If it is not provided, the provider project is used.
462
+ :param pulumi.Input[str] region: The name of the region of the Redis cluster these endpoints should be added to.
463
+
464
+
465
+ - - -
466
+ """
467
+ ...
468
+ @overload
469
+ def __init__(__self__,
470
+ resource_name: str,
471
+ args: ClusterUserCreatedConnectionsArgs,
472
+ opts: Optional[pulumi.ResourceOptions] = None):
473
+ """
474
+ ## Example Usage
475
+
476
+ ### Redis Cluster User Created Connections
477
+
478
+ ```python
479
+ import pulumi
480
+ import pulumi_gcp as gcp
481
+
482
+ network1 = gcp.compute.Network("network1",
483
+ name="net1",
484
+ auto_create_subnetworks=False)
485
+ subnet_network1 = gcp.compute.Subnetwork("subnet_network1",
486
+ name="subnet-net1",
487
+ ip_cidr_range="10.0.0.248/29",
488
+ region="us-central1",
489
+ network=network1.id)
490
+ ip1_network1 = gcp.compute.Address("ip1_network1",
491
+ name="ip1-net1",
492
+ region="us-central1",
493
+ subnetwork=subnet_network1.id,
494
+ address_type="INTERNAL",
495
+ purpose="GCE_ENDPOINT")
496
+ # redis cluster without endpoint
497
+ cluster_user_conn_cluster = gcp.redis.Cluster("cluster-user-conn",
498
+ name="cluster-user-conn",
499
+ shard_count=3,
500
+ region="us-central1",
501
+ replica_count=0,
502
+ deletion_protection_enabled=False)
503
+ forwarding_rule1_network1 = gcp.compute.ForwardingRule("forwarding_rule1_network1",
504
+ name="fwd1-net1",
505
+ region="us-central1",
506
+ ip_address=ip1_network1.id,
507
+ load_balancing_scheme="",
508
+ network=network1.id,
509
+ target=cluster_user_conn_cluster.psc_service_attachments[0].service_attachment)
510
+ ip2_network1 = gcp.compute.Address("ip2_network1",
511
+ name="ip2-net1",
512
+ region="us-central1",
513
+ subnetwork=subnet_network1.id,
514
+ address_type="INTERNAL",
515
+ purpose="GCE_ENDPOINT")
516
+ forwarding_rule2_network1 = gcp.compute.ForwardingRule("forwarding_rule2_network1",
517
+ name="fwd2-net1",
518
+ region="us-central1",
519
+ ip_address=ip2_network1.id,
520
+ load_balancing_scheme="",
521
+ network=network1.id,
522
+ target=cluster_user_conn_cluster.psc_service_attachments[1].service_attachment)
523
+ network2 = gcp.compute.Network("network2",
524
+ name="network2",
525
+ auto_create_subnetworks=False)
526
+ subnet_network2 = gcp.compute.Subnetwork("subnet_network2",
527
+ name="subnet-net2",
528
+ ip_cidr_range="10.0.0.248/29",
529
+ region="us-central1",
530
+ network=network2.id)
531
+ ip1_network2 = gcp.compute.Address("ip1_network2",
532
+ name="ip1-net2",
533
+ region="us-central1",
534
+ subnetwork=subnet_network2.id,
535
+ address_type="INTERNAL",
536
+ purpose="GCE_ENDPOINT")
537
+ forwarding_rule1_network2 = gcp.compute.ForwardingRule("forwarding_rule1_network2",
538
+ name="fwd1-net2",
539
+ region="us-central1",
540
+ ip_address=ip1_network2.id,
541
+ load_balancing_scheme="",
542
+ network=network2.id,
543
+ target=cluster_user_conn_cluster.psc_service_attachments[0].service_attachment)
544
+ ip2_network2 = gcp.compute.Address("ip2_network2",
545
+ name="ip2-net2",
546
+ region="us-central1",
547
+ subnetwork=subnet_network2.id,
548
+ address_type="INTERNAL",
549
+ purpose="GCE_ENDPOINT")
550
+ forwarding_rule2_network2 = gcp.compute.ForwardingRule("forwarding_rule2_network2",
551
+ name="fwd2-net2",
552
+ region="us-central1",
553
+ ip_address=ip2_network2.id,
554
+ load_balancing_scheme="",
555
+ network=network2.id,
556
+ target=cluster_user_conn_cluster.psc_service_attachments[1].service_attachment)
557
+ project = gcp.organizations.get_project()
558
+ cluster_user_conn = gcp.redis.ClusterUserCreatedConnections("cluster-user-conn",
559
+ name="cluster-user-conn",
560
+ region="us-central1",
561
+ cluster_endpoints=[
562
+ {
563
+ "connections": [
564
+ {
565
+ "psc_connection": {
566
+ "psc_connection_id": forwarding_rule1_network1.psc_connection_id,
567
+ "address": ip1_network1.address,
568
+ "forwarding_rule": forwarding_rule1_network1.id,
569
+ "network": network1.id,
570
+ "project_id": project.project_id,
571
+ "service_attachment": cluster_user_conn_cluster.psc_service_attachments[0].service_attachment,
572
+ },
573
+ },
574
+ {
575
+ "psc_connection": {
576
+ "psc_connection_id": forwarding_rule2_network1.psc_connection_id,
577
+ "address": ip2_network1.address,
578
+ "forwarding_rule": forwarding_rule2_network1.id,
579
+ "network": network1.id,
580
+ "service_attachment": cluster_user_conn_cluster.psc_service_attachments[1].service_attachment,
581
+ },
582
+ },
583
+ ],
584
+ },
585
+ {
586
+ "connections": [
587
+ {
588
+ "psc_connection": {
589
+ "psc_connection_id": forwarding_rule1_network2.psc_connection_id,
590
+ "address": ip1_network2.address,
591
+ "forwarding_rule": forwarding_rule1_network2.id,
592
+ "network": network2.id,
593
+ "service_attachment": cluster_user_conn_cluster.psc_service_attachments[0].service_attachment,
594
+ },
595
+ },
596
+ {
597
+ "psc_connection": {
598
+ "psc_connection_id": forwarding_rule2_network2.psc_connection_id,
599
+ "address": ip2_network2.address,
600
+ "forwarding_rule": forwarding_rule2_network2.id,
601
+ "network": network2.id,
602
+ "service_attachment": cluster_user_conn_cluster.psc_service_attachments[1].service_attachment,
603
+ },
604
+ },
605
+ ],
606
+ },
607
+ ])
608
+ ```
609
+ ### Redis Cluster User And Auto Created Connections
610
+
611
+ ```python
612
+ import pulumi
613
+ import pulumi_gcp as gcp
614
+
615
+ network2 = gcp.compute.Network("network2",
616
+ name="network2",
617
+ auto_create_subnetworks=False)
618
+ subnet_network2 = gcp.compute.Subnetwork("subnet_network2",
619
+ name="subnet-net2",
620
+ ip_cidr_range="10.0.0.248/29",
621
+ region="us-central1",
622
+ network=network2.id)
623
+ ip1_network2 = gcp.compute.Address("ip1_network2",
624
+ name="ip1-net2",
625
+ region="us-central1",
626
+ subnetwork=subnet_network2.id,
627
+ address_type="INTERNAL",
628
+ purpose="GCE_ENDPOINT")
629
+ network1 = gcp.compute.Network("network1",
630
+ name="net1",
631
+ auto_create_subnetworks=False)
632
+ subnet_network1 = gcp.compute.Subnetwork("subnet_network1",
633
+ name="subnet-net1",
634
+ ip_cidr_range="10.0.0.248/29",
635
+ region="us-central1",
636
+ network=network1.id)
637
+ default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
638
+ name="scpolicy",
639
+ location="us-central1",
640
+ service_class="gcp-memorystore-redis",
641
+ description="my basic service connection policy",
642
+ network=network1.id,
643
+ psc_config={
644
+ "subnetworks": [subnet_network1.id],
645
+ })
646
+ # redis cluster without endpoint
647
+ cluster_user_auto_conn_cluster = gcp.redis.Cluster("cluster-user-auto-conn",
648
+ name="cluster-user-auto-conn",
649
+ shard_count=3,
650
+ region="us-central1",
651
+ replica_count=0,
652
+ deletion_protection_enabled=False,
653
+ psc_configs=[{
654
+ "network": network1.id,
655
+ }],
656
+ opts = pulumi.ResourceOptions(depends_on=[default]))
657
+ forwarding_rule1_network2 = gcp.compute.ForwardingRule("forwarding_rule1_network2",
658
+ name="fwd1-net2",
659
+ region="us-central1",
660
+ ip_address=ip1_network2.id,
661
+ load_balancing_scheme="",
662
+ network=network2.id,
663
+ target=cluster_user_auto_conn_cluster.psc_service_attachments[0].service_attachment)
664
+ ip2_network2 = gcp.compute.Address("ip2_network2",
665
+ name="ip2-net2",
666
+ region="us-central1",
667
+ subnetwork=subnet_network2.id,
668
+ address_type="INTERNAL",
669
+ purpose="GCE_ENDPOINT")
670
+ forwarding_rule2_network2 = gcp.compute.ForwardingRule("forwarding_rule2_network2",
671
+ name="fwd2-net2",
672
+ region="us-central1",
673
+ ip_address=ip2_network2.id,
674
+ load_balancing_scheme="",
675
+ network=network2.id,
676
+ target=cluster_user_auto_conn_cluster.psc_service_attachments[1].service_attachment)
677
+ cluster_user_auto_conn = gcp.redis.ClusterUserCreatedConnections("cluster-user-auto-conn",
678
+ name="cluster-user-auto-conn",
679
+ region="us-central1",
680
+ cluster_endpoints=[{
681
+ "connections": [
682
+ {
683
+ "psc_connection": {
684
+ "psc_connection_id": forwarding_rule1_network2.psc_connection_id,
685
+ "address": ip1_network2.address,
686
+ "forwarding_rule": forwarding_rule1_network2.id,
687
+ "network": network2.id,
688
+ "service_attachment": cluster_user_auto_conn_cluster.psc_service_attachments[0].service_attachment,
689
+ },
690
+ },
691
+ {
692
+ "psc_connection": {
693
+ "psc_connection_id": forwarding_rule2_network2.psc_connection_id,
694
+ "address": ip2_network2.address,
695
+ "forwarding_rule": forwarding_rule2_network2.id,
696
+ "network": network2.id,
697
+ "service_attachment": cluster_user_auto_conn_cluster.psc_service_attachments[1].service_attachment,
698
+ },
699
+ },
700
+ ],
701
+ }])
702
+ ```
703
+
704
+ ## Import
705
+
706
+ ClusterUserCreatedConnections can be imported using any of these accepted formats:
707
+
708
+ * `projects/{{project}}/locations/{{region}}/clusters/{{name}}`
709
+
710
+ * `{{project}}/{{region}}/{{name}}`
711
+
712
+ * `{{region}}/{{name}}`
713
+
714
+ * `{{name}}`
715
+
716
+ When using the `pulumi import` command, ClusterUserCreatedConnections can be imported using one of the formats above. For example:
717
+
718
+ ```sh
719
+ $ pulumi import gcp:redis/clusterUserCreatedConnections:ClusterUserCreatedConnections default projects/{{project}}/locations/{{region}}/clusters/{{name}}
720
+ ```
721
+
722
+ ```sh
723
+ $ pulumi import gcp:redis/clusterUserCreatedConnections:ClusterUserCreatedConnections default {{project}}/{{region}}/{{name}}
724
+ ```
725
+
726
+ ```sh
727
+ $ pulumi import gcp:redis/clusterUserCreatedConnections:ClusterUserCreatedConnections default {{region}}/{{name}}
728
+ ```
729
+
730
+ ```sh
731
+ $ pulumi import gcp:redis/clusterUserCreatedConnections:ClusterUserCreatedConnections default {{name}}
732
+ ```
733
+
734
+ :param str resource_name: The name of the resource.
735
+ :param ClusterUserCreatedConnectionsArgs args: The arguments to use to populate this resource's properties.
736
+ :param pulumi.ResourceOptions opts: Options for the resource.
737
+ """
738
+ ...
739
+ def __init__(__self__, resource_name: str, *args, **kwargs):
740
+ resource_args, opts = _utilities.get_resource_args_opts(ClusterUserCreatedConnectionsArgs, pulumi.ResourceOptions, *args, **kwargs)
741
+ if resource_args is not None:
742
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
743
+ else:
744
+ __self__._internal_init(resource_name, *args, **kwargs)
745
+
746
+ def _internal_init(__self__,
747
+ resource_name: str,
748
+ opts: Optional[pulumi.ResourceOptions] = None,
749
+ cluster_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClusterUserCreatedConnectionsClusterEndpointArgs', 'ClusterUserCreatedConnectionsClusterEndpointArgsDict']]]]] = None,
750
+ name: Optional[pulumi.Input[str]] = None,
751
+ project: Optional[pulumi.Input[str]] = None,
752
+ region: Optional[pulumi.Input[str]] = None,
753
+ __props__=None):
754
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
755
+ if not isinstance(opts, pulumi.ResourceOptions):
756
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
757
+ if opts.id is None:
758
+ if __props__ is not None:
759
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
760
+ __props__ = ClusterUserCreatedConnectionsArgs.__new__(ClusterUserCreatedConnectionsArgs)
761
+
762
+ __props__.__dict__["cluster_endpoints"] = cluster_endpoints
763
+ __props__.__dict__["name"] = name
764
+ __props__.__dict__["project"] = project
765
+ if region is None and not opts.urn:
766
+ raise TypeError("Missing required property 'region'")
767
+ __props__.__dict__["region"] = region
768
+ super(ClusterUserCreatedConnections, __self__).__init__(
769
+ 'gcp:redis/clusterUserCreatedConnections:ClusterUserCreatedConnections',
770
+ resource_name,
771
+ __props__,
772
+ opts)
773
+
774
+ @staticmethod
775
+ def get(resource_name: str,
776
+ id: pulumi.Input[str],
777
+ opts: Optional[pulumi.ResourceOptions] = None,
778
+ cluster_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClusterUserCreatedConnectionsClusterEndpointArgs', 'ClusterUserCreatedConnectionsClusterEndpointArgsDict']]]]] = None,
779
+ name: Optional[pulumi.Input[str]] = None,
780
+ project: Optional[pulumi.Input[str]] = None,
781
+ region: Optional[pulumi.Input[str]] = None) -> 'ClusterUserCreatedConnections':
782
+ """
783
+ Get an existing ClusterUserCreatedConnections resource's state with the given name, id, and optional extra
784
+ properties used to qualify the lookup.
785
+
786
+ :param str resource_name: The unique name of the resulting resource.
787
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
788
+ :param pulumi.ResourceOptions opts: Options for the resource.
789
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ClusterUserCreatedConnectionsClusterEndpointArgs', 'ClusterUserCreatedConnectionsClusterEndpointArgsDict']]]] cluster_endpoints: A list of cluster endpoints
790
+ Structure is documented below.
791
+ :param pulumi.Input[str] name: The name of the Redis cluster these endpoints should be added to.
792
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
793
+ If it is not provided, the provider project is used.
794
+ :param pulumi.Input[str] region: The name of the region of the Redis cluster these endpoints should be added to.
795
+
796
+
797
+ - - -
798
+ """
799
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
800
+
801
+ __props__ = _ClusterUserCreatedConnectionsState.__new__(_ClusterUserCreatedConnectionsState)
802
+
803
+ __props__.__dict__["cluster_endpoints"] = cluster_endpoints
804
+ __props__.__dict__["name"] = name
805
+ __props__.__dict__["project"] = project
806
+ __props__.__dict__["region"] = region
807
+ return ClusterUserCreatedConnections(resource_name, opts=opts, __props__=__props__)
808
+
809
+ @property
810
+ @pulumi.getter(name="clusterEndpoints")
811
+ def cluster_endpoints(self) -> pulumi.Output[Optional[Sequence['outputs.ClusterUserCreatedConnectionsClusterEndpoint']]]:
812
+ """
813
+ A list of cluster endpoints
814
+ Structure is documented below.
815
+ """
816
+ return pulumi.get(self, "cluster_endpoints")
817
+
818
+ @property
819
+ @pulumi.getter
820
+ def name(self) -> pulumi.Output[str]:
821
+ """
822
+ The name of the Redis cluster these endpoints should be added to.
823
+ """
824
+ return pulumi.get(self, "name")
825
+
826
+ @property
827
+ @pulumi.getter
828
+ def project(self) -> pulumi.Output[str]:
829
+ """
830
+ The ID of the project in which the resource belongs.
831
+ If it is not provided, the provider project is used.
832
+ """
833
+ return pulumi.get(self, "project")
834
+
835
+ @property
836
+ @pulumi.getter
837
+ def region(self) -> pulumi.Output[str]:
838
+ """
839
+ The name of the region of the Redis cluster these endpoints should be added to.
840
+
841
+
842
+ - - -
843
+ """
844
+ return pulumi.get(self, "region")
845
+