pulumiverse-scaleway 1.24.0a1741680905__py3-none-any.whl → 1.25.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumiverse_scaleway/__init__.py +929 -0
- pulumiverse_scaleway/account/__init__.py +12 -0
- pulumiverse_scaleway/account/get_availability_zones.py +139 -0
- pulumiverse_scaleway/account/get_project.py +170 -0
- pulumiverse_scaleway/account/get_ssh_key.py +205 -0
- pulumiverse_scaleway/account/project.py +318 -0
- pulumiverse_scaleway/account/ssh_key.py +456 -0
- pulumiverse_scaleway/account_project.py +6 -0
- pulumiverse_scaleway/account_ssh_key.py +12 -6
- pulumiverse_scaleway/apple_silicon_server.py +8 -2
- pulumiverse_scaleway/applesilicon/__init__.py +10 -0
- pulumiverse_scaleway/applesilicon/_inputs.py +154 -0
- pulumiverse_scaleway/applesilicon/outputs.py +119 -0
- pulumiverse_scaleway/applesilicon/server.py +690 -0
- pulumiverse_scaleway/baremetal_server.py +64 -58
- pulumiverse_scaleway/billing/__init__.py +10 -0
- pulumiverse_scaleway/billing/get_consumptions.py +134 -0
- pulumiverse_scaleway/billing/get_invoices.py +154 -0
- pulumiverse_scaleway/billing/outputs.py +288 -0
- pulumiverse_scaleway/block/__init__.py +11 -0
- pulumiverse_scaleway/block/get_snapshot.py +174 -0
- pulumiverse_scaleway/block/get_volume.py +199 -0
- pulumiverse_scaleway/block/snapshot.py +403 -0
- pulumiverse_scaleway/block/volume.py +576 -0
- pulumiverse_scaleway/block_snapshot.py +12 -6
- pulumiverse_scaleway/block_volume.py +16 -10
- pulumiverse_scaleway/cockpit.py +10 -4
- pulumiverse_scaleway/cockpit_alert_manager.py +12 -6
- pulumiverse_scaleway/cockpit_grafana_user.py +12 -6
- pulumiverse_scaleway/cockpit_source.py +12 -6
- pulumiverse_scaleway/cockpit_token.py +16 -10
- pulumiverse_scaleway/container.py +16 -10
- pulumiverse_scaleway/container_cron.py +14 -8
- pulumiverse_scaleway/container_domain.py +24 -18
- pulumiverse_scaleway/container_namespace.py +10 -4
- pulumiverse_scaleway/container_token.py +32 -26
- pulumiverse_scaleway/container_trigger.py +12 -6
- pulumiverse_scaleway/containers/__init__.py +17 -0
- pulumiverse_scaleway/containers/_inputs.py +389 -0
- pulumiverse_scaleway/containers/container.py +1635 -0
- pulumiverse_scaleway/containers/cron.py +460 -0
- pulumiverse_scaleway/containers/domain.py +408 -0
- pulumiverse_scaleway/containers/get_container.py +562 -0
- pulumiverse_scaleway/containers/get_namespace.py +283 -0
- pulumiverse_scaleway/containers/namespace.py +638 -0
- pulumiverse_scaleway/containers/outputs.py +412 -0
- pulumiverse_scaleway/containers/token.py +454 -0
- pulumiverse_scaleway/containers/trigger.py +482 -0
- pulumiverse_scaleway/database.py +10 -4
- pulumiverse_scaleway/database_acl.py +10 -4
- pulumiverse_scaleway/database_backup.py +14 -8
- pulumiverse_scaleway/database_instance.py +24 -18
- pulumiverse_scaleway/database_privilege.py +16 -10
- pulumiverse_scaleway/database_read_replica.py +22 -16
- pulumiverse_scaleway/database_user.py +10 -4
- pulumiverse_scaleway/databases/__init__.py +23 -0
- pulumiverse_scaleway/databases/_inputs.py +822 -0
- pulumiverse_scaleway/databases/acl.py +334 -0
- pulumiverse_scaleway/databases/database.py +409 -0
- pulumiverse_scaleway/databases/database_backup.py +576 -0
- pulumiverse_scaleway/databases/get_acl.py +143 -0
- pulumiverse_scaleway/databases/get_database.py +187 -0
- pulumiverse_scaleway/databases/get_database_backup.py +253 -0
- pulumiverse_scaleway/databases/get_instance.py +415 -0
- pulumiverse_scaleway/databases/get_privilege.py +181 -0
- pulumiverse_scaleway/databases/instance.py +1696 -0
- pulumiverse_scaleway/databases/outputs.py +866 -0
- pulumiverse_scaleway/databases/privilege.py +424 -0
- pulumiverse_scaleway/databases/read_replica.py +530 -0
- pulumiverse_scaleway/databases/serverless_database.py +434 -0
- pulumiverse_scaleway/databases/snapshot.py +610 -0
- pulumiverse_scaleway/databases/user.py +448 -0
- pulumiverse_scaleway/domain/__init__.py +13 -0
- pulumiverse_scaleway/domain/_inputs.py +341 -0
- pulumiverse_scaleway/domain/get_record.py +340 -0
- pulumiverse_scaleway/domain/get_zone.py +201 -0
- pulumiverse_scaleway/domain/outputs.py +408 -0
- pulumiverse_scaleway/domain/record.py +1118 -0
- pulumiverse_scaleway/domain/zone.py +432 -0
- pulumiverse_scaleway/domain_record.py +36 -30
- pulumiverse_scaleway/domain_zone.py +6 -0
- pulumiverse_scaleway/elasticmetal/__init__.py +18 -0
- pulumiverse_scaleway/elasticmetal/_inputs.py +509 -0
- pulumiverse_scaleway/elasticmetal/get_ip.py +247 -0
- pulumiverse_scaleway/elasticmetal/get_ips.py +240 -0
- pulumiverse_scaleway/elasticmetal/get_offer.py +245 -0
- pulumiverse_scaleway/elasticmetal/get_option.py +168 -0
- pulumiverse_scaleway/elasticmetal/get_os.py +174 -0
- pulumiverse_scaleway/elasticmetal/get_server.py +422 -0
- pulumiverse_scaleway/elasticmetal/ip.py +704 -0
- pulumiverse_scaleway/elasticmetal/ip_mac_address.py +512 -0
- pulumiverse_scaleway/elasticmetal/outputs.py +974 -0
- pulumiverse_scaleway/elasticmetal/server.py +1591 -0
- pulumiverse_scaleway/flexible_ip.py +22 -16
- pulumiverse_scaleway/flexible_ip_mac_address.py +22 -16
- pulumiverse_scaleway/function.py +6 -0
- pulumiverse_scaleway/function_cron.py +16 -10
- pulumiverse_scaleway/function_domain.py +16 -10
- pulumiverse_scaleway/function_namespace.py +10 -4
- pulumiverse_scaleway/function_token.py +32 -26
- pulumiverse_scaleway/function_trigger.py +12 -6
- pulumiverse_scaleway/functions/__init__.py +17 -0
- pulumiverse_scaleway/functions/_inputs.py +211 -0
- pulumiverse_scaleway/functions/cron.py +464 -0
- pulumiverse_scaleway/functions/domain.py +372 -0
- pulumiverse_scaleway/functions/function.py +1105 -0
- pulumiverse_scaleway/functions/get_function.py +365 -0
- pulumiverse_scaleway/functions/get_namespace.py +238 -0
- pulumiverse_scaleway/functions/namespace.py +582 -0
- pulumiverse_scaleway/functions/outputs.py +168 -0
- pulumiverse_scaleway/functions/token.py +462 -0
- pulumiverse_scaleway/functions/trigger.py +482 -0
- pulumiverse_scaleway/get_account_project.py +6 -2
- pulumiverse_scaleway/get_account_ssh_key.py +6 -2
- pulumiverse_scaleway/get_availability_zones.py +8 -4
- pulumiverse_scaleway/get_baremetal_offer.py +4 -0
- pulumiverse_scaleway/get_baremetal_option.py +8 -4
- pulumiverse_scaleway/get_baremetal_os.py +8 -4
- pulumiverse_scaleway/get_baremetal_server.py +8 -4
- pulumiverse_scaleway/get_billing_consumptions.py +4 -0
- pulumiverse_scaleway/get_billing_invoices.py +4 -0
- pulumiverse_scaleway/get_block_snapshot.py +6 -2
- pulumiverse_scaleway/get_block_volume.py +6 -2
- pulumiverse_scaleway/get_cockpit.py +12 -8
- pulumiverse_scaleway/get_cockpit_plan.py +10 -6
- pulumiverse_scaleway/get_cockpit_source.py +8 -4
- pulumiverse_scaleway/get_container.py +16 -12
- pulumiverse_scaleway/get_container_namespace.py +10 -6
- pulumiverse_scaleway/get_database.py +6 -2
- pulumiverse_scaleway/get_database_acl.py +6 -2
- pulumiverse_scaleway/get_database_backup.py +10 -6
- pulumiverse_scaleway/get_database_instance.py +4 -0
- pulumiverse_scaleway/get_database_privilege.py +6 -2
- pulumiverse_scaleway/get_domain_record.py +10 -6
- pulumiverse_scaleway/get_domain_zone.py +4 -0
- pulumiverse_scaleway/get_flexible_ip.py +4 -0
- pulumiverse_scaleway/get_flexible_ips.py +16 -12
- pulumiverse_scaleway/get_function.py +6 -2
- pulumiverse_scaleway/get_function_namespace.py +6 -2
- pulumiverse_scaleway/get_iam_api_key.py +6 -2
- pulumiverse_scaleway/get_iam_application.py +8 -4
- pulumiverse_scaleway/get_iam_group.py +8 -4
- pulumiverse_scaleway/get_iam_ssh_key.py +4 -0
- pulumiverse_scaleway/get_iam_user.py +8 -4
- pulumiverse_scaleway/get_instance_image.py +4 -0
- pulumiverse_scaleway/get_instance_ip.py +4 -0
- pulumiverse_scaleway/get_instance_placement_group.py +4 -0
- pulumiverse_scaleway/get_instance_private_nic.py +10 -6
- pulumiverse_scaleway/get_instance_security_group.py +4 -0
- pulumiverse_scaleway/get_instance_server.py +4 -0
- pulumiverse_scaleway/get_instance_servers.py +4 -0
- pulumiverse_scaleway/get_instance_snapshot.py +8 -4
- pulumiverse_scaleway/get_instance_volume.py +4 -0
- pulumiverse_scaleway/get_iot_device.py +4 -0
- pulumiverse_scaleway/get_iot_hub.py +4 -0
- pulumiverse_scaleway/get_ipam_ip.py +18 -14
- pulumiverse_scaleway/get_ipam_ips.py +14 -10
- pulumiverse_scaleway/get_k8s_version.py +8 -4
- pulumiverse_scaleway/get_kubernetes_cluster.py +4 -0
- pulumiverse_scaleway/get_kubernetes_node_pool.py +4 -0
- pulumiverse_scaleway/get_lb_acls.py +8 -4
- pulumiverse_scaleway/get_lb_backend.py +18 -14
- pulumiverse_scaleway/get_lb_backends.py +8 -4
- pulumiverse_scaleway/get_lb_frontend.py +16 -12
- pulumiverse_scaleway/get_lb_frontends.py +8 -4
- pulumiverse_scaleway/get_lb_ips.py +4 -0
- pulumiverse_scaleway/get_lb_route.py +16 -12
- pulumiverse_scaleway/get_lb_routes.py +8 -4
- pulumiverse_scaleway/get_lbs.py +4 -0
- pulumiverse_scaleway/get_loadbalancer.py +8 -4
- pulumiverse_scaleway/get_loadbalancer_certificate.py +4 -0
- pulumiverse_scaleway/get_loadbalancer_ip.py +4 -0
- pulumiverse_scaleway/get_mnq_sns.py +8 -4
- pulumiverse_scaleway/get_mnq_sqs.py +8 -4
- pulumiverse_scaleway/get_mongo_db_instance.py +4 -0
- pulumiverse_scaleway/get_object_bucket.py +12 -8
- pulumiverse_scaleway/get_object_bucket_policy.py +8 -4
- pulumiverse_scaleway/get_redis_cluster.py +4 -0
- pulumiverse_scaleway/get_registry_image.py +4 -0
- pulumiverse_scaleway/get_registry_image_tag.py +4 -0
- pulumiverse_scaleway/get_registry_namespace.py +4 -0
- pulumiverse_scaleway/get_secret.py +12 -8
- pulumiverse_scaleway/get_secret_version.py +14 -10
- pulumiverse_scaleway/get_tem_domain.py +4 -0
- pulumiverse_scaleway/get_vpc.py +10 -6
- pulumiverse_scaleway/get_vpc_gateway_network.py +10 -6
- pulumiverse_scaleway/get_vpc_private_network.py +10 -6
- pulumiverse_scaleway/get_vpc_public_gateway.py +10 -6
- pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +8 -4
- pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +70 -66
- pulumiverse_scaleway/get_vpc_public_gateway_ip.py +8 -4
- pulumiverse_scaleway/get_vpc_public_pat_rule.py +26 -22
- pulumiverse_scaleway/get_vpc_routes.py +4 -0
- pulumiverse_scaleway/get_vpcs.py +4 -0
- pulumiverse_scaleway/get_web_host_offer.py +8 -4
- pulumiverse_scaleway/get_webhosting.py +8 -4
- pulumiverse_scaleway/hosting/__init__.py +12 -0
- pulumiverse_scaleway/hosting/_inputs.py +295 -0
- pulumiverse_scaleway/hosting/get_hosting.py +354 -0
- pulumiverse_scaleway/hosting/get_offer.py +229 -0
- pulumiverse_scaleway/hosting/hosting.py +870 -0
- pulumiverse_scaleway/hosting/outputs.py +626 -0
- pulumiverse_scaleway/iam/__init__.py +21 -0
- pulumiverse_scaleway/iam/_inputs.py +138 -0
- pulumiverse_scaleway/iam/api_key.py +622 -0
- pulumiverse_scaleway/iam/application.py +419 -0
- pulumiverse_scaleway/iam/get_api_key.py +210 -0
- pulumiverse_scaleway/iam/get_application.py +210 -0
- pulumiverse_scaleway/iam/get_group.py +236 -0
- pulumiverse_scaleway/iam/get_ssh_key.py +212 -0
- pulumiverse_scaleway/iam/get_user.py +177 -0
- pulumiverse_scaleway/iam/group.py +568 -0
- pulumiverse_scaleway/iam/group_membership.py +325 -0
- pulumiverse_scaleway/iam/outputs.py +111 -0
- pulumiverse_scaleway/iam/policy.py +775 -0
- pulumiverse_scaleway/iam/ssh_key.py +457 -0
- pulumiverse_scaleway/iam/user.py +515 -0
- pulumiverse_scaleway/iam_api_key.py +16 -10
- pulumiverse_scaleway/iam_application.py +8 -2
- pulumiverse_scaleway/iam_group.py +12 -6
- pulumiverse_scaleway/iam_group_membership.py +12 -6
- pulumiverse_scaleway/iam_policy.py +18 -12
- pulumiverse_scaleway/iam_ssh_key.py +8 -2
- pulumiverse_scaleway/iam_user.py +8 -2
- pulumiverse_scaleway/inference/__init__.py +10 -0
- pulumiverse_scaleway/inference/_inputs.py +209 -0
- pulumiverse_scaleway/inference/deployment.py +824 -0
- pulumiverse_scaleway/inference/outputs.py +169 -0
- pulumiverse_scaleway/inference_deployment.py +8 -2
- pulumiverse_scaleway/instance/__init__.py +29 -0
- pulumiverse_scaleway/instance/_inputs.py +1237 -0
- pulumiverse_scaleway/instance/get_image.py +305 -0
- pulumiverse_scaleway/instance/get_ip.py +204 -0
- pulumiverse_scaleway/instance/get_placement_group.py +212 -0
- pulumiverse_scaleway/instance/get_private_nic.py +226 -0
- pulumiverse_scaleway/instance/get_security_group.py +268 -0
- pulumiverse_scaleway/instance/get_server.py +488 -0
- pulumiverse_scaleway/instance/get_servers.py +187 -0
- pulumiverse_scaleway/instance/get_snapshot.py +248 -0
- pulumiverse_scaleway/instance/get_volume.py +226 -0
- pulumiverse_scaleway/instance/image.py +752 -0
- pulumiverse_scaleway/instance/ip.py +471 -0
- pulumiverse_scaleway/instance/ip_reverse_dns.py +310 -0
- pulumiverse_scaleway/instance/outputs.py +1533 -0
- pulumiverse_scaleway/instance/placement_group.py +481 -0
- pulumiverse_scaleway/instance/private_nic.py +557 -0
- pulumiverse_scaleway/instance/security_group.py +722 -0
- pulumiverse_scaleway/instance/security_group_rules.py +441 -0
- pulumiverse_scaleway/instance/server.py +1938 -0
- pulumiverse_scaleway/instance/snapshot.py +671 -0
- pulumiverse_scaleway/instance/user_data.py +437 -0
- pulumiverse_scaleway/instance/volume.py +584 -0
- pulumiverse_scaleway/instance_image.py +18 -12
- pulumiverse_scaleway/instance_ip.py +8 -2
- pulumiverse_scaleway/instance_ip_reverse_dns.py +12 -6
- pulumiverse_scaleway/instance_placement_group.py +8 -2
- pulumiverse_scaleway/instance_private_nic.py +24 -18
- pulumiverse_scaleway/instance_security_group.py +6 -0
- pulumiverse_scaleway/instance_security_group_rules.py +22 -16
- pulumiverse_scaleway/instance_server.py +74 -68
- pulumiverse_scaleway/instance_snapshot.py +22 -16
- pulumiverse_scaleway/instance_user_data.py +16 -10
- pulumiverse_scaleway/instance_volume.py +8 -2
- pulumiverse_scaleway/iot/__init__.py +15 -0
- pulumiverse_scaleway/iot/_inputs.py +539 -0
- pulumiverse_scaleway/iot/device.py +752 -0
- pulumiverse_scaleway/iot/get_device.py +257 -0
- pulumiverse_scaleway/iot/get_hub.py +322 -0
- pulumiverse_scaleway/iot/hub.py +898 -0
- pulumiverse_scaleway/iot/network.py +474 -0
- pulumiverse_scaleway/iot/outputs.py +465 -0
- pulumiverse_scaleway/iot/route.py +662 -0
- pulumiverse_scaleway/iot_device.py +14 -8
- pulumiverse_scaleway/iot_hub.py +8 -2
- pulumiverse_scaleway/iot_network.py +12 -6
- pulumiverse_scaleway/iot_route.py +32 -26
- pulumiverse_scaleway/ipam/__init__.py +13 -0
- pulumiverse_scaleway/ipam/_inputs.py +442 -0
- pulumiverse_scaleway/ipam/get_ip.py +419 -0
- pulumiverse_scaleway/ipam/get_ips.py +358 -0
- pulumiverse_scaleway/ipam/ip.py +759 -0
- pulumiverse_scaleway/ipam/ip_reverse_dns.py +320 -0
- pulumiverse_scaleway/ipam/outputs.py +481 -0
- pulumiverse_scaleway/ipam_ip.py +30 -24
- pulumiverse_scaleway/ipam_ip_reverse_dns.py +6 -0
- pulumiverse_scaleway/job/__init__.py +10 -0
- pulumiverse_scaleway/job/_inputs.py +73 -0
- pulumiverse_scaleway/job/definition.py +694 -0
- pulumiverse_scaleway/job/outputs.py +49 -0
- pulumiverse_scaleway/job_definition.py +8 -2
- pulumiverse_scaleway/kubernetes/__init__.py +14 -0
- pulumiverse_scaleway/kubernetes/_inputs.py +717 -0
- pulumiverse_scaleway/kubernetes/cluster.py +1540 -0
- pulumiverse_scaleway/kubernetes/get_cluster.py +417 -0
- pulumiverse_scaleway/kubernetes/get_pool.py +436 -0
- pulumiverse_scaleway/kubernetes/get_version.py +196 -0
- pulumiverse_scaleway/kubernetes/outputs.py +944 -0
- pulumiverse_scaleway/kubernetes/pool.py +1313 -0
- pulumiverse_scaleway/kubernetes_cluster.py +36 -30
- pulumiverse_scaleway/kubernetes_node_pool.py +6 -0
- pulumiverse_scaleway/loadbalancer.py +35 -29
- pulumiverse_scaleway/loadbalancer_acl.py +8 -2
- pulumiverse_scaleway/loadbalancer_backend.py +10 -4
- pulumiverse_scaleway/loadbalancer_certificate.py +6 -0
- pulumiverse_scaleway/loadbalancer_frontend.py +10 -4
- pulumiverse_scaleway/loadbalancer_ip.py +10 -4
- pulumiverse_scaleway/loadbalancer_route.py +26 -20
- pulumiverse_scaleway/loadbalancers/__init__.py +28 -0
- pulumiverse_scaleway/loadbalancers/_inputs.py +1103 -0
- pulumiverse_scaleway/loadbalancers/acl.py +522 -0
- pulumiverse_scaleway/loadbalancers/backend.py +1590 -0
- pulumiverse_scaleway/loadbalancers/certificate.py +462 -0
- pulumiverse_scaleway/loadbalancers/frontend.py +831 -0
- pulumiverse_scaleway/loadbalancers/get_acls.py +198 -0
- pulumiverse_scaleway/loadbalancers/get_backend.py +486 -0
- pulumiverse_scaleway/loadbalancers/get_backends.py +196 -0
- pulumiverse_scaleway/loadbalancers/get_certificate.py +230 -0
- pulumiverse_scaleway/loadbalancers/get_frontend.py +274 -0
- pulumiverse_scaleway/loadbalancers/get_frontends.py +196 -0
- pulumiverse_scaleway/loadbalancers/get_ip.py +228 -0
- pulumiverse_scaleway/loadbalancers/get_ips.py +198 -0
- pulumiverse_scaleway/loadbalancers/get_load_balancer.py +339 -0
- pulumiverse_scaleway/loadbalancers/get_load_balancers.py +187 -0
- pulumiverse_scaleway/loadbalancers/get_route.py +217 -0
- pulumiverse_scaleway/loadbalancers/get_routes.py +179 -0
- pulumiverse_scaleway/loadbalancers/ip.py +516 -0
- pulumiverse_scaleway/loadbalancers/load_balancer.py +1063 -0
- pulumiverse_scaleway/loadbalancers/outputs.py +2491 -0
- pulumiverse_scaleway/loadbalancers/route.py +525 -0
- pulumiverse_scaleway/mnq/__init__.py +20 -0
- pulumiverse_scaleway/mnq/_inputs.py +169 -0
- pulumiverse_scaleway/mnq/get_sns.py +150 -0
- pulumiverse_scaleway/mnq/get_sqs.py +150 -0
- pulumiverse_scaleway/mnq/nats_account.py +336 -0
- pulumiverse_scaleway/mnq/nats_credentials.py +332 -0
- pulumiverse_scaleway/mnq/outputs.py +149 -0
- pulumiverse_scaleway/mnq/sns.py +308 -0
- pulumiverse_scaleway/mnq/sns_credentials.py +415 -0
- pulumiverse_scaleway/mnq/sns_topic.py +661 -0
- pulumiverse_scaleway/mnq/sns_topic_subscription.py +701 -0
- pulumiverse_scaleway/mnq/sqs.py +306 -0
- pulumiverse_scaleway/mnq/sqs_credentials.py +415 -0
- pulumiverse_scaleway/mnq/sqs_queue.py +802 -0
- pulumiverse_scaleway/mnq_nats_account.py +8 -2
- pulumiverse_scaleway/mnq_nats_credentials.py +10 -4
- pulumiverse_scaleway/mnq_sns.py +12 -6
- pulumiverse_scaleway/mnq_sns_credentials.py +10 -4
- pulumiverse_scaleway/mnq_sns_topic.py +16 -10
- pulumiverse_scaleway/mnq_sns_topic_subscription.py +22 -16
- pulumiverse_scaleway/mnq_sqs.py +12 -6
- pulumiverse_scaleway/mnq_sqs_credentials.py +10 -4
- pulumiverse_scaleway/mnq_sqs_queue.py +16 -10
- pulumiverse_scaleway/mongo_db_instance.py +14 -8
- pulumiverse_scaleway/mongo_db_snapshot.py +8 -2
- pulumiverse_scaleway/mongodb/__init__.py +12 -0
- pulumiverse_scaleway/mongodb/_inputs.py +208 -0
- pulumiverse_scaleway/mongodb/get_instance.py +335 -0
- pulumiverse_scaleway/mongodb/instance.py +1000 -0
- pulumiverse_scaleway/mongodb/outputs.py +270 -0
- pulumiverse_scaleway/mongodb/snapshot.py +523 -0
- pulumiverse_scaleway/network/__init__.py +29 -0
- pulumiverse_scaleway/network/_inputs.py +383 -0
- pulumiverse_scaleway/network/gateway_network.py +868 -0
- pulumiverse_scaleway/network/get_gateway_network.py +287 -0
- pulumiverse_scaleway/network/get_private_network.py +282 -0
- pulumiverse_scaleway/network/get_public_gateway.py +304 -0
- pulumiverse_scaleway/network/get_public_gateway_dhcp.py +305 -0
- pulumiverse_scaleway/network/get_public_gateway_dhcp_reservation.py +382 -0
- pulumiverse_scaleway/network/get_public_gateway_ip.py +199 -0
- pulumiverse_scaleway/network/get_public_gateway_pat_rule.py +313 -0
- pulumiverse_scaleway/network/get_routes.py +208 -0
- pulumiverse_scaleway/network/get_vpc.py +246 -0
- pulumiverse_scaleway/network/get_vpcs.py +174 -0
- pulumiverse_scaleway/network/outputs.py +747 -0
- pulumiverse_scaleway/network/private_network.py +736 -0
- pulumiverse_scaleway/network/public_gateway.py +791 -0
- pulumiverse_scaleway/network/public_gateway_dhcp.py +949 -0
- pulumiverse_scaleway/network/public_gateway_dhcp_reservation.py +516 -0
- pulumiverse_scaleway/network/public_gateway_ip.py +459 -0
- pulumiverse_scaleway/network/public_gateway_ip_reverse_dns.py +308 -0
- pulumiverse_scaleway/network/public_gateway_pat_rule.py +593 -0
- pulumiverse_scaleway/network/route.py +579 -0
- pulumiverse_scaleway/network/vpc.py +538 -0
- pulumiverse_scaleway/object/__init__.py +17 -0
- pulumiverse_scaleway/object/_inputs.py +831 -0
- pulumiverse_scaleway/object/bucket.py +876 -0
- pulumiverse_scaleway/object/bucket_acl.py +598 -0
- pulumiverse_scaleway/object/bucket_lock_configuration.py +397 -0
- pulumiverse_scaleway/object/bucket_policy.py +675 -0
- pulumiverse_scaleway/object/bucket_website_configuration.py +536 -0
- pulumiverse_scaleway/object/get_bucket.py +290 -0
- pulumiverse_scaleway/object/get_bucket_policy.py +163 -0
- pulumiverse_scaleway/object/item.py +778 -0
- pulumiverse_scaleway/object/outputs.py +802 -0
- pulumiverse_scaleway/object_bucket.py +28 -22
- pulumiverse_scaleway/object_bucket_acl.py +14 -8
- pulumiverse_scaleway/object_bucket_lock_configuration.py +12 -6
- pulumiverse_scaleway/object_bucket_policy.py +46 -40
- pulumiverse_scaleway/object_bucket_website_configuration.py +18 -12
- pulumiverse_scaleway/object_item.py +8 -2
- pulumiverse_scaleway/observability/__init__.py +17 -0
- pulumiverse_scaleway/observability/_inputs.py +417 -0
- pulumiverse_scaleway/observability/alert_manager.py +403 -0
- pulumiverse_scaleway/observability/cockpit.py +325 -0
- pulumiverse_scaleway/observability/get_instance.py +205 -0
- pulumiverse_scaleway/observability/get_plan.py +125 -0
- pulumiverse_scaleway/observability/get_source.py +262 -0
- pulumiverse_scaleway/observability/grafana_user.py +364 -0
- pulumiverse_scaleway/observability/outputs.py +425 -0
- pulumiverse_scaleway/observability/source.py +569 -0
- pulumiverse_scaleway/observability/token.py +481 -0
- pulumiverse_scaleway/pulumi-plugin.json +1 -1
- pulumiverse_scaleway/rdb_snapshot.py +16 -10
- pulumiverse_scaleway/redis/__init__.py +11 -0
- pulumiverse_scaleway/redis/_inputs.py +330 -0
- pulumiverse_scaleway/redis/cluster.py +1203 -0
- pulumiverse_scaleway/redis/get_cluster.py +347 -0
- pulumiverse_scaleway/redis/outputs.py +356 -0
- pulumiverse_scaleway/redis_cluster.py +14 -8
- pulumiverse_scaleway/registry/__init__.py +11 -0
- pulumiverse_scaleway/registry/get_image.py +239 -0
- pulumiverse_scaleway/registry/get_image_tag.py +229 -0
- pulumiverse_scaleway/registry/get_namespace.py +199 -0
- pulumiverse_scaleway/registry/namespace.py +460 -0
- pulumiverse_scaleway/registry_namespace.py +8 -2
- pulumiverse_scaleway/sdb_database.py +10 -4
- pulumiverse_scaleway/secret.py +6 -0
- pulumiverse_scaleway/secret_version.py +12 -6
- pulumiverse_scaleway/secrets/__init__.py +13 -0
- pulumiverse_scaleway/secrets/_inputs.py +94 -0
- pulumiverse_scaleway/secrets/get_secret.py +338 -0
- pulumiverse_scaleway/secrets/get_version.py +340 -0
- pulumiverse_scaleway/secrets/outputs.py +120 -0
- pulumiverse_scaleway/secrets/secret.py +665 -0
- pulumiverse_scaleway/secrets/version.py +489 -0
- pulumiverse_scaleway/tem/__init__.py +13 -0
- pulumiverse_scaleway/tem/_inputs.py +135 -0
- pulumiverse_scaleway/tem/domain.py +1032 -0
- pulumiverse_scaleway/tem/domain_validation.py +305 -0
- pulumiverse_scaleway/tem/get_domain.py +378 -0
- pulumiverse_scaleway/tem/outputs.py +171 -0
- pulumiverse_scaleway/tem/webhook.py +642 -0
- pulumiverse_scaleway/tem_domain.py +20 -14
- pulumiverse_scaleway/tem_domain_validation.py +10 -4
- pulumiverse_scaleway/tem_webhook.py +28 -22
- pulumiverse_scaleway/vpc.py +10 -4
- pulumiverse_scaleway/vpc_gateway_network.py +40 -34
- pulumiverse_scaleway/vpc_private_network.py +10 -4
- pulumiverse_scaleway/vpc_public_gateway.py +8 -2
- pulumiverse_scaleway/vpc_public_gateway_dhcp.py +15 -9
- pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +32 -26
- pulumiverse_scaleway/vpc_public_gateway_ip.py +10 -4
- pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +12 -6
- pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +26 -20
- pulumiverse_scaleway/vpc_route.py +16 -10
- pulumiverse_scaleway/webhosting.py +10 -4
- {pulumiverse_scaleway-1.24.0a1741680905.dist-info → pulumiverse_scaleway-1.25.0.dist-info}/METADATA +2 -2
- pulumiverse_scaleway-1.25.0.dist-info/RECORD +470 -0
- {pulumiverse_scaleway-1.24.0a1741680905.dist-info → pulumiverse_scaleway-1.25.0.dist-info}/WHEEL +1 -1
- pulumiverse_scaleway-1.24.0a1741680905.dist-info/RECORD +0 -206
- {pulumiverse_scaleway-1.24.0a1741680905.dist-info → pulumiverse_scaleway-1.25.0.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
|
+
|