pulumiverse-scaleway 1.16.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.

Potentially problematic release.


This version of pulumiverse-scaleway might be problematic. Click here for more details.

Files changed (205) hide show
  1. pulumiverse_scaleway/__init__.py +1073 -0
  2. pulumiverse_scaleway/_inputs.py +8665 -0
  3. pulumiverse_scaleway/_utilities.py +327 -0
  4. pulumiverse_scaleway/account_project.py +316 -0
  5. pulumiverse_scaleway/account_ssh_key.py +450 -0
  6. pulumiverse_scaleway/apple_silicon_server.py +564 -0
  7. pulumiverse_scaleway/baremetal_server.py +1390 -0
  8. pulumiverse_scaleway/block_snapshot.py +391 -0
  9. pulumiverse_scaleway/block_volume.py +521 -0
  10. pulumiverse_scaleway/cockpit.py +299 -0
  11. pulumiverse_scaleway/cockpit_alert_manager.py +345 -0
  12. pulumiverse_scaleway/cockpit_grafana_user.py +326 -0
  13. pulumiverse_scaleway/cockpit_source.py +481 -0
  14. pulumiverse_scaleway/cockpit_token.py +461 -0
  15. pulumiverse_scaleway/config/__init__.py +8 -0
  16. pulumiverse_scaleway/config/__init__.pyi +56 -0
  17. pulumiverse_scaleway/config/vars.py +78 -0
  18. pulumiverse_scaleway/container.py +1387 -0
  19. pulumiverse_scaleway/container_cron.py +493 -0
  20. pulumiverse_scaleway/container_domain.py +400 -0
  21. pulumiverse_scaleway/container_namespace.py +589 -0
  22. pulumiverse_scaleway/container_token.py +454 -0
  23. pulumiverse_scaleway/container_trigger.py +478 -0
  24. pulumiverse_scaleway/database.py +407 -0
  25. pulumiverse_scaleway/database_acl.py +332 -0
  26. pulumiverse_scaleway/database_backup.py +574 -0
  27. pulumiverse_scaleway/database_instance.py +1636 -0
  28. pulumiverse_scaleway/database_privilege.py +422 -0
  29. pulumiverse_scaleway/database_read_replica.py +528 -0
  30. pulumiverse_scaleway/database_user.py +446 -0
  31. pulumiverse_scaleway/documentdb_database.py +450 -0
  32. pulumiverse_scaleway/documentdb_instance.py +812 -0
  33. pulumiverse_scaleway/documentdb_private_network_endpoint.py +352 -0
  34. pulumiverse_scaleway/documentdb_privilege.py +402 -0
  35. pulumiverse_scaleway/documentdb_read_replica.py +405 -0
  36. pulumiverse_scaleway/documentdb_user.py +442 -0
  37. pulumiverse_scaleway/domain_record.py +1074 -0
  38. pulumiverse_scaleway/domain_zone.py +458 -0
  39. pulumiverse_scaleway/flexible_ip.py +702 -0
  40. pulumiverse_scaleway/flexible_ip_mac_address.py +510 -0
  41. pulumiverse_scaleway/function.py +1145 -0
  42. pulumiverse_scaleway/function_cron.py +480 -0
  43. pulumiverse_scaleway/function_domain.py +361 -0
  44. pulumiverse_scaleway/function_namespace.py +533 -0
  45. pulumiverse_scaleway/function_token.py +462 -0
  46. pulumiverse_scaleway/function_trigger.py +478 -0
  47. pulumiverse_scaleway/get_account_project.py +164 -0
  48. pulumiverse_scaleway/get_account_ssh_key.py +201 -0
  49. pulumiverse_scaleway/get_availability_zones.py +131 -0
  50. pulumiverse_scaleway/get_baremetal_offer.py +245 -0
  51. pulumiverse_scaleway/get_baremetal_option.py +168 -0
  52. pulumiverse_scaleway/get_baremetal_os.py +174 -0
  53. pulumiverse_scaleway/get_baremetal_server.py +411 -0
  54. pulumiverse_scaleway/get_billing_consumptions.py +134 -0
  55. pulumiverse_scaleway/get_billing_invoices.py +154 -0
  56. pulumiverse_scaleway/get_block_snapshot.py +170 -0
  57. pulumiverse_scaleway/get_block_volume.py +186 -0
  58. pulumiverse_scaleway/get_cockpit.py +179 -0
  59. pulumiverse_scaleway/get_cockpit_plan.py +113 -0
  60. pulumiverse_scaleway/get_config.py +180 -0
  61. pulumiverse_scaleway/get_container.py +502 -0
  62. pulumiverse_scaleway/get_container_namespace.py +262 -0
  63. pulumiverse_scaleway/get_database.py +187 -0
  64. pulumiverse_scaleway/get_database_acl.py +143 -0
  65. pulumiverse_scaleway/get_database_backup.py +253 -0
  66. pulumiverse_scaleway/get_database_instance.py +404 -0
  67. pulumiverse_scaleway/get_database_privilege.py +181 -0
  68. pulumiverse_scaleway/get_documentdb_database.py +198 -0
  69. pulumiverse_scaleway/get_documentdb_instance.py +245 -0
  70. pulumiverse_scaleway/get_documentdb_load_balancer_endpoint.py +198 -0
  71. pulumiverse_scaleway/get_domain_record.py +334 -0
  72. pulumiverse_scaleway/get_domain_zone.py +225 -0
  73. pulumiverse_scaleway/get_flexible_ip.py +247 -0
  74. pulumiverse_scaleway/get_flexible_ips.py +240 -0
  75. pulumiverse_scaleway/get_function.py +357 -0
  76. pulumiverse_scaleway/get_function_namespace.py +227 -0
  77. pulumiverse_scaleway/get_iam_api_key.py +210 -0
  78. pulumiverse_scaleway/get_iam_application.py +210 -0
  79. pulumiverse_scaleway/get_iam_group.py +236 -0
  80. pulumiverse_scaleway/get_iam_ssh_key.py +212 -0
  81. pulumiverse_scaleway/get_iam_user.py +157 -0
  82. pulumiverse_scaleway/get_instance_image.py +305 -0
  83. pulumiverse_scaleway/get_instance_ip.py +204 -0
  84. pulumiverse_scaleway/get_instance_placement_group.py +212 -0
  85. pulumiverse_scaleway/get_instance_private_nic.py +215 -0
  86. pulumiverse_scaleway/get_instance_security_group.py +268 -0
  87. pulumiverse_scaleway/get_instance_server.py +502 -0
  88. pulumiverse_scaleway/get_instance_servers.py +187 -0
  89. pulumiverse_scaleway/get_instance_snapshot.py +248 -0
  90. pulumiverse_scaleway/get_instance_volume.py +215 -0
  91. pulumiverse_scaleway/get_iot_device.py +257 -0
  92. pulumiverse_scaleway/get_iot_hub.py +322 -0
  93. pulumiverse_scaleway/get_ipam_ip.py +419 -0
  94. pulumiverse_scaleway/get_ipam_ips.py +358 -0
  95. pulumiverse_scaleway/get_k8s_version.py +196 -0
  96. pulumiverse_scaleway/get_kubernetes_cluster.py +417 -0
  97. pulumiverse_scaleway/get_kubernetes_node_pool.py +436 -0
  98. pulumiverse_scaleway/get_lb_acls.py +198 -0
  99. pulumiverse_scaleway/get_lb_backend.py +486 -0
  100. pulumiverse_scaleway/get_lb_backends.py +196 -0
  101. pulumiverse_scaleway/get_lb_frontend.py +274 -0
  102. pulumiverse_scaleway/get_lb_frontends.py +196 -0
  103. pulumiverse_scaleway/get_lb_ips.py +198 -0
  104. pulumiverse_scaleway/get_lb_route.py +217 -0
  105. pulumiverse_scaleway/get_lb_routes.py +179 -0
  106. pulumiverse_scaleway/get_lbs.py +187 -0
  107. pulumiverse_scaleway/get_loadbalancer.py +339 -0
  108. pulumiverse_scaleway/get_loadbalancer_certificate.py +230 -0
  109. pulumiverse_scaleway/get_loadbalancer_ip.py +222 -0
  110. pulumiverse_scaleway/get_marketplace_image.py +147 -0
  111. pulumiverse_scaleway/get_mnq_sqs.py +150 -0
  112. pulumiverse_scaleway/get_object_bucket.py +278 -0
  113. pulumiverse_scaleway/get_object_bucket_policy.py +157 -0
  114. pulumiverse_scaleway/get_redis_cluster.py +347 -0
  115. pulumiverse_scaleway/get_registry_image.py +239 -0
  116. pulumiverse_scaleway/get_registry_namespace.py +199 -0
  117. pulumiverse_scaleway/get_secret.py +290 -0
  118. pulumiverse_scaleway/get_secret_version.py +303 -0
  119. pulumiverse_scaleway/get_tem_domain.py +367 -0
  120. pulumiverse_scaleway/get_vpc.py +246 -0
  121. pulumiverse_scaleway/get_vpc_gateway_network.py +287 -0
  122. pulumiverse_scaleway/get_vpc_private_network.py +282 -0
  123. pulumiverse_scaleway/get_vpc_public_gateway.py +304 -0
  124. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +305 -0
  125. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +382 -0
  126. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +199 -0
  127. pulumiverse_scaleway/get_vpc_public_pat_rule.py +313 -0
  128. pulumiverse_scaleway/get_vpc_routes.py +208 -0
  129. pulumiverse_scaleway/get_vpcs.py +174 -0
  130. pulumiverse_scaleway/get_web_host_offer.py +192 -0
  131. pulumiverse_scaleway/get_webhosting.py +332 -0
  132. pulumiverse_scaleway/iam_api_key.py +620 -0
  133. pulumiverse_scaleway/iam_application.py +417 -0
  134. pulumiverse_scaleway/iam_group.py +566 -0
  135. pulumiverse_scaleway/iam_group_membership.py +323 -0
  136. pulumiverse_scaleway/iam_policy.py +727 -0
  137. pulumiverse_scaleway/iam_ssh_key.py +455 -0
  138. pulumiverse_scaleway/iam_user.py +466 -0
  139. pulumiverse_scaleway/instance_image.py +750 -0
  140. pulumiverse_scaleway/instance_ip.py +483 -0
  141. pulumiverse_scaleway/instance_ip_reverse_dns.py +308 -0
  142. pulumiverse_scaleway/instance_placement_group.py +479 -0
  143. pulumiverse_scaleway/instance_private_nic.py +454 -0
  144. pulumiverse_scaleway/instance_security_group.py +720 -0
  145. pulumiverse_scaleway/instance_security_group_rules.py +439 -0
  146. pulumiverse_scaleway/instance_server.py +1907 -0
  147. pulumiverse_scaleway/instance_snapshot.py +669 -0
  148. pulumiverse_scaleway/instance_user_data.py +435 -0
  149. pulumiverse_scaleway/instance_volume.py +535 -0
  150. pulumiverse_scaleway/iot_device.py +750 -0
  151. pulumiverse_scaleway/iot_hub.py +896 -0
  152. pulumiverse_scaleway/iot_network.py +425 -0
  153. pulumiverse_scaleway/iot_route.py +660 -0
  154. pulumiverse_scaleway/ipam_ip.py +666 -0
  155. pulumiverse_scaleway/ipam_ip_reverse_dns.py +318 -0
  156. pulumiverse_scaleway/job_definition.py +692 -0
  157. pulumiverse_scaleway/kubernetes_cluster.py +1538 -0
  158. pulumiverse_scaleway/kubernetes_node_pool.py +1255 -0
  159. pulumiverse_scaleway/loadbalancer.py +1095 -0
  160. pulumiverse_scaleway/loadbalancer_acl.py +520 -0
  161. pulumiverse_scaleway/loadbalancer_backend.py +1588 -0
  162. pulumiverse_scaleway/loadbalancer_certificate.py +460 -0
  163. pulumiverse_scaleway/loadbalancer_frontend.py +829 -0
  164. pulumiverse_scaleway/loadbalancer_ip.py +514 -0
  165. pulumiverse_scaleway/loadbalancer_route.py +523 -0
  166. pulumiverse_scaleway/mnq_nats_account.py +334 -0
  167. pulumiverse_scaleway/mnq_nats_credentials.py +328 -0
  168. pulumiverse_scaleway/mnq_sns.py +306 -0
  169. pulumiverse_scaleway/mnq_sns_credentials.py +413 -0
  170. pulumiverse_scaleway/mnq_sns_topic.py +659 -0
  171. pulumiverse_scaleway/mnq_sns_topic_subscription.py +699 -0
  172. pulumiverse_scaleway/mnq_sqs.py +304 -0
  173. pulumiverse_scaleway/mnq_sqs_credentials.py +413 -0
  174. pulumiverse_scaleway/mnq_sqs_queue.py +800 -0
  175. pulumiverse_scaleway/object_bucket.py +888 -0
  176. pulumiverse_scaleway/object_bucket_acl.py +592 -0
  177. pulumiverse_scaleway/object_bucket_lock_configuration.py +393 -0
  178. pulumiverse_scaleway/object_bucket_policy.py +671 -0
  179. pulumiverse_scaleway/object_bucket_website_configuration.py +532 -0
  180. pulumiverse_scaleway/object_item.py +711 -0
  181. pulumiverse_scaleway/outputs.py +11663 -0
  182. pulumiverse_scaleway/provider.py +327 -0
  183. pulumiverse_scaleway/pulumi-plugin.json +6 -0
  184. pulumiverse_scaleway/py.typed +0 -0
  185. pulumiverse_scaleway/redis_cluster.py +1166 -0
  186. pulumiverse_scaleway/registry_namespace.py +458 -0
  187. pulumiverse_scaleway/sdb_database.py +428 -0
  188. pulumiverse_scaleway/secret.py +560 -0
  189. pulumiverse_scaleway/secret_version.py +482 -0
  190. pulumiverse_scaleway/tem_domain.py +950 -0
  191. pulumiverse_scaleway/tem_domain_validation.py +303 -0
  192. pulumiverse_scaleway/vpc.py +536 -0
  193. pulumiverse_scaleway/vpc_gateway_network.py +866 -0
  194. pulumiverse_scaleway/vpc_private_network.py +734 -0
  195. pulumiverse_scaleway/vpc_public_gateway.py +789 -0
  196. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +933 -0
  197. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +514 -0
  198. pulumiverse_scaleway/vpc_public_gateway_ip.py +457 -0
  199. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +306 -0
  200. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +591 -0
  201. pulumiverse_scaleway/webhosting.py +805 -0
  202. pulumiverse_scaleway-1.16.0.dist-info/METADATA +69 -0
  203. pulumiverse_scaleway-1.16.0.dist-info/RECORD +205 -0
  204. pulumiverse_scaleway-1.16.0.dist-info/WHEEL +5 -0
  205. pulumiverse_scaleway-1.16.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1166 @@
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__ = ['RedisClusterArgs', 'RedisCluster']
20
+
21
+ @pulumi.input_type
22
+ class RedisClusterArgs:
23
+ def __init__(__self__, *,
24
+ node_type: pulumi.Input[str],
25
+ password: pulumi.Input[str],
26
+ user_name: pulumi.Input[str],
27
+ version: pulumi.Input[str],
28
+ acls: Optional[pulumi.Input[Sequence[pulumi.Input['RedisClusterAclArgs']]]] = None,
29
+ cluster_size: Optional[pulumi.Input[int]] = None,
30
+ name: Optional[pulumi.Input[str]] = None,
31
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input['RedisClusterPrivateNetworkArgs']]]] = None,
32
+ project_id: Optional[pulumi.Input[str]] = None,
33
+ public_network: Optional[pulumi.Input['RedisClusterPublicNetworkArgs']] = None,
34
+ settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
35
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
36
+ tls_enabled: Optional[pulumi.Input[bool]] = None,
37
+ zone: Optional[pulumi.Input[str]] = None):
38
+ """
39
+ The set of arguments for constructing a RedisCluster resource.
40
+ :param pulumi.Input[str] node_type: The type of Redis™ cluster you want to create (e.g. `RED1-M`).
41
+
42
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
43
+ you cannot downgrade a Redis™ cluster.
44
+ :param pulumi.Input[str] password: Password for the first user of the Redis™ cluster.
45
+ :param pulumi.Input[str] user_name: Identifier for the first user of the Redis™ cluster.
46
+ :param pulumi.Input[str] version: Redis™ cluster's version (e.g. `6.2.7`).
47
+
48
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
49
+ cannot downgrade a Redis™ cluster.
50
+ :param pulumi.Input[Sequence[pulumi.Input['RedisClusterAclArgs']]] acls: List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
51
+ :param pulumi.Input[int] cluster_size: The number of nodes in the Redis™ cluster.
52
+
53
+ > **Important:** You cannot set `cluster_size` to 2, you either have to choose Standalone mode (1 node) or cluster mode
54
+ which is minimum 3 (1 main node + 2 secondary nodes)
55
+
56
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
57
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
58
+ `cluster_size` will destroy and recreate your cluster.
59
+
60
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
61
+ recreate your cluster as you will be switching to the cluster mode.
62
+ :param pulumi.Input[str] name: The name of the Redis™ cluster.
63
+ :param pulumi.Input[Sequence[pulumi.Input['RedisClusterPrivateNetworkArgs']]] private_networks: Describes the Private Network you want to connect to your cluster. If not set, a public
64
+ network will be provided. More details on the Private Network section
65
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the Redis™ cluster is
66
+ associated with.
67
+ :param pulumi.Input['RedisClusterPublicNetworkArgs'] public_network: (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
68
+ > The `public_network` block exports:
69
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] settings: Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
70
+ with scaleway API or CLI
71
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Redis™ cluster.
72
+ :param pulumi.Input[bool] tls_enabled: Whether TLS is enabled or not.
73
+
74
+ > The changes on `tls_enabled` will force the resource creation.
75
+ :param pulumi.Input[str] zone: `zone`) The zone in which the
76
+ Redis™ cluster should be created.
77
+ """
78
+ pulumi.set(__self__, "node_type", node_type)
79
+ pulumi.set(__self__, "password", password)
80
+ pulumi.set(__self__, "user_name", user_name)
81
+ pulumi.set(__self__, "version", version)
82
+ if acls is not None:
83
+ pulumi.set(__self__, "acls", acls)
84
+ if cluster_size is not None:
85
+ pulumi.set(__self__, "cluster_size", cluster_size)
86
+ if name is not None:
87
+ pulumi.set(__self__, "name", name)
88
+ if private_networks is not None:
89
+ pulumi.set(__self__, "private_networks", private_networks)
90
+ if project_id is not None:
91
+ pulumi.set(__self__, "project_id", project_id)
92
+ if public_network is not None:
93
+ pulumi.set(__self__, "public_network", public_network)
94
+ if settings is not None:
95
+ pulumi.set(__self__, "settings", settings)
96
+ if tags is not None:
97
+ pulumi.set(__self__, "tags", tags)
98
+ if tls_enabled is not None:
99
+ pulumi.set(__self__, "tls_enabled", tls_enabled)
100
+ if zone is not None:
101
+ pulumi.set(__self__, "zone", zone)
102
+
103
+ @property
104
+ @pulumi.getter(name="nodeType")
105
+ def node_type(self) -> pulumi.Input[str]:
106
+ """
107
+ The type of Redis™ cluster you want to create (e.g. `RED1-M`).
108
+
109
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
110
+ you cannot downgrade a Redis™ cluster.
111
+ """
112
+ return pulumi.get(self, "node_type")
113
+
114
+ @node_type.setter
115
+ def node_type(self, value: pulumi.Input[str]):
116
+ pulumi.set(self, "node_type", value)
117
+
118
+ @property
119
+ @pulumi.getter
120
+ def password(self) -> pulumi.Input[str]:
121
+ """
122
+ Password for the first user of the Redis™ cluster.
123
+ """
124
+ return pulumi.get(self, "password")
125
+
126
+ @password.setter
127
+ def password(self, value: pulumi.Input[str]):
128
+ pulumi.set(self, "password", value)
129
+
130
+ @property
131
+ @pulumi.getter(name="userName")
132
+ def user_name(self) -> pulumi.Input[str]:
133
+ """
134
+ Identifier for the first user of the Redis™ cluster.
135
+ """
136
+ return pulumi.get(self, "user_name")
137
+
138
+ @user_name.setter
139
+ def user_name(self, value: pulumi.Input[str]):
140
+ pulumi.set(self, "user_name", value)
141
+
142
+ @property
143
+ @pulumi.getter
144
+ def version(self) -> pulumi.Input[str]:
145
+ """
146
+ Redis™ cluster's version (e.g. `6.2.7`).
147
+
148
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
149
+ cannot downgrade a Redis™ cluster.
150
+ """
151
+ return pulumi.get(self, "version")
152
+
153
+ @version.setter
154
+ def version(self, value: pulumi.Input[str]):
155
+ pulumi.set(self, "version", value)
156
+
157
+ @property
158
+ @pulumi.getter
159
+ def acls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RedisClusterAclArgs']]]]:
160
+ """
161
+ List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
162
+ """
163
+ return pulumi.get(self, "acls")
164
+
165
+ @acls.setter
166
+ def acls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RedisClusterAclArgs']]]]):
167
+ pulumi.set(self, "acls", value)
168
+
169
+ @property
170
+ @pulumi.getter(name="clusterSize")
171
+ def cluster_size(self) -> Optional[pulumi.Input[int]]:
172
+ """
173
+ The number of nodes in the Redis™ cluster.
174
+
175
+ > **Important:** You cannot set `cluster_size` to 2, you either have to choose Standalone mode (1 node) or cluster mode
176
+ which is minimum 3 (1 main node + 2 secondary nodes)
177
+
178
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
179
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
180
+ `cluster_size` will destroy and recreate your cluster.
181
+
182
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
183
+ recreate your cluster as you will be switching to the cluster mode.
184
+ """
185
+ return pulumi.get(self, "cluster_size")
186
+
187
+ @cluster_size.setter
188
+ def cluster_size(self, value: Optional[pulumi.Input[int]]):
189
+ pulumi.set(self, "cluster_size", value)
190
+
191
+ @property
192
+ @pulumi.getter
193
+ def name(self) -> Optional[pulumi.Input[str]]:
194
+ """
195
+ The name of the Redis™ cluster.
196
+ """
197
+ return pulumi.get(self, "name")
198
+
199
+ @name.setter
200
+ def name(self, value: Optional[pulumi.Input[str]]):
201
+ pulumi.set(self, "name", value)
202
+
203
+ @property
204
+ @pulumi.getter(name="privateNetworks")
205
+ def private_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RedisClusterPrivateNetworkArgs']]]]:
206
+ """
207
+ Describes the Private Network you want to connect to your cluster. If not set, a public
208
+ network will be provided. More details on the Private Network section
209
+ """
210
+ return pulumi.get(self, "private_networks")
211
+
212
+ @private_networks.setter
213
+ def private_networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RedisClusterPrivateNetworkArgs']]]]):
214
+ pulumi.set(self, "private_networks", value)
215
+
216
+ @property
217
+ @pulumi.getter(name="projectId")
218
+ def project_id(self) -> Optional[pulumi.Input[str]]:
219
+ """
220
+ `project_id`) The ID of the project the Redis™ cluster is
221
+ associated with.
222
+ """
223
+ return pulumi.get(self, "project_id")
224
+
225
+ @project_id.setter
226
+ def project_id(self, value: Optional[pulumi.Input[str]]):
227
+ pulumi.set(self, "project_id", value)
228
+
229
+ @property
230
+ @pulumi.getter(name="publicNetwork")
231
+ def public_network(self) -> Optional[pulumi.Input['RedisClusterPublicNetworkArgs']]:
232
+ """
233
+ (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
234
+ > The `public_network` block exports:
235
+ """
236
+ return pulumi.get(self, "public_network")
237
+
238
+ @public_network.setter
239
+ def public_network(self, value: Optional[pulumi.Input['RedisClusterPublicNetworkArgs']]):
240
+ pulumi.set(self, "public_network", value)
241
+
242
+ @property
243
+ @pulumi.getter
244
+ def settings(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
245
+ """
246
+ Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
247
+ with scaleway API or CLI
248
+ """
249
+ return pulumi.get(self, "settings")
250
+
251
+ @settings.setter
252
+ def settings(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
253
+ pulumi.set(self, "settings", value)
254
+
255
+ @property
256
+ @pulumi.getter
257
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
258
+ """
259
+ The tags associated with the Redis™ cluster.
260
+ """
261
+ return pulumi.get(self, "tags")
262
+
263
+ @tags.setter
264
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
265
+ pulumi.set(self, "tags", value)
266
+
267
+ @property
268
+ @pulumi.getter(name="tlsEnabled")
269
+ def tls_enabled(self) -> Optional[pulumi.Input[bool]]:
270
+ """
271
+ Whether TLS is enabled or not.
272
+
273
+ > The changes on `tls_enabled` will force the resource creation.
274
+ """
275
+ return pulumi.get(self, "tls_enabled")
276
+
277
+ @tls_enabled.setter
278
+ def tls_enabled(self, value: Optional[pulumi.Input[bool]]):
279
+ pulumi.set(self, "tls_enabled", value)
280
+
281
+ @property
282
+ @pulumi.getter
283
+ def zone(self) -> Optional[pulumi.Input[str]]:
284
+ """
285
+ `zone`) The zone in which the
286
+ Redis™ cluster should be created.
287
+ """
288
+ return pulumi.get(self, "zone")
289
+
290
+ @zone.setter
291
+ def zone(self, value: Optional[pulumi.Input[str]]):
292
+ pulumi.set(self, "zone", value)
293
+
294
+
295
+ @pulumi.input_type
296
+ class _RedisClusterState:
297
+ def __init__(__self__, *,
298
+ acls: Optional[pulumi.Input[Sequence[pulumi.Input['RedisClusterAclArgs']]]] = None,
299
+ certificate: Optional[pulumi.Input[str]] = None,
300
+ cluster_size: Optional[pulumi.Input[int]] = None,
301
+ created_at: Optional[pulumi.Input[str]] = None,
302
+ name: Optional[pulumi.Input[str]] = None,
303
+ node_type: Optional[pulumi.Input[str]] = None,
304
+ password: Optional[pulumi.Input[str]] = None,
305
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input['RedisClusterPrivateNetworkArgs']]]] = None,
306
+ project_id: Optional[pulumi.Input[str]] = None,
307
+ public_network: Optional[pulumi.Input['RedisClusterPublicNetworkArgs']] = None,
308
+ settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
309
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
310
+ tls_enabled: Optional[pulumi.Input[bool]] = None,
311
+ updated_at: Optional[pulumi.Input[str]] = None,
312
+ user_name: Optional[pulumi.Input[str]] = None,
313
+ version: Optional[pulumi.Input[str]] = None,
314
+ zone: Optional[pulumi.Input[str]] = None):
315
+ """
316
+ Input properties used for looking up and filtering RedisCluster resources.
317
+ :param pulumi.Input[Sequence[pulumi.Input['RedisClusterAclArgs']]] acls: List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
318
+ :param pulumi.Input[str] certificate: The PEM of the certificate used by redis, only when `tls_enabled` is true
319
+ :param pulumi.Input[int] cluster_size: The number of nodes in the Redis™ cluster.
320
+
321
+ > **Important:** You cannot set `cluster_size` to 2, you either have to choose Standalone mode (1 node) or cluster mode
322
+ which is minimum 3 (1 main node + 2 secondary nodes)
323
+
324
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
325
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
326
+ `cluster_size` will destroy and recreate your cluster.
327
+
328
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
329
+ recreate your cluster as you will be switching to the cluster mode.
330
+ :param pulumi.Input[str] created_at: The date and time of creation of the Redis™ cluster.
331
+ :param pulumi.Input[str] name: The name of the Redis™ cluster.
332
+ :param pulumi.Input[str] node_type: The type of Redis™ cluster you want to create (e.g. `RED1-M`).
333
+
334
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
335
+ you cannot downgrade a Redis™ cluster.
336
+ :param pulumi.Input[str] password: Password for the first user of the Redis™ cluster.
337
+ :param pulumi.Input[Sequence[pulumi.Input['RedisClusterPrivateNetworkArgs']]] private_networks: Describes the Private Network you want to connect to your cluster. If not set, a public
338
+ network will be provided. More details on the Private Network section
339
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the Redis™ cluster is
340
+ associated with.
341
+ :param pulumi.Input['RedisClusterPublicNetworkArgs'] public_network: (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
342
+ > The `public_network` block exports:
343
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] settings: Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
344
+ with scaleway API or CLI
345
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Redis™ cluster.
346
+ :param pulumi.Input[bool] tls_enabled: Whether TLS is enabled or not.
347
+
348
+ > The changes on `tls_enabled` will force the resource creation.
349
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the Redis™ cluster.
350
+ :param pulumi.Input[str] user_name: Identifier for the first user of the Redis™ cluster.
351
+ :param pulumi.Input[str] version: Redis™ cluster's version (e.g. `6.2.7`).
352
+
353
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
354
+ cannot downgrade a Redis™ cluster.
355
+ :param pulumi.Input[str] zone: `zone`) The zone in which the
356
+ Redis™ cluster should be created.
357
+ """
358
+ if acls is not None:
359
+ pulumi.set(__self__, "acls", acls)
360
+ if certificate is not None:
361
+ pulumi.set(__self__, "certificate", certificate)
362
+ if cluster_size is not None:
363
+ pulumi.set(__self__, "cluster_size", cluster_size)
364
+ if created_at is not None:
365
+ pulumi.set(__self__, "created_at", created_at)
366
+ if name is not None:
367
+ pulumi.set(__self__, "name", name)
368
+ if node_type is not None:
369
+ pulumi.set(__self__, "node_type", node_type)
370
+ if password is not None:
371
+ pulumi.set(__self__, "password", password)
372
+ if private_networks is not None:
373
+ pulumi.set(__self__, "private_networks", private_networks)
374
+ if project_id is not None:
375
+ pulumi.set(__self__, "project_id", project_id)
376
+ if public_network is not None:
377
+ pulumi.set(__self__, "public_network", public_network)
378
+ if settings is not None:
379
+ pulumi.set(__self__, "settings", settings)
380
+ if tags is not None:
381
+ pulumi.set(__self__, "tags", tags)
382
+ if tls_enabled is not None:
383
+ pulumi.set(__self__, "tls_enabled", tls_enabled)
384
+ if updated_at is not None:
385
+ pulumi.set(__self__, "updated_at", updated_at)
386
+ if user_name is not None:
387
+ pulumi.set(__self__, "user_name", user_name)
388
+ if version is not None:
389
+ pulumi.set(__self__, "version", version)
390
+ if zone is not None:
391
+ pulumi.set(__self__, "zone", zone)
392
+
393
+ @property
394
+ @pulumi.getter
395
+ def acls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RedisClusterAclArgs']]]]:
396
+ """
397
+ List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
398
+ """
399
+ return pulumi.get(self, "acls")
400
+
401
+ @acls.setter
402
+ def acls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RedisClusterAclArgs']]]]):
403
+ pulumi.set(self, "acls", value)
404
+
405
+ @property
406
+ @pulumi.getter
407
+ def certificate(self) -> Optional[pulumi.Input[str]]:
408
+ """
409
+ The PEM of the certificate used by redis, only when `tls_enabled` is true
410
+ """
411
+ return pulumi.get(self, "certificate")
412
+
413
+ @certificate.setter
414
+ def certificate(self, value: Optional[pulumi.Input[str]]):
415
+ pulumi.set(self, "certificate", value)
416
+
417
+ @property
418
+ @pulumi.getter(name="clusterSize")
419
+ def cluster_size(self) -> Optional[pulumi.Input[int]]:
420
+ """
421
+ The number of nodes in the Redis™ cluster.
422
+
423
+ > **Important:** You cannot set `cluster_size` to 2, you either have to choose Standalone mode (1 node) or cluster mode
424
+ which is minimum 3 (1 main node + 2 secondary nodes)
425
+
426
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
427
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
428
+ `cluster_size` will destroy and recreate your cluster.
429
+
430
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
431
+ recreate your cluster as you will be switching to the cluster mode.
432
+ """
433
+ return pulumi.get(self, "cluster_size")
434
+
435
+ @cluster_size.setter
436
+ def cluster_size(self, value: Optional[pulumi.Input[int]]):
437
+ pulumi.set(self, "cluster_size", value)
438
+
439
+ @property
440
+ @pulumi.getter(name="createdAt")
441
+ def created_at(self) -> Optional[pulumi.Input[str]]:
442
+ """
443
+ The date and time of creation of the Redis™ cluster.
444
+ """
445
+ return pulumi.get(self, "created_at")
446
+
447
+ @created_at.setter
448
+ def created_at(self, value: Optional[pulumi.Input[str]]):
449
+ pulumi.set(self, "created_at", value)
450
+
451
+ @property
452
+ @pulumi.getter
453
+ def name(self) -> Optional[pulumi.Input[str]]:
454
+ """
455
+ The name of the Redis™ cluster.
456
+ """
457
+ return pulumi.get(self, "name")
458
+
459
+ @name.setter
460
+ def name(self, value: Optional[pulumi.Input[str]]):
461
+ pulumi.set(self, "name", value)
462
+
463
+ @property
464
+ @pulumi.getter(name="nodeType")
465
+ def node_type(self) -> Optional[pulumi.Input[str]]:
466
+ """
467
+ The type of Redis™ cluster you want to create (e.g. `RED1-M`).
468
+
469
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
470
+ you cannot downgrade a Redis™ cluster.
471
+ """
472
+ return pulumi.get(self, "node_type")
473
+
474
+ @node_type.setter
475
+ def node_type(self, value: Optional[pulumi.Input[str]]):
476
+ pulumi.set(self, "node_type", value)
477
+
478
+ @property
479
+ @pulumi.getter
480
+ def password(self) -> Optional[pulumi.Input[str]]:
481
+ """
482
+ Password for the first user of the Redis™ cluster.
483
+ """
484
+ return pulumi.get(self, "password")
485
+
486
+ @password.setter
487
+ def password(self, value: Optional[pulumi.Input[str]]):
488
+ pulumi.set(self, "password", value)
489
+
490
+ @property
491
+ @pulumi.getter(name="privateNetworks")
492
+ def private_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RedisClusterPrivateNetworkArgs']]]]:
493
+ """
494
+ Describes the Private Network you want to connect to your cluster. If not set, a public
495
+ network will be provided. More details on the Private Network section
496
+ """
497
+ return pulumi.get(self, "private_networks")
498
+
499
+ @private_networks.setter
500
+ def private_networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RedisClusterPrivateNetworkArgs']]]]):
501
+ pulumi.set(self, "private_networks", value)
502
+
503
+ @property
504
+ @pulumi.getter(name="projectId")
505
+ def project_id(self) -> Optional[pulumi.Input[str]]:
506
+ """
507
+ `project_id`) The ID of the project the Redis™ cluster is
508
+ associated with.
509
+ """
510
+ return pulumi.get(self, "project_id")
511
+
512
+ @project_id.setter
513
+ def project_id(self, value: Optional[pulumi.Input[str]]):
514
+ pulumi.set(self, "project_id", value)
515
+
516
+ @property
517
+ @pulumi.getter(name="publicNetwork")
518
+ def public_network(self) -> Optional[pulumi.Input['RedisClusterPublicNetworkArgs']]:
519
+ """
520
+ (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
521
+ > The `public_network` block exports:
522
+ """
523
+ return pulumi.get(self, "public_network")
524
+
525
+ @public_network.setter
526
+ def public_network(self, value: Optional[pulumi.Input['RedisClusterPublicNetworkArgs']]):
527
+ pulumi.set(self, "public_network", value)
528
+
529
+ @property
530
+ @pulumi.getter
531
+ def settings(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
532
+ """
533
+ Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
534
+ with scaleway API or CLI
535
+ """
536
+ return pulumi.get(self, "settings")
537
+
538
+ @settings.setter
539
+ def settings(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
540
+ pulumi.set(self, "settings", value)
541
+
542
+ @property
543
+ @pulumi.getter
544
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
545
+ """
546
+ The tags associated with the Redis™ cluster.
547
+ """
548
+ return pulumi.get(self, "tags")
549
+
550
+ @tags.setter
551
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
552
+ pulumi.set(self, "tags", value)
553
+
554
+ @property
555
+ @pulumi.getter(name="tlsEnabled")
556
+ def tls_enabled(self) -> Optional[pulumi.Input[bool]]:
557
+ """
558
+ Whether TLS is enabled or not.
559
+
560
+ > The changes on `tls_enabled` will force the resource creation.
561
+ """
562
+ return pulumi.get(self, "tls_enabled")
563
+
564
+ @tls_enabled.setter
565
+ def tls_enabled(self, value: Optional[pulumi.Input[bool]]):
566
+ pulumi.set(self, "tls_enabled", value)
567
+
568
+ @property
569
+ @pulumi.getter(name="updatedAt")
570
+ def updated_at(self) -> Optional[pulumi.Input[str]]:
571
+ """
572
+ The date and time of the last update of the Redis™ cluster.
573
+ """
574
+ return pulumi.get(self, "updated_at")
575
+
576
+ @updated_at.setter
577
+ def updated_at(self, value: Optional[pulumi.Input[str]]):
578
+ pulumi.set(self, "updated_at", value)
579
+
580
+ @property
581
+ @pulumi.getter(name="userName")
582
+ def user_name(self) -> Optional[pulumi.Input[str]]:
583
+ """
584
+ Identifier for the first user of the Redis™ cluster.
585
+ """
586
+ return pulumi.get(self, "user_name")
587
+
588
+ @user_name.setter
589
+ def user_name(self, value: Optional[pulumi.Input[str]]):
590
+ pulumi.set(self, "user_name", value)
591
+
592
+ @property
593
+ @pulumi.getter
594
+ def version(self) -> Optional[pulumi.Input[str]]:
595
+ """
596
+ Redis™ cluster's version (e.g. `6.2.7`).
597
+
598
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
599
+ cannot downgrade a Redis™ cluster.
600
+ """
601
+ return pulumi.get(self, "version")
602
+
603
+ @version.setter
604
+ def version(self, value: Optional[pulumi.Input[str]]):
605
+ pulumi.set(self, "version", value)
606
+
607
+ @property
608
+ @pulumi.getter
609
+ def zone(self) -> Optional[pulumi.Input[str]]:
610
+ """
611
+ `zone`) The zone in which the
612
+ Redis™ cluster should be created.
613
+ """
614
+ return pulumi.get(self, "zone")
615
+
616
+ @zone.setter
617
+ def zone(self, value: Optional[pulumi.Input[str]]):
618
+ pulumi.set(self, "zone", value)
619
+
620
+
621
+ class RedisCluster(pulumi.CustomResource):
622
+ @overload
623
+ def __init__(__self__,
624
+ resource_name: str,
625
+ opts: Optional[pulumi.ResourceOptions] = None,
626
+ acls: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RedisClusterAclArgs', 'RedisClusterAclArgsDict']]]]] = None,
627
+ cluster_size: Optional[pulumi.Input[int]] = None,
628
+ name: Optional[pulumi.Input[str]] = None,
629
+ node_type: Optional[pulumi.Input[str]] = None,
630
+ password: Optional[pulumi.Input[str]] = None,
631
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RedisClusterPrivateNetworkArgs', 'RedisClusterPrivateNetworkArgsDict']]]]] = None,
632
+ project_id: Optional[pulumi.Input[str]] = None,
633
+ public_network: Optional[pulumi.Input[Union['RedisClusterPublicNetworkArgs', 'RedisClusterPublicNetworkArgsDict']]] = None,
634
+ settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
635
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
636
+ tls_enabled: Optional[pulumi.Input[bool]] = None,
637
+ user_name: Optional[pulumi.Input[str]] = None,
638
+ version: Optional[pulumi.Input[str]] = None,
639
+ zone: Optional[pulumi.Input[str]] = None,
640
+ __props__=None):
641
+ """
642
+ Creates and manages Scaleway Redis™ clusters.
643
+ For more information refer to [the API documentation](https://www.scaleway.com/en/developers/api/managed-database-redis).
644
+
645
+ ## Example Usage
646
+
647
+ ### Basic
648
+
649
+ ```python
650
+ import pulumi
651
+ import pulumiverse_scaleway as scaleway
652
+
653
+ main = scaleway.RedisCluster("main",
654
+ name="test_redis_basic",
655
+ version="6.2.7",
656
+ node_type="RED1-MICRO",
657
+ user_name="my_initial_user",
658
+ password="thiZ_is_v&ry_s3cret",
659
+ tags=[
660
+ "test",
661
+ "redis",
662
+ ],
663
+ cluster_size=1,
664
+ tls_enabled=True,
665
+ acls=[{
666
+ "ip": "0.0.0.0/0",
667
+ "description": "Allow all",
668
+ }])
669
+ ```
670
+
671
+ ### With settings
672
+
673
+ ```python
674
+ import pulumi
675
+ import pulumiverse_scaleway as scaleway
676
+
677
+ main = scaleway.RedisCluster("main",
678
+ name="test_redis_basic",
679
+ version="6.2.7",
680
+ node_type="RED1-MICRO",
681
+ user_name="my_initial_user",
682
+ password="thiZ_is_v&ry_s3cret",
683
+ settings={
684
+ "maxclients": "1000",
685
+ "tcp-keepalive": "120",
686
+ })
687
+ ```
688
+
689
+ ### With a Private Network
690
+
691
+ ```python
692
+ import pulumi
693
+ import pulumiverse_scaleway as scaleway
694
+
695
+ pn = scaleway.VpcPrivateNetwork("pn", name="private-network")
696
+ main = scaleway.RedisCluster("main",
697
+ name="test_redis_endpoints",
698
+ version="6.2.7",
699
+ node_type="RED1-MICRO",
700
+ user_name="my_initial_user",
701
+ password="thiZ_is_v&ry_s3cret",
702
+ cluster_size=1,
703
+ private_networks=[{
704
+ "id": pn.id,
705
+ "service_ips": ["10.12.1.1/20"],
706
+ }],
707
+ opts = pulumi.ResourceOptions(depends_on=[pn]))
708
+ ```
709
+
710
+ ## Import
711
+
712
+ Redis™ cluster can be imported using the `{zone}/{id}`, e.g.
713
+
714
+ bash
715
+
716
+ ```sh
717
+ $ pulumi import scaleway:index/redisCluster:RedisCluster main fr-par-1/11111111-1111-1111-1111-111111111111
718
+ ```
719
+
720
+ :param str resource_name: The name of the resource.
721
+ :param pulumi.ResourceOptions opts: Options for the resource.
722
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RedisClusterAclArgs', 'RedisClusterAclArgsDict']]]] acls: List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
723
+ :param pulumi.Input[int] cluster_size: The number of nodes in the Redis™ cluster.
724
+
725
+ > **Important:** You cannot set `cluster_size` to 2, you either have to choose Standalone mode (1 node) or cluster mode
726
+ which is minimum 3 (1 main node + 2 secondary nodes)
727
+
728
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
729
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
730
+ `cluster_size` will destroy and recreate your cluster.
731
+
732
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
733
+ recreate your cluster as you will be switching to the cluster mode.
734
+ :param pulumi.Input[str] name: The name of the Redis™ cluster.
735
+ :param pulumi.Input[str] node_type: The type of Redis™ cluster you want to create (e.g. `RED1-M`).
736
+
737
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
738
+ you cannot downgrade a Redis™ cluster.
739
+ :param pulumi.Input[str] password: Password for the first user of the Redis™ cluster.
740
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RedisClusterPrivateNetworkArgs', 'RedisClusterPrivateNetworkArgsDict']]]] private_networks: Describes the Private Network you want to connect to your cluster. If not set, a public
741
+ network will be provided. More details on the Private Network section
742
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the Redis™ cluster is
743
+ associated with.
744
+ :param pulumi.Input[Union['RedisClusterPublicNetworkArgs', 'RedisClusterPublicNetworkArgsDict']] public_network: (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
745
+ > The `public_network` block exports:
746
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] settings: Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
747
+ with scaleway API or CLI
748
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Redis™ cluster.
749
+ :param pulumi.Input[bool] tls_enabled: Whether TLS is enabled or not.
750
+
751
+ > The changes on `tls_enabled` will force the resource creation.
752
+ :param pulumi.Input[str] user_name: Identifier for the first user of the Redis™ cluster.
753
+ :param pulumi.Input[str] version: Redis™ cluster's version (e.g. `6.2.7`).
754
+
755
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
756
+ cannot downgrade a Redis™ cluster.
757
+ :param pulumi.Input[str] zone: `zone`) The zone in which the
758
+ Redis™ cluster should be created.
759
+ """
760
+ ...
761
+ @overload
762
+ def __init__(__self__,
763
+ resource_name: str,
764
+ args: RedisClusterArgs,
765
+ opts: Optional[pulumi.ResourceOptions] = None):
766
+ """
767
+ Creates and manages Scaleway Redis™ clusters.
768
+ For more information refer to [the API documentation](https://www.scaleway.com/en/developers/api/managed-database-redis).
769
+
770
+ ## Example Usage
771
+
772
+ ### Basic
773
+
774
+ ```python
775
+ import pulumi
776
+ import pulumiverse_scaleway as scaleway
777
+
778
+ main = scaleway.RedisCluster("main",
779
+ name="test_redis_basic",
780
+ version="6.2.7",
781
+ node_type="RED1-MICRO",
782
+ user_name="my_initial_user",
783
+ password="thiZ_is_v&ry_s3cret",
784
+ tags=[
785
+ "test",
786
+ "redis",
787
+ ],
788
+ cluster_size=1,
789
+ tls_enabled=True,
790
+ acls=[{
791
+ "ip": "0.0.0.0/0",
792
+ "description": "Allow all",
793
+ }])
794
+ ```
795
+
796
+ ### With settings
797
+
798
+ ```python
799
+ import pulumi
800
+ import pulumiverse_scaleway as scaleway
801
+
802
+ main = scaleway.RedisCluster("main",
803
+ name="test_redis_basic",
804
+ version="6.2.7",
805
+ node_type="RED1-MICRO",
806
+ user_name="my_initial_user",
807
+ password="thiZ_is_v&ry_s3cret",
808
+ settings={
809
+ "maxclients": "1000",
810
+ "tcp-keepalive": "120",
811
+ })
812
+ ```
813
+
814
+ ### With a Private Network
815
+
816
+ ```python
817
+ import pulumi
818
+ import pulumiverse_scaleway as scaleway
819
+
820
+ pn = scaleway.VpcPrivateNetwork("pn", name="private-network")
821
+ main = scaleway.RedisCluster("main",
822
+ name="test_redis_endpoints",
823
+ version="6.2.7",
824
+ node_type="RED1-MICRO",
825
+ user_name="my_initial_user",
826
+ password="thiZ_is_v&ry_s3cret",
827
+ cluster_size=1,
828
+ private_networks=[{
829
+ "id": pn.id,
830
+ "service_ips": ["10.12.1.1/20"],
831
+ }],
832
+ opts = pulumi.ResourceOptions(depends_on=[pn]))
833
+ ```
834
+
835
+ ## Import
836
+
837
+ Redis™ cluster can be imported using the `{zone}/{id}`, e.g.
838
+
839
+ bash
840
+
841
+ ```sh
842
+ $ pulumi import scaleway:index/redisCluster:RedisCluster main fr-par-1/11111111-1111-1111-1111-111111111111
843
+ ```
844
+
845
+ :param str resource_name: The name of the resource.
846
+ :param RedisClusterArgs args: The arguments to use to populate this resource's properties.
847
+ :param pulumi.ResourceOptions opts: Options for the resource.
848
+ """
849
+ ...
850
+ def __init__(__self__, resource_name: str, *args, **kwargs):
851
+ resource_args, opts = _utilities.get_resource_args_opts(RedisClusterArgs, pulumi.ResourceOptions, *args, **kwargs)
852
+ if resource_args is not None:
853
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
854
+ else:
855
+ __self__._internal_init(resource_name, *args, **kwargs)
856
+
857
+ def _internal_init(__self__,
858
+ resource_name: str,
859
+ opts: Optional[pulumi.ResourceOptions] = None,
860
+ acls: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RedisClusterAclArgs', 'RedisClusterAclArgsDict']]]]] = None,
861
+ cluster_size: Optional[pulumi.Input[int]] = None,
862
+ name: Optional[pulumi.Input[str]] = None,
863
+ node_type: Optional[pulumi.Input[str]] = None,
864
+ password: Optional[pulumi.Input[str]] = None,
865
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RedisClusterPrivateNetworkArgs', 'RedisClusterPrivateNetworkArgsDict']]]]] = None,
866
+ project_id: Optional[pulumi.Input[str]] = None,
867
+ public_network: Optional[pulumi.Input[Union['RedisClusterPublicNetworkArgs', 'RedisClusterPublicNetworkArgsDict']]] = None,
868
+ settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
869
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
870
+ tls_enabled: Optional[pulumi.Input[bool]] = None,
871
+ user_name: Optional[pulumi.Input[str]] = None,
872
+ version: Optional[pulumi.Input[str]] = None,
873
+ zone: Optional[pulumi.Input[str]] = None,
874
+ __props__=None):
875
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
876
+ if not isinstance(opts, pulumi.ResourceOptions):
877
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
878
+ if opts.id is None:
879
+ if __props__ is not None:
880
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
881
+ __props__ = RedisClusterArgs.__new__(RedisClusterArgs)
882
+
883
+ __props__.__dict__["acls"] = acls
884
+ __props__.__dict__["cluster_size"] = cluster_size
885
+ __props__.__dict__["name"] = name
886
+ if node_type is None and not opts.urn:
887
+ raise TypeError("Missing required property 'node_type'")
888
+ __props__.__dict__["node_type"] = node_type
889
+ if password is None and not opts.urn:
890
+ raise TypeError("Missing required property 'password'")
891
+ __props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password)
892
+ __props__.__dict__["private_networks"] = private_networks
893
+ __props__.__dict__["project_id"] = project_id
894
+ __props__.__dict__["public_network"] = public_network
895
+ __props__.__dict__["settings"] = settings
896
+ __props__.__dict__["tags"] = tags
897
+ __props__.__dict__["tls_enabled"] = tls_enabled
898
+ if user_name is None and not opts.urn:
899
+ raise TypeError("Missing required property 'user_name'")
900
+ __props__.__dict__["user_name"] = user_name
901
+ if version is None and not opts.urn:
902
+ raise TypeError("Missing required property 'version'")
903
+ __props__.__dict__["version"] = version
904
+ __props__.__dict__["zone"] = zone
905
+ __props__.__dict__["certificate"] = None
906
+ __props__.__dict__["created_at"] = None
907
+ __props__.__dict__["updated_at"] = None
908
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["password"])
909
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
910
+ super(RedisCluster, __self__).__init__(
911
+ 'scaleway:index/redisCluster:RedisCluster',
912
+ resource_name,
913
+ __props__,
914
+ opts)
915
+
916
+ @staticmethod
917
+ def get(resource_name: str,
918
+ id: pulumi.Input[str],
919
+ opts: Optional[pulumi.ResourceOptions] = None,
920
+ acls: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RedisClusterAclArgs', 'RedisClusterAclArgsDict']]]]] = None,
921
+ certificate: Optional[pulumi.Input[str]] = None,
922
+ cluster_size: Optional[pulumi.Input[int]] = None,
923
+ created_at: Optional[pulumi.Input[str]] = None,
924
+ name: Optional[pulumi.Input[str]] = None,
925
+ node_type: Optional[pulumi.Input[str]] = None,
926
+ password: Optional[pulumi.Input[str]] = None,
927
+ private_networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RedisClusterPrivateNetworkArgs', 'RedisClusterPrivateNetworkArgsDict']]]]] = None,
928
+ project_id: Optional[pulumi.Input[str]] = None,
929
+ public_network: Optional[pulumi.Input[Union['RedisClusterPublicNetworkArgs', 'RedisClusterPublicNetworkArgsDict']]] = None,
930
+ settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
931
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
932
+ tls_enabled: Optional[pulumi.Input[bool]] = None,
933
+ updated_at: Optional[pulumi.Input[str]] = None,
934
+ user_name: Optional[pulumi.Input[str]] = None,
935
+ version: Optional[pulumi.Input[str]] = None,
936
+ zone: Optional[pulumi.Input[str]] = None) -> 'RedisCluster':
937
+ """
938
+ Get an existing RedisCluster resource's state with the given name, id, and optional extra
939
+ properties used to qualify the lookup.
940
+
941
+ :param str resource_name: The unique name of the resulting resource.
942
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
943
+ :param pulumi.ResourceOptions opts: Options for the resource.
944
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RedisClusterAclArgs', 'RedisClusterAclArgsDict']]]] acls: List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
945
+ :param pulumi.Input[str] certificate: The PEM of the certificate used by redis, only when `tls_enabled` is true
946
+ :param pulumi.Input[int] cluster_size: The number of nodes in the Redis™ cluster.
947
+
948
+ > **Important:** You cannot set `cluster_size` to 2, you either have to choose Standalone mode (1 node) or cluster mode
949
+ which is minimum 3 (1 main node + 2 secondary nodes)
950
+
951
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
952
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
953
+ `cluster_size` will destroy and recreate your cluster.
954
+
955
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
956
+ recreate your cluster as you will be switching to the cluster mode.
957
+ :param pulumi.Input[str] created_at: The date and time of creation of the Redis™ cluster.
958
+ :param pulumi.Input[str] name: The name of the Redis™ cluster.
959
+ :param pulumi.Input[str] node_type: The type of Redis™ cluster you want to create (e.g. `RED1-M`).
960
+
961
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
962
+ you cannot downgrade a Redis™ cluster.
963
+ :param pulumi.Input[str] password: Password for the first user of the Redis™ cluster.
964
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RedisClusterPrivateNetworkArgs', 'RedisClusterPrivateNetworkArgsDict']]]] private_networks: Describes the Private Network you want to connect to your cluster. If not set, a public
965
+ network will be provided. More details on the Private Network section
966
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the Redis™ cluster is
967
+ associated with.
968
+ :param pulumi.Input[Union['RedisClusterPublicNetworkArgs', 'RedisClusterPublicNetworkArgsDict']] public_network: (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
969
+ > The `public_network` block exports:
970
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] settings: Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
971
+ with scaleway API or CLI
972
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the Redis™ cluster.
973
+ :param pulumi.Input[bool] tls_enabled: Whether TLS is enabled or not.
974
+
975
+ > The changes on `tls_enabled` will force the resource creation.
976
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the Redis™ cluster.
977
+ :param pulumi.Input[str] user_name: Identifier for the first user of the Redis™ cluster.
978
+ :param pulumi.Input[str] version: Redis™ cluster's version (e.g. `6.2.7`).
979
+
980
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
981
+ cannot downgrade a Redis™ cluster.
982
+ :param pulumi.Input[str] zone: `zone`) The zone in which the
983
+ Redis™ cluster should be created.
984
+ """
985
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
986
+
987
+ __props__ = _RedisClusterState.__new__(_RedisClusterState)
988
+
989
+ __props__.__dict__["acls"] = acls
990
+ __props__.__dict__["certificate"] = certificate
991
+ __props__.__dict__["cluster_size"] = cluster_size
992
+ __props__.__dict__["created_at"] = created_at
993
+ __props__.__dict__["name"] = name
994
+ __props__.__dict__["node_type"] = node_type
995
+ __props__.__dict__["password"] = password
996
+ __props__.__dict__["private_networks"] = private_networks
997
+ __props__.__dict__["project_id"] = project_id
998
+ __props__.__dict__["public_network"] = public_network
999
+ __props__.__dict__["settings"] = settings
1000
+ __props__.__dict__["tags"] = tags
1001
+ __props__.__dict__["tls_enabled"] = tls_enabled
1002
+ __props__.__dict__["updated_at"] = updated_at
1003
+ __props__.__dict__["user_name"] = user_name
1004
+ __props__.__dict__["version"] = version
1005
+ __props__.__dict__["zone"] = zone
1006
+ return RedisCluster(resource_name, opts=opts, __props__=__props__)
1007
+
1008
+ @property
1009
+ @pulumi.getter
1010
+ def acls(self) -> pulumi.Output[Optional[Sequence['outputs.RedisClusterAcl']]]:
1011
+ """
1012
+ List of acl rules, this is cluster's authorized IPs. More details on the ACL section.
1013
+ """
1014
+ return pulumi.get(self, "acls")
1015
+
1016
+ @property
1017
+ @pulumi.getter
1018
+ def certificate(self) -> pulumi.Output[str]:
1019
+ """
1020
+ The PEM of the certificate used by redis, only when `tls_enabled` is true
1021
+ """
1022
+ return pulumi.get(self, "certificate")
1023
+
1024
+ @property
1025
+ @pulumi.getter(name="clusterSize")
1026
+ def cluster_size(self) -> pulumi.Output[int]:
1027
+ """
1028
+ The number of nodes in the Redis™ cluster.
1029
+
1030
+ > **Important:** You cannot set `cluster_size` to 2, you either have to choose Standalone mode (1 node) or cluster mode
1031
+ which is minimum 3 (1 main node + 2 secondary nodes)
1032
+
1033
+ > **Important:** If you are using the cluster mode (>=3 nodes), you can set a bigger `cluster_size` than you initially
1034
+ did, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller
1035
+ `cluster_size` will destroy and recreate your cluster.
1036
+
1037
+ > **Important:** If you are using the Standalone mode (1 node), setting a bigger `cluster_size` will destroy and
1038
+ recreate your cluster as you will be switching to the cluster mode.
1039
+ """
1040
+ return pulumi.get(self, "cluster_size")
1041
+
1042
+ @property
1043
+ @pulumi.getter(name="createdAt")
1044
+ def created_at(self) -> pulumi.Output[str]:
1045
+ """
1046
+ The date and time of creation of the Redis™ cluster.
1047
+ """
1048
+ return pulumi.get(self, "created_at")
1049
+
1050
+ @property
1051
+ @pulumi.getter
1052
+ def name(self) -> pulumi.Output[str]:
1053
+ """
1054
+ The name of the Redis™ cluster.
1055
+ """
1056
+ return pulumi.get(self, "name")
1057
+
1058
+ @property
1059
+ @pulumi.getter(name="nodeType")
1060
+ def node_type(self) -> pulumi.Output[str]:
1061
+ """
1062
+ The type of Redis™ cluster you want to create (e.g. `RED1-M`).
1063
+
1064
+ > **Important:** Updates to `node_type` will migrate the Redis™ cluster to the desired `node_type`. Keep in mind that
1065
+ you cannot downgrade a Redis™ cluster.
1066
+ """
1067
+ return pulumi.get(self, "node_type")
1068
+
1069
+ @property
1070
+ @pulumi.getter
1071
+ def password(self) -> pulumi.Output[str]:
1072
+ """
1073
+ Password for the first user of the Redis™ cluster.
1074
+ """
1075
+ return pulumi.get(self, "password")
1076
+
1077
+ @property
1078
+ @pulumi.getter(name="privateNetworks")
1079
+ def private_networks(self) -> pulumi.Output[Optional[Sequence['outputs.RedisClusterPrivateNetwork']]]:
1080
+ """
1081
+ Describes the Private Network you want to connect to your cluster. If not set, a public
1082
+ network will be provided. More details on the Private Network section
1083
+ """
1084
+ return pulumi.get(self, "private_networks")
1085
+
1086
+ @property
1087
+ @pulumi.getter(name="projectId")
1088
+ def project_id(self) -> pulumi.Output[str]:
1089
+ """
1090
+ `project_id`) The ID of the project the Redis™ cluster is
1091
+ associated with.
1092
+ """
1093
+ return pulumi.get(self, "project_id")
1094
+
1095
+ @property
1096
+ @pulumi.getter(name="publicNetwork")
1097
+ def public_network(self) -> pulumi.Output['outputs.RedisClusterPublicNetwork']:
1098
+ """
1099
+ (Optional) Public network details. Only one of `private_network` and `public_network` may be set.
1100
+ > The `public_network` block exports:
1101
+ """
1102
+ return pulumi.get(self, "public_network")
1103
+
1104
+ @property
1105
+ @pulumi.getter
1106
+ def settings(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1107
+ """
1108
+ Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions
1109
+ with scaleway API or CLI
1110
+ """
1111
+ return pulumi.get(self, "settings")
1112
+
1113
+ @property
1114
+ @pulumi.getter
1115
+ def tags(self) -> pulumi.Output[Optional[Sequence[str]]]:
1116
+ """
1117
+ The tags associated with the Redis™ cluster.
1118
+ """
1119
+ return pulumi.get(self, "tags")
1120
+
1121
+ @property
1122
+ @pulumi.getter(name="tlsEnabled")
1123
+ def tls_enabled(self) -> pulumi.Output[Optional[bool]]:
1124
+ """
1125
+ Whether TLS is enabled or not.
1126
+
1127
+ > The changes on `tls_enabled` will force the resource creation.
1128
+ """
1129
+ return pulumi.get(self, "tls_enabled")
1130
+
1131
+ @property
1132
+ @pulumi.getter(name="updatedAt")
1133
+ def updated_at(self) -> pulumi.Output[str]:
1134
+ """
1135
+ The date and time of the last update of the Redis™ cluster.
1136
+ """
1137
+ return pulumi.get(self, "updated_at")
1138
+
1139
+ @property
1140
+ @pulumi.getter(name="userName")
1141
+ def user_name(self) -> pulumi.Output[str]:
1142
+ """
1143
+ Identifier for the first user of the Redis™ cluster.
1144
+ """
1145
+ return pulumi.get(self, "user_name")
1146
+
1147
+ @property
1148
+ @pulumi.getter
1149
+ def version(self) -> pulumi.Output[str]:
1150
+ """
1151
+ Redis™ cluster's version (e.g. `6.2.7`).
1152
+
1153
+ > **Important:** Updates to `version` will migrate the Redis™ cluster to the desired `version`. Keep in mind that you
1154
+ cannot downgrade a Redis™ cluster.
1155
+ """
1156
+ return pulumi.get(self, "version")
1157
+
1158
+ @property
1159
+ @pulumi.getter
1160
+ def zone(self) -> pulumi.Output[str]:
1161
+ """
1162
+ `zone`) The zone in which the
1163
+ Redis™ cluster should be created.
1164
+ """
1165
+ return pulumi.get(self, "zone")
1166
+