pulumiverse-scaleway 1.25.0a1742464679__py3-none-any.whl → 1.25.0a1742668904__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. pulumiverse_scaleway/__init__.py +929 -0
  2. pulumiverse_scaleway/account/__init__.py +12 -0
  3. pulumiverse_scaleway/account/get_availability_zones.py +139 -0
  4. pulumiverse_scaleway/account/get_project.py +170 -0
  5. pulumiverse_scaleway/account/get_ssh_key.py +205 -0
  6. pulumiverse_scaleway/account/project.py +318 -0
  7. pulumiverse_scaleway/account/ssh_key.py +456 -0
  8. pulumiverse_scaleway/account_project.py +6 -0
  9. pulumiverse_scaleway/account_ssh_key.py +12 -6
  10. pulumiverse_scaleway/apple_silicon_server.py +8 -2
  11. pulumiverse_scaleway/applesilicon/__init__.py +10 -0
  12. pulumiverse_scaleway/applesilicon/_inputs.py +154 -0
  13. pulumiverse_scaleway/applesilicon/outputs.py +119 -0
  14. pulumiverse_scaleway/applesilicon/server.py +690 -0
  15. pulumiverse_scaleway/baremetal_server.py +64 -58
  16. pulumiverse_scaleway/billing/__init__.py +10 -0
  17. pulumiverse_scaleway/billing/get_consumptions.py +134 -0
  18. pulumiverse_scaleway/billing/get_invoices.py +154 -0
  19. pulumiverse_scaleway/billing/outputs.py +288 -0
  20. pulumiverse_scaleway/block/__init__.py +11 -0
  21. pulumiverse_scaleway/block/get_snapshot.py +174 -0
  22. pulumiverse_scaleway/block/get_volume.py +199 -0
  23. pulumiverse_scaleway/block/snapshot.py +403 -0
  24. pulumiverse_scaleway/block/volume.py +576 -0
  25. pulumiverse_scaleway/block_snapshot.py +12 -6
  26. pulumiverse_scaleway/block_volume.py +16 -10
  27. pulumiverse_scaleway/cockpit.py +10 -4
  28. pulumiverse_scaleway/cockpit_alert_manager.py +12 -6
  29. pulumiverse_scaleway/cockpit_grafana_user.py +12 -6
  30. pulumiverse_scaleway/cockpit_source.py +12 -6
  31. pulumiverse_scaleway/cockpit_token.py +16 -10
  32. pulumiverse_scaleway/container.py +16 -10
  33. pulumiverse_scaleway/container_cron.py +14 -8
  34. pulumiverse_scaleway/container_domain.py +24 -18
  35. pulumiverse_scaleway/container_namespace.py +10 -4
  36. pulumiverse_scaleway/container_token.py +32 -26
  37. pulumiverse_scaleway/container_trigger.py +12 -6
  38. pulumiverse_scaleway/containers/__init__.py +17 -0
  39. pulumiverse_scaleway/containers/_inputs.py +389 -0
  40. pulumiverse_scaleway/containers/container.py +1635 -0
  41. pulumiverse_scaleway/containers/cron.py +460 -0
  42. pulumiverse_scaleway/containers/domain.py +408 -0
  43. pulumiverse_scaleway/containers/get_container.py +562 -0
  44. pulumiverse_scaleway/containers/get_namespace.py +283 -0
  45. pulumiverse_scaleway/containers/namespace.py +638 -0
  46. pulumiverse_scaleway/containers/outputs.py +412 -0
  47. pulumiverse_scaleway/containers/token.py +454 -0
  48. pulumiverse_scaleway/containers/trigger.py +482 -0
  49. pulumiverse_scaleway/database.py +10 -4
  50. pulumiverse_scaleway/database_acl.py +10 -4
  51. pulumiverse_scaleway/database_backup.py +14 -8
  52. pulumiverse_scaleway/database_instance.py +24 -18
  53. pulumiverse_scaleway/database_privilege.py +16 -10
  54. pulumiverse_scaleway/database_read_replica.py +22 -16
  55. pulumiverse_scaleway/database_user.py +10 -4
  56. pulumiverse_scaleway/databases/__init__.py +23 -0
  57. pulumiverse_scaleway/databases/_inputs.py +822 -0
  58. pulumiverse_scaleway/databases/acl.py +334 -0
  59. pulumiverse_scaleway/databases/database.py +409 -0
  60. pulumiverse_scaleway/databases/database_backup.py +576 -0
  61. pulumiverse_scaleway/databases/get_acl.py +143 -0
  62. pulumiverse_scaleway/databases/get_database.py +187 -0
  63. pulumiverse_scaleway/databases/get_database_backup.py +253 -0
  64. pulumiverse_scaleway/databases/get_instance.py +415 -0
  65. pulumiverse_scaleway/databases/get_privilege.py +181 -0
  66. pulumiverse_scaleway/databases/instance.py +1696 -0
  67. pulumiverse_scaleway/databases/outputs.py +866 -0
  68. pulumiverse_scaleway/databases/privilege.py +424 -0
  69. pulumiverse_scaleway/databases/read_replica.py +530 -0
  70. pulumiverse_scaleway/databases/serverless_database.py +434 -0
  71. pulumiverse_scaleway/databases/snapshot.py +610 -0
  72. pulumiverse_scaleway/databases/user.py +448 -0
  73. pulumiverse_scaleway/domain/__init__.py +13 -0
  74. pulumiverse_scaleway/domain/_inputs.py +341 -0
  75. pulumiverse_scaleway/domain/get_record.py +340 -0
  76. pulumiverse_scaleway/domain/get_zone.py +201 -0
  77. pulumiverse_scaleway/domain/outputs.py +408 -0
  78. pulumiverse_scaleway/domain/record.py +1118 -0
  79. pulumiverse_scaleway/domain/zone.py +432 -0
  80. pulumiverse_scaleway/domain_record.py +36 -30
  81. pulumiverse_scaleway/domain_zone.py +6 -0
  82. pulumiverse_scaleway/elasticmetal/__init__.py +18 -0
  83. pulumiverse_scaleway/elasticmetal/_inputs.py +509 -0
  84. pulumiverse_scaleway/elasticmetal/get_ip.py +247 -0
  85. pulumiverse_scaleway/elasticmetal/get_ips.py +240 -0
  86. pulumiverse_scaleway/elasticmetal/get_offer.py +245 -0
  87. pulumiverse_scaleway/elasticmetal/get_option.py +168 -0
  88. pulumiverse_scaleway/elasticmetal/get_os.py +174 -0
  89. pulumiverse_scaleway/elasticmetal/get_server.py +422 -0
  90. pulumiverse_scaleway/elasticmetal/ip.py +704 -0
  91. pulumiverse_scaleway/elasticmetal/ip_mac_address.py +512 -0
  92. pulumiverse_scaleway/elasticmetal/outputs.py +974 -0
  93. pulumiverse_scaleway/elasticmetal/server.py +1591 -0
  94. pulumiverse_scaleway/flexible_ip.py +22 -16
  95. pulumiverse_scaleway/flexible_ip_mac_address.py +22 -16
  96. pulumiverse_scaleway/function.py +6 -0
  97. pulumiverse_scaleway/function_cron.py +16 -10
  98. pulumiverse_scaleway/function_domain.py +16 -10
  99. pulumiverse_scaleway/function_namespace.py +10 -4
  100. pulumiverse_scaleway/function_token.py +32 -26
  101. pulumiverse_scaleway/function_trigger.py +12 -6
  102. pulumiverse_scaleway/functions/__init__.py +17 -0
  103. pulumiverse_scaleway/functions/_inputs.py +211 -0
  104. pulumiverse_scaleway/functions/cron.py +464 -0
  105. pulumiverse_scaleway/functions/domain.py +372 -0
  106. pulumiverse_scaleway/functions/function.py +1105 -0
  107. pulumiverse_scaleway/functions/get_function.py +365 -0
  108. pulumiverse_scaleway/functions/get_namespace.py +238 -0
  109. pulumiverse_scaleway/functions/namespace.py +582 -0
  110. pulumiverse_scaleway/functions/outputs.py +168 -0
  111. pulumiverse_scaleway/functions/token.py +462 -0
  112. pulumiverse_scaleway/functions/trigger.py +482 -0
  113. pulumiverse_scaleway/get_account_project.py +6 -2
  114. pulumiverse_scaleway/get_account_ssh_key.py +6 -2
  115. pulumiverse_scaleway/get_availability_zones.py +8 -4
  116. pulumiverse_scaleway/get_baremetal_offer.py +4 -0
  117. pulumiverse_scaleway/get_baremetal_option.py +8 -4
  118. pulumiverse_scaleway/get_baremetal_os.py +8 -4
  119. pulumiverse_scaleway/get_baremetal_server.py +8 -4
  120. pulumiverse_scaleway/get_billing_consumptions.py +4 -0
  121. pulumiverse_scaleway/get_billing_invoices.py +4 -0
  122. pulumiverse_scaleway/get_block_snapshot.py +6 -2
  123. pulumiverse_scaleway/get_block_volume.py +6 -2
  124. pulumiverse_scaleway/get_cockpit.py +12 -8
  125. pulumiverse_scaleway/get_cockpit_plan.py +10 -6
  126. pulumiverse_scaleway/get_cockpit_source.py +8 -4
  127. pulumiverse_scaleway/get_container.py +16 -12
  128. pulumiverse_scaleway/get_container_namespace.py +10 -6
  129. pulumiverse_scaleway/get_database.py +6 -2
  130. pulumiverse_scaleway/get_database_acl.py +6 -2
  131. pulumiverse_scaleway/get_database_backup.py +10 -6
  132. pulumiverse_scaleway/get_database_instance.py +4 -0
  133. pulumiverse_scaleway/get_database_privilege.py +6 -2
  134. pulumiverse_scaleway/get_domain_record.py +10 -6
  135. pulumiverse_scaleway/get_domain_zone.py +4 -0
  136. pulumiverse_scaleway/get_flexible_ip.py +4 -0
  137. pulumiverse_scaleway/get_flexible_ips.py +16 -12
  138. pulumiverse_scaleway/get_function.py +6 -2
  139. pulumiverse_scaleway/get_function_namespace.py +6 -2
  140. pulumiverse_scaleway/get_iam_api_key.py +6 -2
  141. pulumiverse_scaleway/get_iam_application.py +8 -4
  142. pulumiverse_scaleway/get_iam_group.py +8 -4
  143. pulumiverse_scaleway/get_iam_ssh_key.py +4 -0
  144. pulumiverse_scaleway/get_iam_user.py +8 -4
  145. pulumiverse_scaleway/get_instance_image.py +4 -0
  146. pulumiverse_scaleway/get_instance_ip.py +4 -0
  147. pulumiverse_scaleway/get_instance_placement_group.py +4 -0
  148. pulumiverse_scaleway/get_instance_private_nic.py +10 -6
  149. pulumiverse_scaleway/get_instance_security_group.py +4 -0
  150. pulumiverse_scaleway/get_instance_server.py +4 -0
  151. pulumiverse_scaleway/get_instance_servers.py +4 -0
  152. pulumiverse_scaleway/get_instance_snapshot.py +8 -4
  153. pulumiverse_scaleway/get_instance_volume.py +4 -0
  154. pulumiverse_scaleway/get_iot_device.py +4 -0
  155. pulumiverse_scaleway/get_iot_hub.py +4 -0
  156. pulumiverse_scaleway/get_ipam_ip.py +18 -14
  157. pulumiverse_scaleway/get_ipam_ips.py +14 -10
  158. pulumiverse_scaleway/get_k8s_version.py +8 -4
  159. pulumiverse_scaleway/get_kubernetes_cluster.py +4 -0
  160. pulumiverse_scaleway/get_kubernetes_node_pool.py +4 -0
  161. pulumiverse_scaleway/get_lb_acls.py +8 -4
  162. pulumiverse_scaleway/get_lb_backend.py +18 -14
  163. pulumiverse_scaleway/get_lb_backends.py +8 -4
  164. pulumiverse_scaleway/get_lb_frontend.py +16 -12
  165. pulumiverse_scaleway/get_lb_frontends.py +8 -4
  166. pulumiverse_scaleway/get_lb_ips.py +4 -0
  167. pulumiverse_scaleway/get_lb_route.py +16 -12
  168. pulumiverse_scaleway/get_lb_routes.py +8 -4
  169. pulumiverse_scaleway/get_lbs.py +4 -0
  170. pulumiverse_scaleway/get_loadbalancer.py +8 -4
  171. pulumiverse_scaleway/get_loadbalancer_certificate.py +4 -0
  172. pulumiverse_scaleway/get_loadbalancer_ip.py +4 -0
  173. pulumiverse_scaleway/get_mnq_sns.py +8 -4
  174. pulumiverse_scaleway/get_mnq_sqs.py +8 -4
  175. pulumiverse_scaleway/get_mongo_db_instance.py +4 -0
  176. pulumiverse_scaleway/get_object_bucket.py +12 -8
  177. pulumiverse_scaleway/get_object_bucket_policy.py +8 -4
  178. pulumiverse_scaleway/get_redis_cluster.py +4 -0
  179. pulumiverse_scaleway/get_registry_image.py +4 -0
  180. pulumiverse_scaleway/get_registry_image_tag.py +4 -0
  181. pulumiverse_scaleway/get_registry_namespace.py +4 -0
  182. pulumiverse_scaleway/get_secret.py +12 -8
  183. pulumiverse_scaleway/get_secret_version.py +14 -10
  184. pulumiverse_scaleway/get_tem_domain.py +4 -0
  185. pulumiverse_scaleway/get_vpc.py +10 -6
  186. pulumiverse_scaleway/get_vpc_gateway_network.py +10 -6
  187. pulumiverse_scaleway/get_vpc_private_network.py +10 -6
  188. pulumiverse_scaleway/get_vpc_public_gateway.py +10 -6
  189. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +8 -4
  190. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +70 -66
  191. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +8 -4
  192. pulumiverse_scaleway/get_vpc_public_pat_rule.py +26 -22
  193. pulumiverse_scaleway/get_vpc_routes.py +4 -0
  194. pulumiverse_scaleway/get_vpcs.py +4 -0
  195. pulumiverse_scaleway/get_web_host_offer.py +8 -4
  196. pulumiverse_scaleway/get_webhosting.py +8 -4
  197. pulumiverse_scaleway/hosting/__init__.py +12 -0
  198. pulumiverse_scaleway/hosting/_inputs.py +295 -0
  199. pulumiverse_scaleway/hosting/get_hosting.py +354 -0
  200. pulumiverse_scaleway/hosting/get_offer.py +229 -0
  201. pulumiverse_scaleway/hosting/hosting.py +870 -0
  202. pulumiverse_scaleway/hosting/outputs.py +626 -0
  203. pulumiverse_scaleway/iam/__init__.py +21 -0
  204. pulumiverse_scaleway/iam/_inputs.py +138 -0
  205. pulumiverse_scaleway/iam/api_key.py +622 -0
  206. pulumiverse_scaleway/iam/application.py +419 -0
  207. pulumiverse_scaleway/iam/get_api_key.py +210 -0
  208. pulumiverse_scaleway/iam/get_application.py +210 -0
  209. pulumiverse_scaleway/iam/get_group.py +236 -0
  210. pulumiverse_scaleway/iam/get_ssh_key.py +212 -0
  211. pulumiverse_scaleway/iam/get_user.py +177 -0
  212. pulumiverse_scaleway/iam/group.py +568 -0
  213. pulumiverse_scaleway/iam/group_membership.py +325 -0
  214. pulumiverse_scaleway/iam/outputs.py +111 -0
  215. pulumiverse_scaleway/iam/policy.py +775 -0
  216. pulumiverse_scaleway/iam/ssh_key.py +457 -0
  217. pulumiverse_scaleway/iam/user.py +515 -0
  218. pulumiverse_scaleway/iam_api_key.py +16 -10
  219. pulumiverse_scaleway/iam_application.py +8 -2
  220. pulumiverse_scaleway/iam_group.py +12 -6
  221. pulumiverse_scaleway/iam_group_membership.py +12 -6
  222. pulumiverse_scaleway/iam_policy.py +18 -12
  223. pulumiverse_scaleway/iam_ssh_key.py +8 -2
  224. pulumiverse_scaleway/iam_user.py +8 -2
  225. pulumiverse_scaleway/inference/__init__.py +10 -0
  226. pulumiverse_scaleway/inference/_inputs.py +209 -0
  227. pulumiverse_scaleway/inference/deployment.py +824 -0
  228. pulumiverse_scaleway/inference/outputs.py +169 -0
  229. pulumiverse_scaleway/inference_deployment.py +8 -2
  230. pulumiverse_scaleway/instance/__init__.py +29 -0
  231. pulumiverse_scaleway/instance/_inputs.py +1237 -0
  232. pulumiverse_scaleway/instance/get_image.py +305 -0
  233. pulumiverse_scaleway/instance/get_ip.py +204 -0
  234. pulumiverse_scaleway/instance/get_placement_group.py +212 -0
  235. pulumiverse_scaleway/instance/get_private_nic.py +226 -0
  236. pulumiverse_scaleway/instance/get_security_group.py +268 -0
  237. pulumiverse_scaleway/instance/get_server.py +488 -0
  238. pulumiverse_scaleway/instance/get_servers.py +187 -0
  239. pulumiverse_scaleway/instance/get_snapshot.py +248 -0
  240. pulumiverse_scaleway/instance/get_volume.py +226 -0
  241. pulumiverse_scaleway/instance/image.py +752 -0
  242. pulumiverse_scaleway/instance/ip.py +471 -0
  243. pulumiverse_scaleway/instance/ip_reverse_dns.py +310 -0
  244. pulumiverse_scaleway/instance/outputs.py +1533 -0
  245. pulumiverse_scaleway/instance/placement_group.py +481 -0
  246. pulumiverse_scaleway/instance/private_nic.py +557 -0
  247. pulumiverse_scaleway/instance/security_group.py +722 -0
  248. pulumiverse_scaleway/instance/security_group_rules.py +441 -0
  249. pulumiverse_scaleway/instance/server.py +1938 -0
  250. pulumiverse_scaleway/instance/snapshot.py +671 -0
  251. pulumiverse_scaleway/instance/user_data.py +437 -0
  252. pulumiverse_scaleway/instance/volume.py +584 -0
  253. pulumiverse_scaleway/instance_image.py +18 -12
  254. pulumiverse_scaleway/instance_ip.py +8 -2
  255. pulumiverse_scaleway/instance_ip_reverse_dns.py +12 -6
  256. pulumiverse_scaleway/instance_placement_group.py +8 -2
  257. pulumiverse_scaleway/instance_private_nic.py +24 -18
  258. pulumiverse_scaleway/instance_security_group.py +6 -0
  259. pulumiverse_scaleway/instance_security_group_rules.py +22 -16
  260. pulumiverse_scaleway/instance_server.py +74 -68
  261. pulumiverse_scaleway/instance_snapshot.py +22 -16
  262. pulumiverse_scaleway/instance_user_data.py +16 -10
  263. pulumiverse_scaleway/instance_volume.py +8 -2
  264. pulumiverse_scaleway/iot/__init__.py +15 -0
  265. pulumiverse_scaleway/iot/_inputs.py +539 -0
  266. pulumiverse_scaleway/iot/device.py +752 -0
  267. pulumiverse_scaleway/iot/get_device.py +257 -0
  268. pulumiverse_scaleway/iot/get_hub.py +322 -0
  269. pulumiverse_scaleway/iot/hub.py +898 -0
  270. pulumiverse_scaleway/iot/network.py +474 -0
  271. pulumiverse_scaleway/iot/outputs.py +465 -0
  272. pulumiverse_scaleway/iot/route.py +662 -0
  273. pulumiverse_scaleway/iot_device.py +14 -8
  274. pulumiverse_scaleway/iot_hub.py +8 -2
  275. pulumiverse_scaleway/iot_network.py +12 -6
  276. pulumiverse_scaleway/iot_route.py +32 -26
  277. pulumiverse_scaleway/ipam/__init__.py +13 -0
  278. pulumiverse_scaleway/ipam/_inputs.py +442 -0
  279. pulumiverse_scaleway/ipam/get_ip.py +419 -0
  280. pulumiverse_scaleway/ipam/get_ips.py +358 -0
  281. pulumiverse_scaleway/ipam/ip.py +759 -0
  282. pulumiverse_scaleway/ipam/ip_reverse_dns.py +320 -0
  283. pulumiverse_scaleway/ipam/outputs.py +481 -0
  284. pulumiverse_scaleway/ipam_ip.py +30 -24
  285. pulumiverse_scaleway/ipam_ip_reverse_dns.py +6 -0
  286. pulumiverse_scaleway/job/__init__.py +10 -0
  287. pulumiverse_scaleway/job/_inputs.py +73 -0
  288. pulumiverse_scaleway/job/definition.py +694 -0
  289. pulumiverse_scaleway/job/outputs.py +49 -0
  290. pulumiverse_scaleway/job_definition.py +8 -2
  291. pulumiverse_scaleway/kubernetes/__init__.py +14 -0
  292. pulumiverse_scaleway/kubernetes/_inputs.py +717 -0
  293. pulumiverse_scaleway/kubernetes/cluster.py +1540 -0
  294. pulumiverse_scaleway/kubernetes/get_cluster.py +417 -0
  295. pulumiverse_scaleway/kubernetes/get_pool.py +436 -0
  296. pulumiverse_scaleway/kubernetes/get_version.py +196 -0
  297. pulumiverse_scaleway/kubernetes/outputs.py +944 -0
  298. pulumiverse_scaleway/kubernetes/pool.py +1313 -0
  299. pulumiverse_scaleway/kubernetes_cluster.py +36 -30
  300. pulumiverse_scaleway/kubernetes_node_pool.py +6 -0
  301. pulumiverse_scaleway/loadbalancer.py +35 -29
  302. pulumiverse_scaleway/loadbalancer_acl.py +8 -2
  303. pulumiverse_scaleway/loadbalancer_backend.py +10 -4
  304. pulumiverse_scaleway/loadbalancer_certificate.py +6 -0
  305. pulumiverse_scaleway/loadbalancer_frontend.py +10 -4
  306. pulumiverse_scaleway/loadbalancer_ip.py +10 -4
  307. pulumiverse_scaleway/loadbalancer_route.py +26 -20
  308. pulumiverse_scaleway/loadbalancers/__init__.py +28 -0
  309. pulumiverse_scaleway/loadbalancers/_inputs.py +1103 -0
  310. pulumiverse_scaleway/loadbalancers/acl.py +522 -0
  311. pulumiverse_scaleway/loadbalancers/backend.py +1590 -0
  312. pulumiverse_scaleway/loadbalancers/certificate.py +462 -0
  313. pulumiverse_scaleway/loadbalancers/frontend.py +831 -0
  314. pulumiverse_scaleway/loadbalancers/get_acls.py +198 -0
  315. pulumiverse_scaleway/loadbalancers/get_backend.py +486 -0
  316. pulumiverse_scaleway/loadbalancers/get_backends.py +196 -0
  317. pulumiverse_scaleway/loadbalancers/get_certificate.py +230 -0
  318. pulumiverse_scaleway/loadbalancers/get_frontend.py +274 -0
  319. pulumiverse_scaleway/loadbalancers/get_frontends.py +196 -0
  320. pulumiverse_scaleway/loadbalancers/get_ip.py +228 -0
  321. pulumiverse_scaleway/loadbalancers/get_ips.py +198 -0
  322. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +339 -0
  323. pulumiverse_scaleway/loadbalancers/get_load_balancers.py +187 -0
  324. pulumiverse_scaleway/loadbalancers/get_route.py +217 -0
  325. pulumiverse_scaleway/loadbalancers/get_routes.py +179 -0
  326. pulumiverse_scaleway/loadbalancers/ip.py +516 -0
  327. pulumiverse_scaleway/loadbalancers/load_balancer.py +1063 -0
  328. pulumiverse_scaleway/loadbalancers/outputs.py +2491 -0
  329. pulumiverse_scaleway/loadbalancers/route.py +525 -0
  330. pulumiverse_scaleway/mnq/__init__.py +20 -0
  331. pulumiverse_scaleway/mnq/_inputs.py +169 -0
  332. pulumiverse_scaleway/mnq/get_sns.py +150 -0
  333. pulumiverse_scaleway/mnq/get_sqs.py +150 -0
  334. pulumiverse_scaleway/mnq/nats_account.py +336 -0
  335. pulumiverse_scaleway/mnq/nats_credentials.py +332 -0
  336. pulumiverse_scaleway/mnq/outputs.py +149 -0
  337. pulumiverse_scaleway/mnq/sns.py +308 -0
  338. pulumiverse_scaleway/mnq/sns_credentials.py +415 -0
  339. pulumiverse_scaleway/mnq/sns_topic.py +661 -0
  340. pulumiverse_scaleway/mnq/sns_topic_subscription.py +701 -0
  341. pulumiverse_scaleway/mnq/sqs.py +306 -0
  342. pulumiverse_scaleway/mnq/sqs_credentials.py +415 -0
  343. pulumiverse_scaleway/mnq/sqs_queue.py +802 -0
  344. pulumiverse_scaleway/mnq_nats_account.py +8 -2
  345. pulumiverse_scaleway/mnq_nats_credentials.py +10 -4
  346. pulumiverse_scaleway/mnq_sns.py +12 -6
  347. pulumiverse_scaleway/mnq_sns_credentials.py +10 -4
  348. pulumiverse_scaleway/mnq_sns_topic.py +16 -10
  349. pulumiverse_scaleway/mnq_sns_topic_subscription.py +22 -16
  350. pulumiverse_scaleway/mnq_sqs.py +12 -6
  351. pulumiverse_scaleway/mnq_sqs_credentials.py +10 -4
  352. pulumiverse_scaleway/mnq_sqs_queue.py +16 -10
  353. pulumiverse_scaleway/mongo_db_instance.py +14 -8
  354. pulumiverse_scaleway/mongo_db_snapshot.py +8 -2
  355. pulumiverse_scaleway/mongodb/__init__.py +12 -0
  356. pulumiverse_scaleway/mongodb/_inputs.py +208 -0
  357. pulumiverse_scaleway/mongodb/get_instance.py +335 -0
  358. pulumiverse_scaleway/mongodb/instance.py +1000 -0
  359. pulumiverse_scaleway/mongodb/outputs.py +270 -0
  360. pulumiverse_scaleway/mongodb/snapshot.py +523 -0
  361. pulumiverse_scaleway/network/__init__.py +29 -0
  362. pulumiverse_scaleway/network/_inputs.py +383 -0
  363. pulumiverse_scaleway/network/gateway_network.py +868 -0
  364. pulumiverse_scaleway/network/get_gateway_network.py +287 -0
  365. pulumiverse_scaleway/network/get_private_network.py +282 -0
  366. pulumiverse_scaleway/network/get_public_gateway.py +304 -0
  367. pulumiverse_scaleway/network/get_public_gateway_dhcp.py +305 -0
  368. pulumiverse_scaleway/network/get_public_gateway_dhcp_reservation.py +382 -0
  369. pulumiverse_scaleway/network/get_public_gateway_ip.py +199 -0
  370. pulumiverse_scaleway/network/get_public_gateway_pat_rule.py +313 -0
  371. pulumiverse_scaleway/network/get_routes.py +208 -0
  372. pulumiverse_scaleway/network/get_vpc.py +246 -0
  373. pulumiverse_scaleway/network/get_vpcs.py +174 -0
  374. pulumiverse_scaleway/network/outputs.py +747 -0
  375. pulumiverse_scaleway/network/private_network.py +736 -0
  376. pulumiverse_scaleway/network/public_gateway.py +791 -0
  377. pulumiverse_scaleway/network/public_gateway_dhcp.py +949 -0
  378. pulumiverse_scaleway/network/public_gateway_dhcp_reservation.py +516 -0
  379. pulumiverse_scaleway/network/public_gateway_ip.py +459 -0
  380. pulumiverse_scaleway/network/public_gateway_ip_reverse_dns.py +308 -0
  381. pulumiverse_scaleway/network/public_gateway_pat_rule.py +593 -0
  382. pulumiverse_scaleway/network/route.py +579 -0
  383. pulumiverse_scaleway/network/vpc.py +538 -0
  384. pulumiverse_scaleway/object/__init__.py +17 -0
  385. pulumiverse_scaleway/object/_inputs.py +831 -0
  386. pulumiverse_scaleway/object/bucket.py +876 -0
  387. pulumiverse_scaleway/object/bucket_acl.py +598 -0
  388. pulumiverse_scaleway/object/bucket_lock_configuration.py +397 -0
  389. pulumiverse_scaleway/object/bucket_policy.py +675 -0
  390. pulumiverse_scaleway/object/bucket_website_configuration.py +536 -0
  391. pulumiverse_scaleway/object/get_bucket.py +290 -0
  392. pulumiverse_scaleway/object/get_bucket_policy.py +163 -0
  393. pulumiverse_scaleway/object/item.py +778 -0
  394. pulumiverse_scaleway/object/outputs.py +802 -0
  395. pulumiverse_scaleway/object_bucket.py +28 -22
  396. pulumiverse_scaleway/object_bucket_acl.py +14 -8
  397. pulumiverse_scaleway/object_bucket_lock_configuration.py +12 -6
  398. pulumiverse_scaleway/object_bucket_policy.py +46 -40
  399. pulumiverse_scaleway/object_bucket_website_configuration.py +18 -12
  400. pulumiverse_scaleway/object_item.py +8 -2
  401. pulumiverse_scaleway/observability/__init__.py +17 -0
  402. pulumiverse_scaleway/observability/_inputs.py +417 -0
  403. pulumiverse_scaleway/observability/alert_manager.py +403 -0
  404. pulumiverse_scaleway/observability/cockpit.py +325 -0
  405. pulumiverse_scaleway/observability/get_instance.py +205 -0
  406. pulumiverse_scaleway/observability/get_plan.py +125 -0
  407. pulumiverse_scaleway/observability/get_source.py +262 -0
  408. pulumiverse_scaleway/observability/grafana_user.py +364 -0
  409. pulumiverse_scaleway/observability/outputs.py +425 -0
  410. pulumiverse_scaleway/observability/source.py +569 -0
  411. pulumiverse_scaleway/observability/token.py +481 -0
  412. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  413. pulumiverse_scaleway/rdb_snapshot.py +16 -10
  414. pulumiverse_scaleway/redis/__init__.py +11 -0
  415. pulumiverse_scaleway/redis/_inputs.py +330 -0
  416. pulumiverse_scaleway/redis/cluster.py +1203 -0
  417. pulumiverse_scaleway/redis/get_cluster.py +347 -0
  418. pulumiverse_scaleway/redis/outputs.py +356 -0
  419. pulumiverse_scaleway/redis_cluster.py +14 -8
  420. pulumiverse_scaleway/registry/__init__.py +11 -0
  421. pulumiverse_scaleway/registry/get_image.py +239 -0
  422. pulumiverse_scaleway/registry/get_image_tag.py +229 -0
  423. pulumiverse_scaleway/registry/get_namespace.py +199 -0
  424. pulumiverse_scaleway/registry/namespace.py +460 -0
  425. pulumiverse_scaleway/registry_namespace.py +8 -2
  426. pulumiverse_scaleway/sdb_database.py +10 -4
  427. pulumiverse_scaleway/secret.py +6 -0
  428. pulumiverse_scaleway/secret_version.py +12 -6
  429. pulumiverse_scaleway/secrets/__init__.py +13 -0
  430. pulumiverse_scaleway/secrets/_inputs.py +94 -0
  431. pulumiverse_scaleway/secrets/get_secret.py +338 -0
  432. pulumiverse_scaleway/secrets/get_version.py +340 -0
  433. pulumiverse_scaleway/secrets/outputs.py +120 -0
  434. pulumiverse_scaleway/secrets/secret.py +665 -0
  435. pulumiverse_scaleway/secrets/version.py +489 -0
  436. pulumiverse_scaleway/tem/__init__.py +13 -0
  437. pulumiverse_scaleway/tem/_inputs.py +135 -0
  438. pulumiverse_scaleway/tem/domain.py +1032 -0
  439. pulumiverse_scaleway/tem/domain_validation.py +305 -0
  440. pulumiverse_scaleway/tem/get_domain.py +378 -0
  441. pulumiverse_scaleway/tem/outputs.py +171 -0
  442. pulumiverse_scaleway/tem/webhook.py +642 -0
  443. pulumiverse_scaleway/tem_domain.py +20 -14
  444. pulumiverse_scaleway/tem_domain_validation.py +10 -4
  445. pulumiverse_scaleway/tem_webhook.py +28 -22
  446. pulumiverse_scaleway/vpc.py +10 -4
  447. pulumiverse_scaleway/vpc_gateway_network.py +40 -34
  448. pulumiverse_scaleway/vpc_private_network.py +10 -4
  449. pulumiverse_scaleway/vpc_public_gateway.py +8 -2
  450. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +15 -9
  451. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +32 -26
  452. pulumiverse_scaleway/vpc_public_gateway_ip.py +10 -4
  453. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +12 -6
  454. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +26 -20
  455. pulumiverse_scaleway/vpc_route.py +16 -10
  456. pulumiverse_scaleway/webhosting.py +10 -4
  457. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.25.0a1742668904.dist-info}/METADATA +1 -1
  458. pulumiverse_scaleway-1.25.0a1742668904.dist-info/RECORD +470 -0
  459. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.25.0a1742668904.dist-info}/WHEEL +1 -1
  460. pulumiverse_scaleway-1.25.0a1742464679.dist-info/RECORD +0 -206
  461. {pulumiverse_scaleway-1.25.0a1742464679.dist-info → pulumiverse_scaleway-1.25.0a1742668904.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1118 @@
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__ = ['RecordArgs', 'Record']
20
+
21
+ @pulumi.input_type
22
+ class RecordArgs:
23
+ def __init__(__self__, *,
24
+ data: pulumi.Input[str],
25
+ dns_zone: pulumi.Input[str],
26
+ type: pulumi.Input[str],
27
+ geo_ip: Optional[pulumi.Input['RecordGeoIpArgs']] = None,
28
+ http_service: Optional[pulumi.Input['RecordHttpServiceArgs']] = None,
29
+ keep_empty_zone: Optional[pulumi.Input[bool]] = None,
30
+ name: Optional[pulumi.Input[str]] = None,
31
+ priority: Optional[pulumi.Input[int]] = None,
32
+ project_id: Optional[pulumi.Input[str]] = None,
33
+ ttl: Optional[pulumi.Input[int]] = None,
34
+ views: Optional[pulumi.Input[Sequence[pulumi.Input['RecordViewArgs']]]] = None,
35
+ weighteds: Optional[pulumi.Input[Sequence[pulumi.Input['RecordWeightedArgs']]]] = None):
36
+ """
37
+ The set of arguments for constructing a Record resource.
38
+ :param pulumi.Input[str] data: The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).
39
+ :param pulumi.Input[str] dns_zone: The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.
40
+ :param pulumi.Input[str] type: The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).
41
+ :param pulumi.Input['RecordGeoIpArgs'] geo_ip: Return record based on client localisation
42
+ :param pulumi.Input['RecordHttpServiceArgs'] http_service: Return record based on client localisation
43
+ :param pulumi.Input[bool] keep_empty_zone: When destroying a resource, if only NS records remain and this is set to `false`, the zone will be deleted. Note that each zone not deleted will [be billed](https://www.scaleway.com/en/dns/).
44
+ :param pulumi.Input[str] name: The name of the record (can be an empty string for a root record).
45
+ :param pulumi.Input[int] priority: The priority of the record (mostly used with an `MX` record).
46
+ :param pulumi.Input[str] project_id: The project_id you want to attach the resource to
47
+ :param pulumi.Input[int] ttl: Time To Live of the record in seconds.
48
+ :param pulumi.Input[Sequence[pulumi.Input['RecordViewArgs']]] views: Return record based on client subnet
49
+ :param pulumi.Input[Sequence[pulumi.Input['RecordWeightedArgs']]] weighteds: Return record based on weight
50
+ """
51
+ pulumi.set(__self__, "data", data)
52
+ pulumi.set(__self__, "dns_zone", dns_zone)
53
+ pulumi.set(__self__, "type", type)
54
+ if geo_ip is not None:
55
+ pulumi.set(__self__, "geo_ip", geo_ip)
56
+ if http_service is not None:
57
+ pulumi.set(__self__, "http_service", http_service)
58
+ if keep_empty_zone is not None:
59
+ pulumi.set(__self__, "keep_empty_zone", keep_empty_zone)
60
+ if name is not None:
61
+ pulumi.set(__self__, "name", name)
62
+ if priority is not None:
63
+ pulumi.set(__self__, "priority", priority)
64
+ if project_id is not None:
65
+ pulumi.set(__self__, "project_id", project_id)
66
+ if ttl is not None:
67
+ pulumi.set(__self__, "ttl", ttl)
68
+ if views is not None:
69
+ pulumi.set(__self__, "views", views)
70
+ if weighteds is not None:
71
+ pulumi.set(__self__, "weighteds", weighteds)
72
+
73
+ @property
74
+ @pulumi.getter
75
+ def data(self) -> pulumi.Input[str]:
76
+ """
77
+ The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).
78
+ """
79
+ return pulumi.get(self, "data")
80
+
81
+ @data.setter
82
+ def data(self, value: pulumi.Input[str]):
83
+ pulumi.set(self, "data", value)
84
+
85
+ @property
86
+ @pulumi.getter(name="dnsZone")
87
+ def dns_zone(self) -> pulumi.Input[str]:
88
+ """
89
+ The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.
90
+ """
91
+ return pulumi.get(self, "dns_zone")
92
+
93
+ @dns_zone.setter
94
+ def dns_zone(self, value: pulumi.Input[str]):
95
+ pulumi.set(self, "dns_zone", value)
96
+
97
+ @property
98
+ @pulumi.getter
99
+ def type(self) -> pulumi.Input[str]:
100
+ """
101
+ The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).
102
+ """
103
+ return pulumi.get(self, "type")
104
+
105
+ @type.setter
106
+ def type(self, value: pulumi.Input[str]):
107
+ pulumi.set(self, "type", value)
108
+
109
+ @property
110
+ @pulumi.getter(name="geoIp")
111
+ def geo_ip(self) -> Optional[pulumi.Input['RecordGeoIpArgs']]:
112
+ """
113
+ Return record based on client localisation
114
+ """
115
+ return pulumi.get(self, "geo_ip")
116
+
117
+ @geo_ip.setter
118
+ def geo_ip(self, value: Optional[pulumi.Input['RecordGeoIpArgs']]):
119
+ pulumi.set(self, "geo_ip", value)
120
+
121
+ @property
122
+ @pulumi.getter(name="httpService")
123
+ def http_service(self) -> Optional[pulumi.Input['RecordHttpServiceArgs']]:
124
+ """
125
+ Return record based on client localisation
126
+ """
127
+ return pulumi.get(self, "http_service")
128
+
129
+ @http_service.setter
130
+ def http_service(self, value: Optional[pulumi.Input['RecordHttpServiceArgs']]):
131
+ pulumi.set(self, "http_service", value)
132
+
133
+ @property
134
+ @pulumi.getter(name="keepEmptyZone")
135
+ def keep_empty_zone(self) -> Optional[pulumi.Input[bool]]:
136
+ """
137
+ When destroying a resource, if only NS records remain and this is set to `false`, the zone will be deleted. Note that each zone not deleted will [be billed](https://www.scaleway.com/en/dns/).
138
+ """
139
+ return pulumi.get(self, "keep_empty_zone")
140
+
141
+ @keep_empty_zone.setter
142
+ def keep_empty_zone(self, value: Optional[pulumi.Input[bool]]):
143
+ pulumi.set(self, "keep_empty_zone", value)
144
+
145
+ @property
146
+ @pulumi.getter
147
+ def name(self) -> Optional[pulumi.Input[str]]:
148
+ """
149
+ The name of the record (can be an empty string for a root record).
150
+ """
151
+ return pulumi.get(self, "name")
152
+
153
+ @name.setter
154
+ def name(self, value: Optional[pulumi.Input[str]]):
155
+ pulumi.set(self, "name", value)
156
+
157
+ @property
158
+ @pulumi.getter
159
+ def priority(self) -> Optional[pulumi.Input[int]]:
160
+ """
161
+ The priority of the record (mostly used with an `MX` record).
162
+ """
163
+ return pulumi.get(self, "priority")
164
+
165
+ @priority.setter
166
+ def priority(self, value: Optional[pulumi.Input[int]]):
167
+ pulumi.set(self, "priority", value)
168
+
169
+ @property
170
+ @pulumi.getter(name="projectId")
171
+ def project_id(self) -> Optional[pulumi.Input[str]]:
172
+ """
173
+ The project_id you want to attach the resource to
174
+ """
175
+ return pulumi.get(self, "project_id")
176
+
177
+ @project_id.setter
178
+ def project_id(self, value: Optional[pulumi.Input[str]]):
179
+ pulumi.set(self, "project_id", value)
180
+
181
+ @property
182
+ @pulumi.getter
183
+ def ttl(self) -> Optional[pulumi.Input[int]]:
184
+ """
185
+ Time To Live of the record in seconds.
186
+ """
187
+ return pulumi.get(self, "ttl")
188
+
189
+ @ttl.setter
190
+ def ttl(self, value: Optional[pulumi.Input[int]]):
191
+ pulumi.set(self, "ttl", value)
192
+
193
+ @property
194
+ @pulumi.getter
195
+ def views(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RecordViewArgs']]]]:
196
+ """
197
+ Return record based on client subnet
198
+ """
199
+ return pulumi.get(self, "views")
200
+
201
+ @views.setter
202
+ def views(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RecordViewArgs']]]]):
203
+ pulumi.set(self, "views", value)
204
+
205
+ @property
206
+ @pulumi.getter
207
+ def weighteds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RecordWeightedArgs']]]]:
208
+ """
209
+ Return record based on weight
210
+ """
211
+ return pulumi.get(self, "weighteds")
212
+
213
+ @weighteds.setter
214
+ def weighteds(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RecordWeightedArgs']]]]):
215
+ pulumi.set(self, "weighteds", value)
216
+
217
+
218
+ @pulumi.input_type
219
+ class _RecordState:
220
+ def __init__(__self__, *,
221
+ data: Optional[pulumi.Input[str]] = None,
222
+ dns_zone: Optional[pulumi.Input[str]] = None,
223
+ fqdn: Optional[pulumi.Input[str]] = None,
224
+ geo_ip: Optional[pulumi.Input['RecordGeoIpArgs']] = None,
225
+ http_service: Optional[pulumi.Input['RecordHttpServiceArgs']] = None,
226
+ keep_empty_zone: Optional[pulumi.Input[bool]] = None,
227
+ name: Optional[pulumi.Input[str]] = None,
228
+ priority: Optional[pulumi.Input[int]] = None,
229
+ project_id: Optional[pulumi.Input[str]] = None,
230
+ root_zone: Optional[pulumi.Input[bool]] = None,
231
+ ttl: Optional[pulumi.Input[int]] = None,
232
+ type: Optional[pulumi.Input[str]] = None,
233
+ views: Optional[pulumi.Input[Sequence[pulumi.Input['RecordViewArgs']]]] = None,
234
+ weighteds: Optional[pulumi.Input[Sequence[pulumi.Input['RecordWeightedArgs']]]] = None):
235
+ """
236
+ Input properties used for looking up and filtering Record resources.
237
+ :param pulumi.Input[str] data: The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).
238
+ :param pulumi.Input[str] dns_zone: The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.
239
+ :param pulumi.Input[str] fqdn: The FQDN of the record.
240
+ :param pulumi.Input['RecordGeoIpArgs'] geo_ip: Return record based on client localisation
241
+ :param pulumi.Input['RecordHttpServiceArgs'] http_service: Return record based on client localisation
242
+ :param pulumi.Input[bool] keep_empty_zone: When destroying a resource, if only NS records remain and this is set to `false`, the zone will be deleted. Note that each zone not deleted will [be billed](https://www.scaleway.com/en/dns/).
243
+ :param pulumi.Input[str] name: The name of the record (can be an empty string for a root record).
244
+ :param pulumi.Input[int] priority: The priority of the record (mostly used with an `MX` record).
245
+ :param pulumi.Input[str] project_id: The project_id you want to attach the resource to
246
+ :param pulumi.Input[bool] root_zone: Does the DNS zone is the root zone or not
247
+ :param pulumi.Input[int] ttl: Time To Live of the record in seconds.
248
+ :param pulumi.Input[str] type: The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).
249
+ :param pulumi.Input[Sequence[pulumi.Input['RecordViewArgs']]] views: Return record based on client subnet
250
+ :param pulumi.Input[Sequence[pulumi.Input['RecordWeightedArgs']]] weighteds: Return record based on weight
251
+ """
252
+ if data is not None:
253
+ pulumi.set(__self__, "data", data)
254
+ if dns_zone is not None:
255
+ pulumi.set(__self__, "dns_zone", dns_zone)
256
+ if fqdn is not None:
257
+ pulumi.set(__self__, "fqdn", fqdn)
258
+ if geo_ip is not None:
259
+ pulumi.set(__self__, "geo_ip", geo_ip)
260
+ if http_service is not None:
261
+ pulumi.set(__self__, "http_service", http_service)
262
+ if keep_empty_zone is not None:
263
+ pulumi.set(__self__, "keep_empty_zone", keep_empty_zone)
264
+ if name is not None:
265
+ pulumi.set(__self__, "name", name)
266
+ if priority is not None:
267
+ pulumi.set(__self__, "priority", priority)
268
+ if project_id is not None:
269
+ pulumi.set(__self__, "project_id", project_id)
270
+ if root_zone is not None:
271
+ pulumi.set(__self__, "root_zone", root_zone)
272
+ if ttl is not None:
273
+ pulumi.set(__self__, "ttl", ttl)
274
+ if type is not None:
275
+ pulumi.set(__self__, "type", type)
276
+ if views is not None:
277
+ pulumi.set(__self__, "views", views)
278
+ if weighteds is not None:
279
+ pulumi.set(__self__, "weighteds", weighteds)
280
+
281
+ @property
282
+ @pulumi.getter
283
+ def data(self) -> Optional[pulumi.Input[str]]:
284
+ """
285
+ The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).
286
+ """
287
+ return pulumi.get(self, "data")
288
+
289
+ @data.setter
290
+ def data(self, value: Optional[pulumi.Input[str]]):
291
+ pulumi.set(self, "data", value)
292
+
293
+ @property
294
+ @pulumi.getter(name="dnsZone")
295
+ def dns_zone(self) -> Optional[pulumi.Input[str]]:
296
+ """
297
+ The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.
298
+ """
299
+ return pulumi.get(self, "dns_zone")
300
+
301
+ @dns_zone.setter
302
+ def dns_zone(self, value: Optional[pulumi.Input[str]]):
303
+ pulumi.set(self, "dns_zone", value)
304
+
305
+ @property
306
+ @pulumi.getter
307
+ def fqdn(self) -> Optional[pulumi.Input[str]]:
308
+ """
309
+ The FQDN of the record.
310
+ """
311
+ return pulumi.get(self, "fqdn")
312
+
313
+ @fqdn.setter
314
+ def fqdn(self, value: Optional[pulumi.Input[str]]):
315
+ pulumi.set(self, "fqdn", value)
316
+
317
+ @property
318
+ @pulumi.getter(name="geoIp")
319
+ def geo_ip(self) -> Optional[pulumi.Input['RecordGeoIpArgs']]:
320
+ """
321
+ Return record based on client localisation
322
+ """
323
+ return pulumi.get(self, "geo_ip")
324
+
325
+ @geo_ip.setter
326
+ def geo_ip(self, value: Optional[pulumi.Input['RecordGeoIpArgs']]):
327
+ pulumi.set(self, "geo_ip", value)
328
+
329
+ @property
330
+ @pulumi.getter(name="httpService")
331
+ def http_service(self) -> Optional[pulumi.Input['RecordHttpServiceArgs']]:
332
+ """
333
+ Return record based on client localisation
334
+ """
335
+ return pulumi.get(self, "http_service")
336
+
337
+ @http_service.setter
338
+ def http_service(self, value: Optional[pulumi.Input['RecordHttpServiceArgs']]):
339
+ pulumi.set(self, "http_service", value)
340
+
341
+ @property
342
+ @pulumi.getter(name="keepEmptyZone")
343
+ def keep_empty_zone(self) -> Optional[pulumi.Input[bool]]:
344
+ """
345
+ When destroying a resource, if only NS records remain and this is set to `false`, the zone will be deleted. Note that each zone not deleted will [be billed](https://www.scaleway.com/en/dns/).
346
+ """
347
+ return pulumi.get(self, "keep_empty_zone")
348
+
349
+ @keep_empty_zone.setter
350
+ def keep_empty_zone(self, value: Optional[pulumi.Input[bool]]):
351
+ pulumi.set(self, "keep_empty_zone", value)
352
+
353
+ @property
354
+ @pulumi.getter
355
+ def name(self) -> Optional[pulumi.Input[str]]:
356
+ """
357
+ The name of the record (can be an empty string for a root record).
358
+ """
359
+ return pulumi.get(self, "name")
360
+
361
+ @name.setter
362
+ def name(self, value: Optional[pulumi.Input[str]]):
363
+ pulumi.set(self, "name", value)
364
+
365
+ @property
366
+ @pulumi.getter
367
+ def priority(self) -> Optional[pulumi.Input[int]]:
368
+ """
369
+ The priority of the record (mostly used with an `MX` record).
370
+ """
371
+ return pulumi.get(self, "priority")
372
+
373
+ @priority.setter
374
+ def priority(self, value: Optional[pulumi.Input[int]]):
375
+ pulumi.set(self, "priority", value)
376
+
377
+ @property
378
+ @pulumi.getter(name="projectId")
379
+ def project_id(self) -> Optional[pulumi.Input[str]]:
380
+ """
381
+ The project_id you want to attach the resource to
382
+ """
383
+ return pulumi.get(self, "project_id")
384
+
385
+ @project_id.setter
386
+ def project_id(self, value: Optional[pulumi.Input[str]]):
387
+ pulumi.set(self, "project_id", value)
388
+
389
+ @property
390
+ @pulumi.getter(name="rootZone")
391
+ def root_zone(self) -> Optional[pulumi.Input[bool]]:
392
+ """
393
+ Does the DNS zone is the root zone or not
394
+ """
395
+ return pulumi.get(self, "root_zone")
396
+
397
+ @root_zone.setter
398
+ def root_zone(self, value: Optional[pulumi.Input[bool]]):
399
+ pulumi.set(self, "root_zone", value)
400
+
401
+ @property
402
+ @pulumi.getter
403
+ def ttl(self) -> Optional[pulumi.Input[int]]:
404
+ """
405
+ Time To Live of the record in seconds.
406
+ """
407
+ return pulumi.get(self, "ttl")
408
+
409
+ @ttl.setter
410
+ def ttl(self, value: Optional[pulumi.Input[int]]):
411
+ pulumi.set(self, "ttl", value)
412
+
413
+ @property
414
+ @pulumi.getter
415
+ def type(self) -> Optional[pulumi.Input[str]]:
416
+ """
417
+ The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).
418
+ """
419
+ return pulumi.get(self, "type")
420
+
421
+ @type.setter
422
+ def type(self, value: Optional[pulumi.Input[str]]):
423
+ pulumi.set(self, "type", value)
424
+
425
+ @property
426
+ @pulumi.getter
427
+ def views(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RecordViewArgs']]]]:
428
+ """
429
+ Return record based on client subnet
430
+ """
431
+ return pulumi.get(self, "views")
432
+
433
+ @views.setter
434
+ def views(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RecordViewArgs']]]]):
435
+ pulumi.set(self, "views", value)
436
+
437
+ @property
438
+ @pulumi.getter
439
+ def weighteds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RecordWeightedArgs']]]]:
440
+ """
441
+ Return record based on weight
442
+ """
443
+ return pulumi.get(self, "weighteds")
444
+
445
+ @weighteds.setter
446
+ def weighteds(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RecordWeightedArgs']]]]):
447
+ pulumi.set(self, "weighteds", value)
448
+
449
+
450
+ class Record(pulumi.CustomResource):
451
+ @overload
452
+ def __init__(__self__,
453
+ resource_name: str,
454
+ opts: Optional[pulumi.ResourceOptions] = None,
455
+ data: Optional[pulumi.Input[str]] = None,
456
+ dns_zone: Optional[pulumi.Input[str]] = None,
457
+ geo_ip: Optional[pulumi.Input[Union['RecordGeoIpArgs', 'RecordGeoIpArgsDict']]] = None,
458
+ http_service: Optional[pulumi.Input[Union['RecordHttpServiceArgs', 'RecordHttpServiceArgsDict']]] = None,
459
+ keep_empty_zone: Optional[pulumi.Input[bool]] = None,
460
+ name: Optional[pulumi.Input[str]] = None,
461
+ priority: Optional[pulumi.Input[int]] = None,
462
+ project_id: Optional[pulumi.Input[str]] = None,
463
+ ttl: Optional[pulumi.Input[int]] = None,
464
+ type: Optional[pulumi.Input[str]] = None,
465
+ views: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordViewArgs', 'RecordViewArgsDict']]]]] = None,
466
+ weighteds: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordWeightedArgs', 'RecordWeightedArgsDict']]]]] = None,
467
+ __props__=None):
468
+ """
469
+ The `domain.Record` resource allows you to create and manage DNS records for Scaleway domains.
470
+
471
+ Refer to the Domains and DNS [product documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) and [API documentation](https://www.scaleway.com/en/developers/api/domains-and-dns/) for more information.
472
+
473
+ ## Example Usage
474
+
475
+ ### Create basic DNS records
476
+
477
+ The folllowing commands allow you to:
478
+
479
+ - create an A record for the `www.domain.tld` domain, pointing to `1.2.3.4` and another one pointing to `1.2.3.5`
480
+
481
+ - create an MX record with the `mx.online.net.` mail server and a priority of 10, and another one with the `mx-cache.online.net.` mail server and a priority of 20
482
+
483
+ ```python
484
+ import pulumi
485
+ import pulumiverse_scaleway as scaleway
486
+
487
+ www = scaleway.domain.Record("www",
488
+ dns_zone="domain.tld",
489
+ name="www",
490
+ type="A",
491
+ data="1.2.3.4",
492
+ ttl=3600)
493
+ www2 = scaleway.domain.Record("www2",
494
+ dns_zone="domain.tld",
495
+ name="www",
496
+ type="A",
497
+ data="1.2.3.5",
498
+ ttl=3600)
499
+ mx = scaleway.domain.Record("mx",
500
+ dns_zone="domain.tld",
501
+ name="",
502
+ type="MX",
503
+ data="mx.online.net.",
504
+ ttl=3600,
505
+ priority=10)
506
+ mx2 = scaleway.domain.Record("mx2",
507
+ dns_zone="domain.tld",
508
+ name="",
509
+ type="MX",
510
+ data="mx-cache.online.net.",
511
+ ttl=3600,
512
+ priority=20)
513
+ ```
514
+
515
+ ### Create dynamic records
516
+
517
+ The folllowing commands allow you to:
518
+
519
+ - create a Geo IP record for `images.domain.tld` that points to different IPs based on the user's location: `1.2.3.5` for users in France (EU), and `4.3.2.1` for users in North America (NA)
520
+
521
+ - create an HTTP service record for `app.domain.tld` that checks the health of specified IPs and responds based on their status.
522
+
523
+ - create view-based records for `db.domain.tld` that resolve differently based on the client's subnet.
524
+
525
+ - create a weighted record for `web.domain.tld` that directs traffic to different IPs based on their weights.
526
+
527
+ ```python
528
+ import pulumi
529
+ import pulumiverse_scaleway as scaleway
530
+
531
+ geo_ip = scaleway.domain.Record("geo_ip",
532
+ dns_zone="domain.tld",
533
+ name="images",
534
+ type="A",
535
+ data="1.2.3.4",
536
+ ttl=3600,
537
+ geo_ip={
538
+ "matches": [
539
+ {
540
+ "continents": ["EU"],
541
+ "countries": ["FR"],
542
+ "data": "1.2.3.5",
543
+ },
544
+ {
545
+ "continents": ["NA"],
546
+ "data": "4.3.2.1",
547
+ },
548
+ ],
549
+ })
550
+ http_service = scaleway.domain.Record("http_service",
551
+ dns_zone="domain.tld",
552
+ name="app",
553
+ type="A",
554
+ data="1.2.3.4",
555
+ ttl=3600,
556
+ http_service={
557
+ "ips": [
558
+ "1.2.3.5",
559
+ "1.2.3.6",
560
+ ],
561
+ "must_contain": "up",
562
+ "url": "http://mywebsite.com/health",
563
+ "user_agent": "scw_service_up",
564
+ "strategy": "hashed",
565
+ })
566
+ view = scaleway.domain.Record("view",
567
+ dns_zone="domain.tld",
568
+ name="db",
569
+ type="A",
570
+ data="1.2.3.4",
571
+ ttl=3600,
572
+ views=[
573
+ {
574
+ "subnet": "100.0.0.0/16",
575
+ "data": "1.2.3.5",
576
+ },
577
+ {
578
+ "subnet": "100.1.0.0/16",
579
+ "data": "1.2.3.6",
580
+ },
581
+ ])
582
+ weighted = scaleway.domain.Record("weighted",
583
+ dns_zone="domain.tld",
584
+ name="web",
585
+ type="A",
586
+ data="1.2.3.4",
587
+ ttl=3600,
588
+ weighteds=[
589
+ {
590
+ "ip": "1.2.3.5",
591
+ "weight": 1,
592
+ },
593
+ {
594
+ "ip": "1.2.3.6",
595
+ "weight": 2,
596
+ },
597
+ ])
598
+ ```
599
+
600
+ ### Create an Instance and add records with the new Instance IP
601
+
602
+ The following commands allow you to:
603
+
604
+ - create a Scaleway Instance
605
+ - assign The Instance's IP address to various DNS records for a specified DNS zone
606
+
607
+ ```python
608
+ import pulumi
609
+ import pulumiverse_scaleway as scaleway
610
+
611
+ config = pulumi.Config()
612
+ # Your project ID.
613
+ project_id = config.require("projectId")
614
+ # The DNS Zone used for testing records.
615
+ dns_zone = config.require("dnsZone")
616
+ public_ip = scaleway.instance.Ip("public_ip", project_id=project_id)
617
+ web = scaleway.instance.Server("web",
618
+ project_id=project_id,
619
+ type="DEV1-S",
620
+ image="ubuntu_jammy",
621
+ tags=[
622
+ "front",
623
+ "web",
624
+ ],
625
+ ip_id=public_ip.id,
626
+ root_volume={
627
+ "size_in_gb": 20,
628
+ })
629
+ web_a = scaleway.domain.Record("web_A",
630
+ dns_zone=dns_zone,
631
+ name="web",
632
+ type="A",
633
+ data=web.public_ip,
634
+ ttl=3600)
635
+ web_cname = scaleway.domain.Record("web_cname",
636
+ dns_zone=dns_zone,
637
+ name="www",
638
+ type="CNAME",
639
+ data=f"web.{dns_zone}.",
640
+ ttl=3600)
641
+ web_alias = scaleway.domain.Record("web_alias",
642
+ dns_zone=dns_zone,
643
+ name="",
644
+ type="ALIAS",
645
+ data=f"web.{dns_zone}.",
646
+ ttl=3600)
647
+ ```
648
+
649
+ ## Multiple records
650
+
651
+ Some record types can have multiple data with the same name (e.g., `A`, `AAAA`, `MX`, `NS`, etc.). You can duplicate a `domain.Record` resource with the same `name`, and the records will be added.
652
+
653
+ Note however, that some records (e.g., CNAME, multiple dynamic records of different types) must be unique.
654
+
655
+ ## Import
656
+
657
+ This section explains how to import a record using the `{dns_zone}/{id}` format.
658
+
659
+ bash
660
+
661
+ ```sh
662
+ $ pulumi import scaleway:domain/record:Record www subdomain.domain.tld/11111111-1111-1111-1111-111111111111
663
+ ```
664
+
665
+ :param str resource_name: The name of the resource.
666
+ :param pulumi.ResourceOptions opts: Options for the resource.
667
+ :param pulumi.Input[str] data: The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).
668
+ :param pulumi.Input[str] dns_zone: The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.
669
+ :param pulumi.Input[Union['RecordGeoIpArgs', 'RecordGeoIpArgsDict']] geo_ip: Return record based on client localisation
670
+ :param pulumi.Input[Union['RecordHttpServiceArgs', 'RecordHttpServiceArgsDict']] http_service: Return record based on client localisation
671
+ :param pulumi.Input[bool] keep_empty_zone: When destroying a resource, if only NS records remain and this is set to `false`, the zone will be deleted. Note that each zone not deleted will [be billed](https://www.scaleway.com/en/dns/).
672
+ :param pulumi.Input[str] name: The name of the record (can be an empty string for a root record).
673
+ :param pulumi.Input[int] priority: The priority of the record (mostly used with an `MX` record).
674
+ :param pulumi.Input[str] project_id: The project_id you want to attach the resource to
675
+ :param pulumi.Input[int] ttl: Time To Live of the record in seconds.
676
+ :param pulumi.Input[str] type: The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).
677
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RecordViewArgs', 'RecordViewArgsDict']]]] views: Return record based on client subnet
678
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RecordWeightedArgs', 'RecordWeightedArgsDict']]]] weighteds: Return record based on weight
679
+ """
680
+ ...
681
+ @overload
682
+ def __init__(__self__,
683
+ resource_name: str,
684
+ args: RecordArgs,
685
+ opts: Optional[pulumi.ResourceOptions] = None):
686
+ """
687
+ The `domain.Record` resource allows you to create and manage DNS records for Scaleway domains.
688
+
689
+ Refer to the Domains and DNS [product documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) and [API documentation](https://www.scaleway.com/en/developers/api/domains-and-dns/) for more information.
690
+
691
+ ## Example Usage
692
+
693
+ ### Create basic DNS records
694
+
695
+ The folllowing commands allow you to:
696
+
697
+ - create an A record for the `www.domain.tld` domain, pointing to `1.2.3.4` and another one pointing to `1.2.3.5`
698
+
699
+ - create an MX record with the `mx.online.net.` mail server and a priority of 10, and another one with the `mx-cache.online.net.` mail server and a priority of 20
700
+
701
+ ```python
702
+ import pulumi
703
+ import pulumiverse_scaleway as scaleway
704
+
705
+ www = scaleway.domain.Record("www",
706
+ dns_zone="domain.tld",
707
+ name="www",
708
+ type="A",
709
+ data="1.2.3.4",
710
+ ttl=3600)
711
+ www2 = scaleway.domain.Record("www2",
712
+ dns_zone="domain.tld",
713
+ name="www",
714
+ type="A",
715
+ data="1.2.3.5",
716
+ ttl=3600)
717
+ mx = scaleway.domain.Record("mx",
718
+ dns_zone="domain.tld",
719
+ name="",
720
+ type="MX",
721
+ data="mx.online.net.",
722
+ ttl=3600,
723
+ priority=10)
724
+ mx2 = scaleway.domain.Record("mx2",
725
+ dns_zone="domain.tld",
726
+ name="",
727
+ type="MX",
728
+ data="mx-cache.online.net.",
729
+ ttl=3600,
730
+ priority=20)
731
+ ```
732
+
733
+ ### Create dynamic records
734
+
735
+ The folllowing commands allow you to:
736
+
737
+ - create a Geo IP record for `images.domain.tld` that points to different IPs based on the user's location: `1.2.3.5` for users in France (EU), and `4.3.2.1` for users in North America (NA)
738
+
739
+ - create an HTTP service record for `app.domain.tld` that checks the health of specified IPs and responds based on their status.
740
+
741
+ - create view-based records for `db.domain.tld` that resolve differently based on the client's subnet.
742
+
743
+ - create a weighted record for `web.domain.tld` that directs traffic to different IPs based on their weights.
744
+
745
+ ```python
746
+ import pulumi
747
+ import pulumiverse_scaleway as scaleway
748
+
749
+ geo_ip = scaleway.domain.Record("geo_ip",
750
+ dns_zone="domain.tld",
751
+ name="images",
752
+ type="A",
753
+ data="1.2.3.4",
754
+ ttl=3600,
755
+ geo_ip={
756
+ "matches": [
757
+ {
758
+ "continents": ["EU"],
759
+ "countries": ["FR"],
760
+ "data": "1.2.3.5",
761
+ },
762
+ {
763
+ "continents": ["NA"],
764
+ "data": "4.3.2.1",
765
+ },
766
+ ],
767
+ })
768
+ http_service = scaleway.domain.Record("http_service",
769
+ dns_zone="domain.tld",
770
+ name="app",
771
+ type="A",
772
+ data="1.2.3.4",
773
+ ttl=3600,
774
+ http_service={
775
+ "ips": [
776
+ "1.2.3.5",
777
+ "1.2.3.6",
778
+ ],
779
+ "must_contain": "up",
780
+ "url": "http://mywebsite.com/health",
781
+ "user_agent": "scw_service_up",
782
+ "strategy": "hashed",
783
+ })
784
+ view = scaleway.domain.Record("view",
785
+ dns_zone="domain.tld",
786
+ name="db",
787
+ type="A",
788
+ data="1.2.3.4",
789
+ ttl=3600,
790
+ views=[
791
+ {
792
+ "subnet": "100.0.0.0/16",
793
+ "data": "1.2.3.5",
794
+ },
795
+ {
796
+ "subnet": "100.1.0.0/16",
797
+ "data": "1.2.3.6",
798
+ },
799
+ ])
800
+ weighted = scaleway.domain.Record("weighted",
801
+ dns_zone="domain.tld",
802
+ name="web",
803
+ type="A",
804
+ data="1.2.3.4",
805
+ ttl=3600,
806
+ weighteds=[
807
+ {
808
+ "ip": "1.2.3.5",
809
+ "weight": 1,
810
+ },
811
+ {
812
+ "ip": "1.2.3.6",
813
+ "weight": 2,
814
+ },
815
+ ])
816
+ ```
817
+
818
+ ### Create an Instance and add records with the new Instance IP
819
+
820
+ The following commands allow you to:
821
+
822
+ - create a Scaleway Instance
823
+ - assign The Instance's IP address to various DNS records for a specified DNS zone
824
+
825
+ ```python
826
+ import pulumi
827
+ import pulumiverse_scaleway as scaleway
828
+
829
+ config = pulumi.Config()
830
+ # Your project ID.
831
+ project_id = config.require("projectId")
832
+ # The DNS Zone used for testing records.
833
+ dns_zone = config.require("dnsZone")
834
+ public_ip = scaleway.instance.Ip("public_ip", project_id=project_id)
835
+ web = scaleway.instance.Server("web",
836
+ project_id=project_id,
837
+ type="DEV1-S",
838
+ image="ubuntu_jammy",
839
+ tags=[
840
+ "front",
841
+ "web",
842
+ ],
843
+ ip_id=public_ip.id,
844
+ root_volume={
845
+ "size_in_gb": 20,
846
+ })
847
+ web_a = scaleway.domain.Record("web_A",
848
+ dns_zone=dns_zone,
849
+ name="web",
850
+ type="A",
851
+ data=web.public_ip,
852
+ ttl=3600)
853
+ web_cname = scaleway.domain.Record("web_cname",
854
+ dns_zone=dns_zone,
855
+ name="www",
856
+ type="CNAME",
857
+ data=f"web.{dns_zone}.",
858
+ ttl=3600)
859
+ web_alias = scaleway.domain.Record("web_alias",
860
+ dns_zone=dns_zone,
861
+ name="",
862
+ type="ALIAS",
863
+ data=f"web.{dns_zone}.",
864
+ ttl=3600)
865
+ ```
866
+
867
+ ## Multiple records
868
+
869
+ Some record types can have multiple data with the same name (e.g., `A`, `AAAA`, `MX`, `NS`, etc.). You can duplicate a `domain.Record` resource with the same `name`, and the records will be added.
870
+
871
+ Note however, that some records (e.g., CNAME, multiple dynamic records of different types) must be unique.
872
+
873
+ ## Import
874
+
875
+ This section explains how to import a record using the `{dns_zone}/{id}` format.
876
+
877
+ bash
878
+
879
+ ```sh
880
+ $ pulumi import scaleway:domain/record:Record www subdomain.domain.tld/11111111-1111-1111-1111-111111111111
881
+ ```
882
+
883
+ :param str resource_name: The name of the resource.
884
+ :param RecordArgs args: The arguments to use to populate this resource's properties.
885
+ :param pulumi.ResourceOptions opts: Options for the resource.
886
+ """
887
+ ...
888
+ def __init__(__self__, resource_name: str, *args, **kwargs):
889
+ resource_args, opts = _utilities.get_resource_args_opts(RecordArgs, pulumi.ResourceOptions, *args, **kwargs)
890
+ if resource_args is not None:
891
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
892
+ else:
893
+ __self__._internal_init(resource_name, *args, **kwargs)
894
+
895
+ def _internal_init(__self__,
896
+ resource_name: str,
897
+ opts: Optional[pulumi.ResourceOptions] = None,
898
+ data: Optional[pulumi.Input[str]] = None,
899
+ dns_zone: Optional[pulumi.Input[str]] = None,
900
+ geo_ip: Optional[pulumi.Input[Union['RecordGeoIpArgs', 'RecordGeoIpArgsDict']]] = None,
901
+ http_service: Optional[pulumi.Input[Union['RecordHttpServiceArgs', 'RecordHttpServiceArgsDict']]] = None,
902
+ keep_empty_zone: Optional[pulumi.Input[bool]] = None,
903
+ name: Optional[pulumi.Input[str]] = None,
904
+ priority: Optional[pulumi.Input[int]] = None,
905
+ project_id: Optional[pulumi.Input[str]] = None,
906
+ ttl: Optional[pulumi.Input[int]] = None,
907
+ type: Optional[pulumi.Input[str]] = None,
908
+ views: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordViewArgs', 'RecordViewArgsDict']]]]] = None,
909
+ weighteds: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordWeightedArgs', 'RecordWeightedArgsDict']]]]] = None,
910
+ __props__=None):
911
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
912
+ if not isinstance(opts, pulumi.ResourceOptions):
913
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
914
+ if opts.id is None:
915
+ if __props__ is not None:
916
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
917
+ __props__ = RecordArgs.__new__(RecordArgs)
918
+
919
+ if data is None and not opts.urn:
920
+ raise TypeError("Missing required property 'data'")
921
+ __props__.__dict__["data"] = data
922
+ if dns_zone is None and not opts.urn:
923
+ raise TypeError("Missing required property 'dns_zone'")
924
+ __props__.__dict__["dns_zone"] = dns_zone
925
+ __props__.__dict__["geo_ip"] = geo_ip
926
+ __props__.__dict__["http_service"] = http_service
927
+ __props__.__dict__["keep_empty_zone"] = keep_empty_zone
928
+ __props__.__dict__["name"] = name
929
+ __props__.__dict__["priority"] = priority
930
+ __props__.__dict__["project_id"] = project_id
931
+ __props__.__dict__["ttl"] = ttl
932
+ if type is None and not opts.urn:
933
+ raise TypeError("Missing required property 'type'")
934
+ __props__.__dict__["type"] = type
935
+ __props__.__dict__["views"] = views
936
+ __props__.__dict__["weighteds"] = weighteds
937
+ __props__.__dict__["fqdn"] = None
938
+ __props__.__dict__["root_zone"] = None
939
+ alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/domainRecord:DomainRecord")])
940
+ opts = pulumi.ResourceOptions.merge(opts, alias_opts)
941
+ super(Record, __self__).__init__(
942
+ 'scaleway:domain/record:Record',
943
+ resource_name,
944
+ __props__,
945
+ opts)
946
+
947
+ @staticmethod
948
+ def get(resource_name: str,
949
+ id: pulumi.Input[str],
950
+ opts: Optional[pulumi.ResourceOptions] = None,
951
+ data: Optional[pulumi.Input[str]] = None,
952
+ dns_zone: Optional[pulumi.Input[str]] = None,
953
+ fqdn: Optional[pulumi.Input[str]] = None,
954
+ geo_ip: Optional[pulumi.Input[Union['RecordGeoIpArgs', 'RecordGeoIpArgsDict']]] = None,
955
+ http_service: Optional[pulumi.Input[Union['RecordHttpServiceArgs', 'RecordHttpServiceArgsDict']]] = None,
956
+ keep_empty_zone: Optional[pulumi.Input[bool]] = None,
957
+ name: Optional[pulumi.Input[str]] = None,
958
+ priority: Optional[pulumi.Input[int]] = None,
959
+ project_id: Optional[pulumi.Input[str]] = None,
960
+ root_zone: Optional[pulumi.Input[bool]] = None,
961
+ ttl: Optional[pulumi.Input[int]] = None,
962
+ type: Optional[pulumi.Input[str]] = None,
963
+ views: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordViewArgs', 'RecordViewArgsDict']]]]] = None,
964
+ weighteds: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordWeightedArgs', 'RecordWeightedArgsDict']]]]] = None) -> 'Record':
965
+ """
966
+ Get an existing Record resource's state with the given name, id, and optional extra
967
+ properties used to qualify the lookup.
968
+
969
+ :param str resource_name: The unique name of the resulting resource.
970
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
971
+ :param pulumi.ResourceOptions opts: Options for the resource.
972
+ :param pulumi.Input[str] data: The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).
973
+ :param pulumi.Input[str] dns_zone: The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.
974
+ :param pulumi.Input[str] fqdn: The FQDN of the record.
975
+ :param pulumi.Input[Union['RecordGeoIpArgs', 'RecordGeoIpArgsDict']] geo_ip: Return record based on client localisation
976
+ :param pulumi.Input[Union['RecordHttpServiceArgs', 'RecordHttpServiceArgsDict']] http_service: Return record based on client localisation
977
+ :param pulumi.Input[bool] keep_empty_zone: When destroying a resource, if only NS records remain and this is set to `false`, the zone will be deleted. Note that each zone not deleted will [be billed](https://www.scaleway.com/en/dns/).
978
+ :param pulumi.Input[str] name: The name of the record (can be an empty string for a root record).
979
+ :param pulumi.Input[int] priority: The priority of the record (mostly used with an `MX` record).
980
+ :param pulumi.Input[str] project_id: The project_id you want to attach the resource to
981
+ :param pulumi.Input[bool] root_zone: Does the DNS zone is the root zone or not
982
+ :param pulumi.Input[int] ttl: Time To Live of the record in seconds.
983
+ :param pulumi.Input[str] type: The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).
984
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RecordViewArgs', 'RecordViewArgsDict']]]] views: Return record based on client subnet
985
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RecordWeightedArgs', 'RecordWeightedArgsDict']]]] weighteds: Return record based on weight
986
+ """
987
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
988
+
989
+ __props__ = _RecordState.__new__(_RecordState)
990
+
991
+ __props__.__dict__["data"] = data
992
+ __props__.__dict__["dns_zone"] = dns_zone
993
+ __props__.__dict__["fqdn"] = fqdn
994
+ __props__.__dict__["geo_ip"] = geo_ip
995
+ __props__.__dict__["http_service"] = http_service
996
+ __props__.__dict__["keep_empty_zone"] = keep_empty_zone
997
+ __props__.__dict__["name"] = name
998
+ __props__.__dict__["priority"] = priority
999
+ __props__.__dict__["project_id"] = project_id
1000
+ __props__.__dict__["root_zone"] = root_zone
1001
+ __props__.__dict__["ttl"] = ttl
1002
+ __props__.__dict__["type"] = type
1003
+ __props__.__dict__["views"] = views
1004
+ __props__.__dict__["weighteds"] = weighteds
1005
+ return Record(resource_name, opts=opts, __props__=__props__)
1006
+
1007
+ @property
1008
+ @pulumi.getter
1009
+ def data(self) -> pulumi.Output[str]:
1010
+ """
1011
+ The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).
1012
+ """
1013
+ return pulumi.get(self, "data")
1014
+
1015
+ @property
1016
+ @pulumi.getter(name="dnsZone")
1017
+ def dns_zone(self) -> pulumi.Output[str]:
1018
+ """
1019
+ The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.
1020
+ """
1021
+ return pulumi.get(self, "dns_zone")
1022
+
1023
+ @property
1024
+ @pulumi.getter
1025
+ def fqdn(self) -> pulumi.Output[str]:
1026
+ """
1027
+ The FQDN of the record.
1028
+ """
1029
+ return pulumi.get(self, "fqdn")
1030
+
1031
+ @property
1032
+ @pulumi.getter(name="geoIp")
1033
+ def geo_ip(self) -> pulumi.Output[Optional['outputs.RecordGeoIp']]:
1034
+ """
1035
+ Return record based on client localisation
1036
+ """
1037
+ return pulumi.get(self, "geo_ip")
1038
+
1039
+ @property
1040
+ @pulumi.getter(name="httpService")
1041
+ def http_service(self) -> pulumi.Output[Optional['outputs.RecordHttpService']]:
1042
+ """
1043
+ Return record based on client localisation
1044
+ """
1045
+ return pulumi.get(self, "http_service")
1046
+
1047
+ @property
1048
+ @pulumi.getter(name="keepEmptyZone")
1049
+ def keep_empty_zone(self) -> pulumi.Output[Optional[bool]]:
1050
+ """
1051
+ When destroying a resource, if only NS records remain and this is set to `false`, the zone will be deleted. Note that each zone not deleted will [be billed](https://www.scaleway.com/en/dns/).
1052
+ """
1053
+ return pulumi.get(self, "keep_empty_zone")
1054
+
1055
+ @property
1056
+ @pulumi.getter
1057
+ def name(self) -> pulumi.Output[str]:
1058
+ """
1059
+ The name of the record (can be an empty string for a root record).
1060
+ """
1061
+ return pulumi.get(self, "name")
1062
+
1063
+ @property
1064
+ @pulumi.getter
1065
+ def priority(self) -> pulumi.Output[int]:
1066
+ """
1067
+ The priority of the record (mostly used with an `MX` record).
1068
+ """
1069
+ return pulumi.get(self, "priority")
1070
+
1071
+ @property
1072
+ @pulumi.getter(name="projectId")
1073
+ def project_id(self) -> pulumi.Output[str]:
1074
+ """
1075
+ The project_id you want to attach the resource to
1076
+ """
1077
+ return pulumi.get(self, "project_id")
1078
+
1079
+ @property
1080
+ @pulumi.getter(name="rootZone")
1081
+ def root_zone(self) -> pulumi.Output[bool]:
1082
+ """
1083
+ Does the DNS zone is the root zone or not
1084
+ """
1085
+ return pulumi.get(self, "root_zone")
1086
+
1087
+ @property
1088
+ @pulumi.getter
1089
+ def ttl(self) -> pulumi.Output[Optional[int]]:
1090
+ """
1091
+ Time To Live of the record in seconds.
1092
+ """
1093
+ return pulumi.get(self, "ttl")
1094
+
1095
+ @property
1096
+ @pulumi.getter
1097
+ def type(self) -> pulumi.Output[str]:
1098
+ """
1099
+ The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).
1100
+ """
1101
+ return pulumi.get(self, "type")
1102
+
1103
+ @property
1104
+ @pulumi.getter
1105
+ def views(self) -> pulumi.Output[Optional[Sequence['outputs.RecordView']]]:
1106
+ """
1107
+ Return record based on client subnet
1108
+ """
1109
+ return pulumi.get(self, "views")
1110
+
1111
+ @property
1112
+ @pulumi.getter
1113
+ def weighteds(self) -> pulumi.Output[Optional[Sequence['outputs.RecordWeighted']]]:
1114
+ """
1115
+ Return record based on weight
1116
+ """
1117
+ return pulumi.get(self, "weighteds")
1118
+