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