pulumiverse-scaleway 1.23.0a1736837529__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (205) hide show
  1. pulumiverse_scaleway/__init__.py +1065 -0
  2. pulumiverse_scaleway/_inputs.py +8688 -0
  3. pulumiverse_scaleway/_utilities.py +327 -0
  4. pulumiverse_scaleway/account_project.py +316 -0
  5. pulumiverse_scaleway/account_ssh_key.py +454 -0
  6. pulumiverse_scaleway/apple_silicon_server.py +564 -0
  7. pulumiverse_scaleway/baremetal_server.py +1579 -0
  8. pulumiverse_scaleway/block_snapshot.py +401 -0
  9. pulumiverse_scaleway/block_volume.py +527 -0
  10. pulumiverse_scaleway/cockpit.py +314 -0
  11. pulumiverse_scaleway/cockpit_alert_manager.py +401 -0
  12. pulumiverse_scaleway/cockpit_grafana_user.py +362 -0
  13. pulumiverse_scaleway/cockpit_source.py +567 -0
  14. pulumiverse_scaleway/cockpit_token.py +479 -0
  15. pulumiverse_scaleway/config/__init__.py +8 -0
  16. pulumiverse_scaleway/config/__init__.pyi +56 -0
  17. pulumiverse_scaleway/config/vars.py +78 -0
  18. pulumiverse_scaleway/container.py +1373 -0
  19. pulumiverse_scaleway/container_cron.py +458 -0
  20. pulumiverse_scaleway/container_domain.py +406 -0
  21. pulumiverse_scaleway/container_namespace.py +636 -0
  22. pulumiverse_scaleway/container_token.py +452 -0
  23. pulumiverse_scaleway/container_trigger.py +480 -0
  24. pulumiverse_scaleway/database.py +407 -0
  25. pulumiverse_scaleway/database_acl.py +332 -0
  26. pulumiverse_scaleway/database_backup.py +574 -0
  27. pulumiverse_scaleway/database_instance.py +1641 -0
  28. pulumiverse_scaleway/database_privilege.py +422 -0
  29. pulumiverse_scaleway/database_read_replica.py +528 -0
  30. pulumiverse_scaleway/database_user.py +446 -0
  31. pulumiverse_scaleway/domain_record.py +1116 -0
  32. pulumiverse_scaleway/domain_zone.py +430 -0
  33. pulumiverse_scaleway/flexible_ip.py +702 -0
  34. pulumiverse_scaleway/flexible_ip_mac_address.py +510 -0
  35. pulumiverse_scaleway/function.py +1103 -0
  36. pulumiverse_scaleway/function_cron.py +462 -0
  37. pulumiverse_scaleway/function_domain.py +370 -0
  38. pulumiverse_scaleway/function_namespace.py +580 -0
  39. pulumiverse_scaleway/function_token.py +460 -0
  40. pulumiverse_scaleway/function_trigger.py +480 -0
  41. pulumiverse_scaleway/get_account_project.py +170 -0
  42. pulumiverse_scaleway/get_account_ssh_key.py +205 -0
  43. pulumiverse_scaleway/get_availability_zones.py +139 -0
  44. pulumiverse_scaleway/get_baremetal_offer.py +245 -0
  45. pulumiverse_scaleway/get_baremetal_option.py +168 -0
  46. pulumiverse_scaleway/get_baremetal_os.py +174 -0
  47. pulumiverse_scaleway/get_baremetal_server.py +422 -0
  48. pulumiverse_scaleway/get_billing_consumptions.py +134 -0
  49. pulumiverse_scaleway/get_billing_invoices.py +154 -0
  50. pulumiverse_scaleway/get_block_snapshot.py +174 -0
  51. pulumiverse_scaleway/get_block_volume.py +188 -0
  52. pulumiverse_scaleway/get_cockpit.py +204 -0
  53. pulumiverse_scaleway/get_cockpit_plan.py +125 -0
  54. pulumiverse_scaleway/get_cockpit_source.py +262 -0
  55. pulumiverse_scaleway/get_config.py +180 -0
  56. pulumiverse_scaleway/get_container.py +522 -0
  57. pulumiverse_scaleway/get_container_namespace.py +283 -0
  58. pulumiverse_scaleway/get_database.py +187 -0
  59. pulumiverse_scaleway/get_database_acl.py +143 -0
  60. pulumiverse_scaleway/get_database_backup.py +253 -0
  61. pulumiverse_scaleway/get_database_instance.py +404 -0
  62. pulumiverse_scaleway/get_database_privilege.py +181 -0
  63. pulumiverse_scaleway/get_domain_record.py +340 -0
  64. pulumiverse_scaleway/get_domain_zone.py +201 -0
  65. pulumiverse_scaleway/get_flexible_ip.py +247 -0
  66. pulumiverse_scaleway/get_flexible_ips.py +240 -0
  67. pulumiverse_scaleway/get_function.py +365 -0
  68. pulumiverse_scaleway/get_function_namespace.py +238 -0
  69. pulumiverse_scaleway/get_iam_api_key.py +210 -0
  70. pulumiverse_scaleway/get_iam_application.py +210 -0
  71. pulumiverse_scaleway/get_iam_group.py +236 -0
  72. pulumiverse_scaleway/get_iam_ssh_key.py +212 -0
  73. pulumiverse_scaleway/get_iam_user.py +177 -0
  74. pulumiverse_scaleway/get_instance_image.py +305 -0
  75. pulumiverse_scaleway/get_instance_ip.py +204 -0
  76. pulumiverse_scaleway/get_instance_placement_group.py +212 -0
  77. pulumiverse_scaleway/get_instance_private_nic.py +226 -0
  78. pulumiverse_scaleway/get_instance_security_group.py +268 -0
  79. pulumiverse_scaleway/get_instance_server.py +502 -0
  80. pulumiverse_scaleway/get_instance_servers.py +187 -0
  81. pulumiverse_scaleway/get_instance_snapshot.py +248 -0
  82. pulumiverse_scaleway/get_instance_volume.py +215 -0
  83. pulumiverse_scaleway/get_iot_device.py +257 -0
  84. pulumiverse_scaleway/get_iot_hub.py +322 -0
  85. pulumiverse_scaleway/get_ipam_ip.py +419 -0
  86. pulumiverse_scaleway/get_ipam_ips.py +358 -0
  87. pulumiverse_scaleway/get_k8s_version.py +196 -0
  88. pulumiverse_scaleway/get_kubernetes_cluster.py +417 -0
  89. pulumiverse_scaleway/get_kubernetes_node_pool.py +436 -0
  90. pulumiverse_scaleway/get_lb_acls.py +198 -0
  91. pulumiverse_scaleway/get_lb_backend.py +486 -0
  92. pulumiverse_scaleway/get_lb_backends.py +196 -0
  93. pulumiverse_scaleway/get_lb_frontend.py +274 -0
  94. pulumiverse_scaleway/get_lb_frontends.py +196 -0
  95. pulumiverse_scaleway/get_lb_ips.py +198 -0
  96. pulumiverse_scaleway/get_lb_route.py +217 -0
  97. pulumiverse_scaleway/get_lb_routes.py +179 -0
  98. pulumiverse_scaleway/get_lbs.py +187 -0
  99. pulumiverse_scaleway/get_loadbalancer.py +339 -0
  100. pulumiverse_scaleway/get_loadbalancer_certificate.py +230 -0
  101. pulumiverse_scaleway/get_loadbalancer_ip.py +228 -0
  102. pulumiverse_scaleway/get_marketplace_image.py +147 -0
  103. pulumiverse_scaleway/get_mnq_sns.py +150 -0
  104. pulumiverse_scaleway/get_mnq_sqs.py +150 -0
  105. pulumiverse_scaleway/get_mongo_db_instance.py +324 -0
  106. pulumiverse_scaleway/get_object_bucket.py +290 -0
  107. pulumiverse_scaleway/get_object_bucket_policy.py +163 -0
  108. pulumiverse_scaleway/get_redis_cluster.py +347 -0
  109. pulumiverse_scaleway/get_registry_image.py +239 -0
  110. pulumiverse_scaleway/get_registry_image_tag.py +229 -0
  111. pulumiverse_scaleway/get_registry_namespace.py +199 -0
  112. pulumiverse_scaleway/get_secret.py +338 -0
  113. pulumiverse_scaleway/get_secret_version.py +340 -0
  114. pulumiverse_scaleway/get_tem_domain.py +378 -0
  115. pulumiverse_scaleway/get_vpc.py +246 -0
  116. pulumiverse_scaleway/get_vpc_gateway_network.py +287 -0
  117. pulumiverse_scaleway/get_vpc_private_network.py +282 -0
  118. pulumiverse_scaleway/get_vpc_public_gateway.py +304 -0
  119. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +305 -0
  120. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +382 -0
  121. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +199 -0
  122. pulumiverse_scaleway/get_vpc_public_pat_rule.py +313 -0
  123. pulumiverse_scaleway/get_vpc_routes.py +208 -0
  124. pulumiverse_scaleway/get_vpcs.py +174 -0
  125. pulumiverse_scaleway/get_web_host_offer.py +192 -0
  126. pulumiverse_scaleway/get_webhosting.py +332 -0
  127. pulumiverse_scaleway/iam_api_key.py +620 -0
  128. pulumiverse_scaleway/iam_application.py +417 -0
  129. pulumiverse_scaleway/iam_group.py +566 -0
  130. pulumiverse_scaleway/iam_group_membership.py +323 -0
  131. pulumiverse_scaleway/iam_policy.py +773 -0
  132. pulumiverse_scaleway/iam_ssh_key.py +455 -0
  133. pulumiverse_scaleway/iam_user.py +513 -0
  134. pulumiverse_scaleway/inference_deployment.py +822 -0
  135. pulumiverse_scaleway/instance_image.py +750 -0
  136. pulumiverse_scaleway/instance_ip.py +483 -0
  137. pulumiverse_scaleway/instance_ip_reverse_dns.py +308 -0
  138. pulumiverse_scaleway/instance_placement_group.py +479 -0
  139. pulumiverse_scaleway/instance_private_nic.py +555 -0
  140. pulumiverse_scaleway/instance_security_group.py +720 -0
  141. pulumiverse_scaleway/instance_security_group_rules.py +439 -0
  142. pulumiverse_scaleway/instance_server.py +2006 -0
  143. pulumiverse_scaleway/instance_snapshot.py +669 -0
  144. pulumiverse_scaleway/instance_user_data.py +435 -0
  145. pulumiverse_scaleway/instance_volume.py +535 -0
  146. pulumiverse_scaleway/iot_device.py +750 -0
  147. pulumiverse_scaleway/iot_hub.py +896 -0
  148. pulumiverse_scaleway/iot_network.py +472 -0
  149. pulumiverse_scaleway/iot_route.py +660 -0
  150. pulumiverse_scaleway/ipam_ip.py +757 -0
  151. pulumiverse_scaleway/ipam_ip_reverse_dns.py +318 -0
  152. pulumiverse_scaleway/job_definition.py +692 -0
  153. pulumiverse_scaleway/kubernetes_cluster.py +1538 -0
  154. pulumiverse_scaleway/kubernetes_node_pool.py +1255 -0
  155. pulumiverse_scaleway/loadbalancer.py +1061 -0
  156. pulumiverse_scaleway/loadbalancer_acl.py +520 -0
  157. pulumiverse_scaleway/loadbalancer_backend.py +1588 -0
  158. pulumiverse_scaleway/loadbalancer_certificate.py +460 -0
  159. pulumiverse_scaleway/loadbalancer_frontend.py +829 -0
  160. pulumiverse_scaleway/loadbalancer_ip.py +514 -0
  161. pulumiverse_scaleway/loadbalancer_route.py +523 -0
  162. pulumiverse_scaleway/mnq_nats_account.py +334 -0
  163. pulumiverse_scaleway/mnq_nats_credentials.py +330 -0
  164. pulumiverse_scaleway/mnq_sns.py +306 -0
  165. pulumiverse_scaleway/mnq_sns_credentials.py +413 -0
  166. pulumiverse_scaleway/mnq_sns_topic.py +659 -0
  167. pulumiverse_scaleway/mnq_sns_topic_subscription.py +699 -0
  168. pulumiverse_scaleway/mnq_sqs.py +304 -0
  169. pulumiverse_scaleway/mnq_sqs_credentials.py +413 -0
  170. pulumiverse_scaleway/mnq_sqs_queue.py +800 -0
  171. pulumiverse_scaleway/mongo_db_instance.py +907 -0
  172. pulumiverse_scaleway/mongo_db_snapshot.py +521 -0
  173. pulumiverse_scaleway/object_bucket.py +874 -0
  174. pulumiverse_scaleway/object_bucket_acl.py +596 -0
  175. pulumiverse_scaleway/object_bucket_lock_configuration.py +395 -0
  176. pulumiverse_scaleway/object_bucket_policy.py +673 -0
  177. pulumiverse_scaleway/object_bucket_website_configuration.py +534 -0
  178. pulumiverse_scaleway/object_item.py +776 -0
  179. pulumiverse_scaleway/outputs.py +11808 -0
  180. pulumiverse_scaleway/provider.py +327 -0
  181. pulumiverse_scaleway/pulumi-plugin.json +6 -0
  182. pulumiverse_scaleway/py.typed +0 -0
  183. pulumiverse_scaleway/redis_cluster.py +1201 -0
  184. pulumiverse_scaleway/registry_namespace.py +458 -0
  185. pulumiverse_scaleway/sdb_database.py +432 -0
  186. pulumiverse_scaleway/secret.py +663 -0
  187. pulumiverse_scaleway/secret_version.py +487 -0
  188. pulumiverse_scaleway/tem_domain.py +1030 -0
  189. pulumiverse_scaleway/tem_domain_validation.py +303 -0
  190. pulumiverse_scaleway/tem_webhook.py +640 -0
  191. pulumiverse_scaleway/vpc.py +536 -0
  192. pulumiverse_scaleway/vpc_gateway_network.py +866 -0
  193. pulumiverse_scaleway/vpc_private_network.py +734 -0
  194. pulumiverse_scaleway/vpc_public_gateway.py +789 -0
  195. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +933 -0
  196. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +514 -0
  197. pulumiverse_scaleway/vpc_public_gateway_ip.py +457 -0
  198. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +306 -0
  199. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +591 -0
  200. pulumiverse_scaleway/vpc_route.py +577 -0
  201. pulumiverse_scaleway/webhosting.py +805 -0
  202. pulumiverse_scaleway-1.23.0a1736837529.dist-info/METADATA +77 -0
  203. pulumiverse_scaleway-1.23.0a1736837529.dist-info/RECORD +205 -0
  204. pulumiverse_scaleway-1.23.0a1736837529.dist-info/WHEEL +5 -0
  205. pulumiverse_scaleway-1.23.0a1736837529.dist-info/top_level.txt +1 -0
@@ -0,0 +1,933 @@
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
+
17
+ __all__ = ['VpcPublicGatewayDhcpArgs', 'VpcPublicGatewayDhcp']
18
+
19
+ @pulumi.input_type
20
+ class VpcPublicGatewayDhcpArgs:
21
+ def __init__(__self__, *,
22
+ subnet: pulumi.Input[str],
23
+ address: Optional[pulumi.Input[str]] = None,
24
+ dns_local_name: Optional[pulumi.Input[str]] = None,
25
+ dns_searches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
26
+ dns_servers_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
27
+ enable_dynamic: Optional[pulumi.Input[bool]] = None,
28
+ pool_high: Optional[pulumi.Input[str]] = None,
29
+ pool_low: Optional[pulumi.Input[str]] = None,
30
+ project_id: Optional[pulumi.Input[str]] = None,
31
+ push_default_route: Optional[pulumi.Input[bool]] = None,
32
+ push_dns_server: Optional[pulumi.Input[bool]] = None,
33
+ rebind_timer: Optional[pulumi.Input[int]] = None,
34
+ renew_timer: Optional[pulumi.Input[int]] = None,
35
+ valid_lifetime: Optional[pulumi.Input[int]] = None,
36
+ zone: Optional[pulumi.Input[str]] = None):
37
+ """
38
+ The set of arguments for constructing a VpcPublicGatewayDhcp resource.
39
+ :param pulumi.Input[str] subnet: The subnet to associate with the Public Gateway DHCP configuration.
40
+ :param pulumi.Input[str] address: The IP address of the DHCP server. This will be the gateway's address in the Private Network.
41
+ :param pulumi.Input[str] dns_local_name: TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to `priv`.
42
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_searches: Additional DNS search paths
43
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_servers_overrides: Override the DNS server list pushed to DHCP clients, instead of the gateway itself.
44
+ :param pulumi.Input[bool] enable_dynamic: Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to `true`.
45
+ :param pulumi.Input[str] pool_high: High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.
46
+ :param pulumi.Input[str] pool_low: Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.
47
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the Public Gateway DHCP configuration is associated with.
48
+ :param pulumi.Input[bool] push_default_route: Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to `true`.
49
+ :param pulumi.Input[bool] push_dns_server: Whether the gateway should push custom DNS servers to clients. This allows for instance hostname > IP resolution. Defaults to `true`.
50
+ :param pulumi.Input[int] rebind_timer: After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. Defaults to 51m (3060s).
51
+ :param pulumi.Input[int] renew_timer: After how long, in seconds, a renewal will be attempted. Must be 30s lower than `rebind_timer`. Defaults to 50m (3000s).
52
+ :param pulumi.Input[int] valid_lifetime: How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).
53
+ :param pulumi.Input[str] zone: `zone`) The zone in which the Public Gateway DHCP configuration should be created.
54
+ """
55
+ pulumi.set(__self__, "subnet", subnet)
56
+ if address is not None:
57
+ pulumi.set(__self__, "address", address)
58
+ if dns_local_name is not None:
59
+ pulumi.set(__self__, "dns_local_name", dns_local_name)
60
+ if dns_searches is not None:
61
+ pulumi.set(__self__, "dns_searches", dns_searches)
62
+ if dns_servers_overrides is not None:
63
+ pulumi.set(__self__, "dns_servers_overrides", dns_servers_overrides)
64
+ if enable_dynamic is not None:
65
+ pulumi.set(__self__, "enable_dynamic", enable_dynamic)
66
+ if pool_high is not None:
67
+ pulumi.set(__self__, "pool_high", pool_high)
68
+ if pool_low is not None:
69
+ pulumi.set(__self__, "pool_low", pool_low)
70
+ if project_id is not None:
71
+ pulumi.set(__self__, "project_id", project_id)
72
+ if push_default_route is not None:
73
+ pulumi.set(__self__, "push_default_route", push_default_route)
74
+ if push_dns_server is not None:
75
+ pulumi.set(__self__, "push_dns_server", push_dns_server)
76
+ if rebind_timer is not None:
77
+ pulumi.set(__self__, "rebind_timer", rebind_timer)
78
+ if renew_timer is not None:
79
+ pulumi.set(__self__, "renew_timer", renew_timer)
80
+ if valid_lifetime is not None:
81
+ pulumi.set(__self__, "valid_lifetime", valid_lifetime)
82
+ if zone is not None:
83
+ pulumi.set(__self__, "zone", zone)
84
+
85
+ @property
86
+ @pulumi.getter
87
+ def subnet(self) -> pulumi.Input[str]:
88
+ """
89
+ The subnet to associate with the Public Gateway DHCP configuration.
90
+ """
91
+ return pulumi.get(self, "subnet")
92
+
93
+ @subnet.setter
94
+ def subnet(self, value: pulumi.Input[str]):
95
+ pulumi.set(self, "subnet", value)
96
+
97
+ @property
98
+ @pulumi.getter
99
+ def address(self) -> Optional[pulumi.Input[str]]:
100
+ """
101
+ The IP address of the DHCP server. This will be the gateway's address in the Private Network.
102
+ """
103
+ return pulumi.get(self, "address")
104
+
105
+ @address.setter
106
+ def address(self, value: Optional[pulumi.Input[str]]):
107
+ pulumi.set(self, "address", value)
108
+
109
+ @property
110
+ @pulumi.getter(name="dnsLocalName")
111
+ def dns_local_name(self) -> Optional[pulumi.Input[str]]:
112
+ """
113
+ TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to `priv`.
114
+ """
115
+ return pulumi.get(self, "dns_local_name")
116
+
117
+ @dns_local_name.setter
118
+ def dns_local_name(self, value: Optional[pulumi.Input[str]]):
119
+ pulumi.set(self, "dns_local_name", value)
120
+
121
+ @property
122
+ @pulumi.getter(name="dnsSearches")
123
+ def dns_searches(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
124
+ """
125
+ Additional DNS search paths
126
+ """
127
+ return pulumi.get(self, "dns_searches")
128
+
129
+ @dns_searches.setter
130
+ def dns_searches(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
131
+ pulumi.set(self, "dns_searches", value)
132
+
133
+ @property
134
+ @pulumi.getter(name="dnsServersOverrides")
135
+ def dns_servers_overrides(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
136
+ """
137
+ Override the DNS server list pushed to DHCP clients, instead of the gateway itself.
138
+ """
139
+ return pulumi.get(self, "dns_servers_overrides")
140
+
141
+ @dns_servers_overrides.setter
142
+ def dns_servers_overrides(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
143
+ pulumi.set(self, "dns_servers_overrides", value)
144
+
145
+ @property
146
+ @pulumi.getter(name="enableDynamic")
147
+ def enable_dynamic(self) -> Optional[pulumi.Input[bool]]:
148
+ """
149
+ Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to `true`.
150
+ """
151
+ return pulumi.get(self, "enable_dynamic")
152
+
153
+ @enable_dynamic.setter
154
+ def enable_dynamic(self, value: Optional[pulumi.Input[bool]]):
155
+ pulumi.set(self, "enable_dynamic", value)
156
+
157
+ @property
158
+ @pulumi.getter(name="poolHigh")
159
+ def pool_high(self) -> Optional[pulumi.Input[str]]:
160
+ """
161
+ High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.
162
+ """
163
+ return pulumi.get(self, "pool_high")
164
+
165
+ @pool_high.setter
166
+ def pool_high(self, value: Optional[pulumi.Input[str]]):
167
+ pulumi.set(self, "pool_high", value)
168
+
169
+ @property
170
+ @pulumi.getter(name="poolLow")
171
+ def pool_low(self) -> Optional[pulumi.Input[str]]:
172
+ """
173
+ Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.
174
+ """
175
+ return pulumi.get(self, "pool_low")
176
+
177
+ @pool_low.setter
178
+ def pool_low(self, value: Optional[pulumi.Input[str]]):
179
+ pulumi.set(self, "pool_low", value)
180
+
181
+ @property
182
+ @pulumi.getter(name="projectId")
183
+ def project_id(self) -> Optional[pulumi.Input[str]]:
184
+ """
185
+ `project_id`) The ID of the Project the Public Gateway DHCP configuration is associated with.
186
+ """
187
+ return pulumi.get(self, "project_id")
188
+
189
+ @project_id.setter
190
+ def project_id(self, value: Optional[pulumi.Input[str]]):
191
+ pulumi.set(self, "project_id", value)
192
+
193
+ @property
194
+ @pulumi.getter(name="pushDefaultRoute")
195
+ def push_default_route(self) -> Optional[pulumi.Input[bool]]:
196
+ """
197
+ Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to `true`.
198
+ """
199
+ return pulumi.get(self, "push_default_route")
200
+
201
+ @push_default_route.setter
202
+ def push_default_route(self, value: Optional[pulumi.Input[bool]]):
203
+ pulumi.set(self, "push_default_route", value)
204
+
205
+ @property
206
+ @pulumi.getter(name="pushDnsServer")
207
+ def push_dns_server(self) -> Optional[pulumi.Input[bool]]:
208
+ """
209
+ Whether the gateway should push custom DNS servers to clients. This allows for instance hostname > IP resolution. Defaults to `true`.
210
+ """
211
+ return pulumi.get(self, "push_dns_server")
212
+
213
+ @push_dns_server.setter
214
+ def push_dns_server(self, value: Optional[pulumi.Input[bool]]):
215
+ pulumi.set(self, "push_dns_server", value)
216
+
217
+ @property
218
+ @pulumi.getter(name="rebindTimer")
219
+ def rebind_timer(self) -> Optional[pulumi.Input[int]]:
220
+ """
221
+ After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. Defaults to 51m (3060s).
222
+ """
223
+ return pulumi.get(self, "rebind_timer")
224
+
225
+ @rebind_timer.setter
226
+ def rebind_timer(self, value: Optional[pulumi.Input[int]]):
227
+ pulumi.set(self, "rebind_timer", value)
228
+
229
+ @property
230
+ @pulumi.getter(name="renewTimer")
231
+ def renew_timer(self) -> Optional[pulumi.Input[int]]:
232
+ """
233
+ After how long, in seconds, a renewal will be attempted. Must be 30s lower than `rebind_timer`. Defaults to 50m (3000s).
234
+ """
235
+ return pulumi.get(self, "renew_timer")
236
+
237
+ @renew_timer.setter
238
+ def renew_timer(self, value: Optional[pulumi.Input[int]]):
239
+ pulumi.set(self, "renew_timer", value)
240
+
241
+ @property
242
+ @pulumi.getter(name="validLifetime")
243
+ def valid_lifetime(self) -> Optional[pulumi.Input[int]]:
244
+ """
245
+ How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).
246
+ """
247
+ return pulumi.get(self, "valid_lifetime")
248
+
249
+ @valid_lifetime.setter
250
+ def valid_lifetime(self, value: Optional[pulumi.Input[int]]):
251
+ pulumi.set(self, "valid_lifetime", value)
252
+
253
+ @property
254
+ @pulumi.getter
255
+ def zone(self) -> Optional[pulumi.Input[str]]:
256
+ """
257
+ `zone`) The zone in which the Public Gateway DHCP configuration should be created.
258
+ """
259
+ return pulumi.get(self, "zone")
260
+
261
+ @zone.setter
262
+ def zone(self, value: Optional[pulumi.Input[str]]):
263
+ pulumi.set(self, "zone", value)
264
+
265
+
266
+ @pulumi.input_type
267
+ class _VpcPublicGatewayDhcpState:
268
+ def __init__(__self__, *,
269
+ address: Optional[pulumi.Input[str]] = None,
270
+ created_at: Optional[pulumi.Input[str]] = None,
271
+ dns_local_name: Optional[pulumi.Input[str]] = None,
272
+ dns_searches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
273
+ dns_servers_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
274
+ enable_dynamic: Optional[pulumi.Input[bool]] = None,
275
+ organization_id: Optional[pulumi.Input[str]] = None,
276
+ pool_high: Optional[pulumi.Input[str]] = None,
277
+ pool_low: Optional[pulumi.Input[str]] = None,
278
+ project_id: Optional[pulumi.Input[str]] = None,
279
+ push_default_route: Optional[pulumi.Input[bool]] = None,
280
+ push_dns_server: Optional[pulumi.Input[bool]] = None,
281
+ rebind_timer: Optional[pulumi.Input[int]] = None,
282
+ renew_timer: Optional[pulumi.Input[int]] = None,
283
+ subnet: Optional[pulumi.Input[str]] = None,
284
+ updated_at: Optional[pulumi.Input[str]] = None,
285
+ valid_lifetime: Optional[pulumi.Input[int]] = None,
286
+ zone: Optional[pulumi.Input[str]] = None):
287
+ """
288
+ Input properties used for looking up and filtering VpcPublicGatewayDhcp resources.
289
+ :param pulumi.Input[str] address: The IP address of the DHCP server. This will be the gateway's address in the Private Network.
290
+ :param pulumi.Input[str] created_at: The date and time of the creation of the Public Gateway DHCP configuration.
291
+ :param pulumi.Input[str] dns_local_name: TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to `priv`.
292
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_searches: Additional DNS search paths
293
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_servers_overrides: Override the DNS server list pushed to DHCP clients, instead of the gateway itself.
294
+ :param pulumi.Input[bool] enable_dynamic: Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to `true`.
295
+ :param pulumi.Input[str] organization_id: The Organization ID the Public Gateway DHCP config is associated with.
296
+ :param pulumi.Input[str] pool_high: High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.
297
+ :param pulumi.Input[str] pool_low: Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.
298
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the Public Gateway DHCP configuration is associated with.
299
+ :param pulumi.Input[bool] push_default_route: Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to `true`.
300
+ :param pulumi.Input[bool] push_dns_server: Whether the gateway should push custom DNS servers to clients. This allows for instance hostname > IP resolution. Defaults to `true`.
301
+ :param pulumi.Input[int] rebind_timer: After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. Defaults to 51m (3060s).
302
+ :param pulumi.Input[int] renew_timer: After how long, in seconds, a renewal will be attempted. Must be 30s lower than `rebind_timer`. Defaults to 50m (3000s).
303
+ :param pulumi.Input[str] subnet: The subnet to associate with the Public Gateway DHCP configuration.
304
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the Public Gateway DHCP configuration.
305
+ :param pulumi.Input[int] valid_lifetime: How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).
306
+ :param pulumi.Input[str] zone: `zone`) The zone in which the Public Gateway DHCP configuration should be created.
307
+ """
308
+ if address is not None:
309
+ pulumi.set(__self__, "address", address)
310
+ if created_at is not None:
311
+ pulumi.set(__self__, "created_at", created_at)
312
+ if dns_local_name is not None:
313
+ pulumi.set(__self__, "dns_local_name", dns_local_name)
314
+ if dns_searches is not None:
315
+ pulumi.set(__self__, "dns_searches", dns_searches)
316
+ if dns_servers_overrides is not None:
317
+ pulumi.set(__self__, "dns_servers_overrides", dns_servers_overrides)
318
+ if enable_dynamic is not None:
319
+ pulumi.set(__self__, "enable_dynamic", enable_dynamic)
320
+ if organization_id is not None:
321
+ pulumi.set(__self__, "organization_id", organization_id)
322
+ if pool_high is not None:
323
+ pulumi.set(__self__, "pool_high", pool_high)
324
+ if pool_low is not None:
325
+ pulumi.set(__self__, "pool_low", pool_low)
326
+ if project_id is not None:
327
+ pulumi.set(__self__, "project_id", project_id)
328
+ if push_default_route is not None:
329
+ pulumi.set(__self__, "push_default_route", push_default_route)
330
+ if push_dns_server is not None:
331
+ pulumi.set(__self__, "push_dns_server", push_dns_server)
332
+ if rebind_timer is not None:
333
+ pulumi.set(__self__, "rebind_timer", rebind_timer)
334
+ if renew_timer is not None:
335
+ pulumi.set(__self__, "renew_timer", renew_timer)
336
+ if subnet is not None:
337
+ pulumi.set(__self__, "subnet", subnet)
338
+ if updated_at is not None:
339
+ pulumi.set(__self__, "updated_at", updated_at)
340
+ if valid_lifetime is not None:
341
+ pulumi.set(__self__, "valid_lifetime", valid_lifetime)
342
+ if zone is not None:
343
+ pulumi.set(__self__, "zone", zone)
344
+
345
+ @property
346
+ @pulumi.getter
347
+ def address(self) -> Optional[pulumi.Input[str]]:
348
+ """
349
+ The IP address of the DHCP server. This will be the gateway's address in the Private Network.
350
+ """
351
+ return pulumi.get(self, "address")
352
+
353
+ @address.setter
354
+ def address(self, value: Optional[pulumi.Input[str]]):
355
+ pulumi.set(self, "address", value)
356
+
357
+ @property
358
+ @pulumi.getter(name="createdAt")
359
+ def created_at(self) -> Optional[pulumi.Input[str]]:
360
+ """
361
+ The date and time of the creation of the Public Gateway DHCP configuration.
362
+ """
363
+ return pulumi.get(self, "created_at")
364
+
365
+ @created_at.setter
366
+ def created_at(self, value: Optional[pulumi.Input[str]]):
367
+ pulumi.set(self, "created_at", value)
368
+
369
+ @property
370
+ @pulumi.getter(name="dnsLocalName")
371
+ def dns_local_name(self) -> Optional[pulumi.Input[str]]:
372
+ """
373
+ TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to `priv`.
374
+ """
375
+ return pulumi.get(self, "dns_local_name")
376
+
377
+ @dns_local_name.setter
378
+ def dns_local_name(self, value: Optional[pulumi.Input[str]]):
379
+ pulumi.set(self, "dns_local_name", value)
380
+
381
+ @property
382
+ @pulumi.getter(name="dnsSearches")
383
+ def dns_searches(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
384
+ """
385
+ Additional DNS search paths
386
+ """
387
+ return pulumi.get(self, "dns_searches")
388
+
389
+ @dns_searches.setter
390
+ def dns_searches(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
391
+ pulumi.set(self, "dns_searches", value)
392
+
393
+ @property
394
+ @pulumi.getter(name="dnsServersOverrides")
395
+ def dns_servers_overrides(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
396
+ """
397
+ Override the DNS server list pushed to DHCP clients, instead of the gateway itself.
398
+ """
399
+ return pulumi.get(self, "dns_servers_overrides")
400
+
401
+ @dns_servers_overrides.setter
402
+ def dns_servers_overrides(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
403
+ pulumi.set(self, "dns_servers_overrides", value)
404
+
405
+ @property
406
+ @pulumi.getter(name="enableDynamic")
407
+ def enable_dynamic(self) -> Optional[pulumi.Input[bool]]:
408
+ """
409
+ Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to `true`.
410
+ """
411
+ return pulumi.get(self, "enable_dynamic")
412
+
413
+ @enable_dynamic.setter
414
+ def enable_dynamic(self, value: Optional[pulumi.Input[bool]]):
415
+ pulumi.set(self, "enable_dynamic", value)
416
+
417
+ @property
418
+ @pulumi.getter(name="organizationId")
419
+ def organization_id(self) -> Optional[pulumi.Input[str]]:
420
+ """
421
+ The Organization ID the Public Gateway DHCP config is associated with.
422
+ """
423
+ return pulumi.get(self, "organization_id")
424
+
425
+ @organization_id.setter
426
+ def organization_id(self, value: Optional[pulumi.Input[str]]):
427
+ pulumi.set(self, "organization_id", value)
428
+
429
+ @property
430
+ @pulumi.getter(name="poolHigh")
431
+ def pool_high(self) -> Optional[pulumi.Input[str]]:
432
+ """
433
+ High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.
434
+ """
435
+ return pulumi.get(self, "pool_high")
436
+
437
+ @pool_high.setter
438
+ def pool_high(self, value: Optional[pulumi.Input[str]]):
439
+ pulumi.set(self, "pool_high", value)
440
+
441
+ @property
442
+ @pulumi.getter(name="poolLow")
443
+ def pool_low(self) -> Optional[pulumi.Input[str]]:
444
+ """
445
+ Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.
446
+ """
447
+ return pulumi.get(self, "pool_low")
448
+
449
+ @pool_low.setter
450
+ def pool_low(self, value: Optional[pulumi.Input[str]]):
451
+ pulumi.set(self, "pool_low", value)
452
+
453
+ @property
454
+ @pulumi.getter(name="projectId")
455
+ def project_id(self) -> Optional[pulumi.Input[str]]:
456
+ """
457
+ `project_id`) The ID of the Project the Public Gateway DHCP configuration is associated with.
458
+ """
459
+ return pulumi.get(self, "project_id")
460
+
461
+ @project_id.setter
462
+ def project_id(self, value: Optional[pulumi.Input[str]]):
463
+ pulumi.set(self, "project_id", value)
464
+
465
+ @property
466
+ @pulumi.getter(name="pushDefaultRoute")
467
+ def push_default_route(self) -> Optional[pulumi.Input[bool]]:
468
+ """
469
+ Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to `true`.
470
+ """
471
+ return pulumi.get(self, "push_default_route")
472
+
473
+ @push_default_route.setter
474
+ def push_default_route(self, value: Optional[pulumi.Input[bool]]):
475
+ pulumi.set(self, "push_default_route", value)
476
+
477
+ @property
478
+ @pulumi.getter(name="pushDnsServer")
479
+ def push_dns_server(self) -> Optional[pulumi.Input[bool]]:
480
+ """
481
+ Whether the gateway should push custom DNS servers to clients. This allows for instance hostname > IP resolution. Defaults to `true`.
482
+ """
483
+ return pulumi.get(self, "push_dns_server")
484
+
485
+ @push_dns_server.setter
486
+ def push_dns_server(self, value: Optional[pulumi.Input[bool]]):
487
+ pulumi.set(self, "push_dns_server", value)
488
+
489
+ @property
490
+ @pulumi.getter(name="rebindTimer")
491
+ def rebind_timer(self) -> Optional[pulumi.Input[int]]:
492
+ """
493
+ After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. Defaults to 51m (3060s).
494
+ """
495
+ return pulumi.get(self, "rebind_timer")
496
+
497
+ @rebind_timer.setter
498
+ def rebind_timer(self, value: Optional[pulumi.Input[int]]):
499
+ pulumi.set(self, "rebind_timer", value)
500
+
501
+ @property
502
+ @pulumi.getter(name="renewTimer")
503
+ def renew_timer(self) -> Optional[pulumi.Input[int]]:
504
+ """
505
+ After how long, in seconds, a renewal will be attempted. Must be 30s lower than `rebind_timer`. Defaults to 50m (3000s).
506
+ """
507
+ return pulumi.get(self, "renew_timer")
508
+
509
+ @renew_timer.setter
510
+ def renew_timer(self, value: Optional[pulumi.Input[int]]):
511
+ pulumi.set(self, "renew_timer", value)
512
+
513
+ @property
514
+ @pulumi.getter
515
+ def subnet(self) -> Optional[pulumi.Input[str]]:
516
+ """
517
+ The subnet to associate with the Public Gateway DHCP configuration.
518
+ """
519
+ return pulumi.get(self, "subnet")
520
+
521
+ @subnet.setter
522
+ def subnet(self, value: Optional[pulumi.Input[str]]):
523
+ pulumi.set(self, "subnet", value)
524
+
525
+ @property
526
+ @pulumi.getter(name="updatedAt")
527
+ def updated_at(self) -> Optional[pulumi.Input[str]]:
528
+ """
529
+ The date and time of the last update of the Public Gateway DHCP configuration.
530
+ """
531
+ return pulumi.get(self, "updated_at")
532
+
533
+ @updated_at.setter
534
+ def updated_at(self, value: Optional[pulumi.Input[str]]):
535
+ pulumi.set(self, "updated_at", value)
536
+
537
+ @property
538
+ @pulumi.getter(name="validLifetime")
539
+ def valid_lifetime(self) -> Optional[pulumi.Input[int]]:
540
+ """
541
+ How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).
542
+ """
543
+ return pulumi.get(self, "valid_lifetime")
544
+
545
+ @valid_lifetime.setter
546
+ def valid_lifetime(self, value: Optional[pulumi.Input[int]]):
547
+ pulumi.set(self, "valid_lifetime", value)
548
+
549
+ @property
550
+ @pulumi.getter
551
+ def zone(self) -> Optional[pulumi.Input[str]]:
552
+ """
553
+ `zone`) The zone in which the Public Gateway DHCP configuration should be created.
554
+ """
555
+ return pulumi.get(self, "zone")
556
+
557
+ @zone.setter
558
+ def zone(self, value: Optional[pulumi.Input[str]]):
559
+ pulumi.set(self, "zone", value)
560
+
561
+
562
+ class VpcPublicGatewayDhcp(pulumi.CustomResource):
563
+ @overload
564
+ def __init__(__self__,
565
+ resource_name: str,
566
+ opts: Optional[pulumi.ResourceOptions] = None,
567
+ address: Optional[pulumi.Input[str]] = None,
568
+ dns_local_name: Optional[pulumi.Input[str]] = None,
569
+ dns_searches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
570
+ dns_servers_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
571
+ enable_dynamic: Optional[pulumi.Input[bool]] = None,
572
+ pool_high: Optional[pulumi.Input[str]] = None,
573
+ pool_low: Optional[pulumi.Input[str]] = None,
574
+ project_id: Optional[pulumi.Input[str]] = None,
575
+ push_default_route: Optional[pulumi.Input[bool]] = None,
576
+ push_dns_server: Optional[pulumi.Input[bool]] = None,
577
+ rebind_timer: Optional[pulumi.Input[int]] = None,
578
+ renew_timer: Optional[pulumi.Input[int]] = None,
579
+ subnet: Optional[pulumi.Input[str]] = None,
580
+ valid_lifetime: Optional[pulumi.Input[int]] = None,
581
+ zone: Optional[pulumi.Input[str]] = None,
582
+ __props__=None):
583
+ """
584
+ Creates and manages Scaleway VPC Public Gateway DHCP configurations.
585
+ For more information, see [the documentation](https://www.scaleway.com/en/developers/api/public-gateway/#dhcp-c05544).
586
+
587
+ ## Example Usage
588
+
589
+ ```python
590
+ import pulumi
591
+ import pulumiverse_scaleway as scaleway
592
+
593
+ main = scaleway.VpcPublicGatewayDhcp("main", subnet="192.168.1.0/24")
594
+ ```
595
+
596
+ ## Import
597
+
598
+ Public Gateway DHCP configuration can be imported using `{zone}/{id}`, e.g.
599
+
600
+ bash
601
+
602
+ ```sh
603
+ $ pulumi import scaleway:index/vpcPublicGatewayDhcp:VpcPublicGatewayDhcp main fr-par-1/11111111-1111-1111-1111-111111111111
604
+ ```
605
+
606
+ :param str resource_name: The name of the resource.
607
+ :param pulumi.ResourceOptions opts: Options for the resource.
608
+ :param pulumi.Input[str] address: The IP address of the DHCP server. This will be the gateway's address in the Private Network.
609
+ :param pulumi.Input[str] dns_local_name: TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to `priv`.
610
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_searches: Additional DNS search paths
611
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_servers_overrides: Override the DNS server list pushed to DHCP clients, instead of the gateway itself.
612
+ :param pulumi.Input[bool] enable_dynamic: Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to `true`.
613
+ :param pulumi.Input[str] pool_high: High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.
614
+ :param pulumi.Input[str] pool_low: Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.
615
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the Public Gateway DHCP configuration is associated with.
616
+ :param pulumi.Input[bool] push_default_route: Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to `true`.
617
+ :param pulumi.Input[bool] push_dns_server: Whether the gateway should push custom DNS servers to clients. This allows for instance hostname > IP resolution. Defaults to `true`.
618
+ :param pulumi.Input[int] rebind_timer: After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. Defaults to 51m (3060s).
619
+ :param pulumi.Input[int] renew_timer: After how long, in seconds, a renewal will be attempted. Must be 30s lower than `rebind_timer`. Defaults to 50m (3000s).
620
+ :param pulumi.Input[str] subnet: The subnet to associate with the Public Gateway DHCP configuration.
621
+ :param pulumi.Input[int] valid_lifetime: How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).
622
+ :param pulumi.Input[str] zone: `zone`) The zone in which the Public Gateway DHCP configuration should be created.
623
+ """
624
+ ...
625
+ @overload
626
+ def __init__(__self__,
627
+ resource_name: str,
628
+ args: VpcPublicGatewayDhcpArgs,
629
+ opts: Optional[pulumi.ResourceOptions] = None):
630
+ """
631
+ Creates and manages Scaleway VPC Public Gateway DHCP configurations.
632
+ For more information, see [the documentation](https://www.scaleway.com/en/developers/api/public-gateway/#dhcp-c05544).
633
+
634
+ ## Example Usage
635
+
636
+ ```python
637
+ import pulumi
638
+ import pulumiverse_scaleway as scaleway
639
+
640
+ main = scaleway.VpcPublicGatewayDhcp("main", subnet="192.168.1.0/24")
641
+ ```
642
+
643
+ ## Import
644
+
645
+ Public Gateway DHCP configuration can be imported using `{zone}/{id}`, e.g.
646
+
647
+ bash
648
+
649
+ ```sh
650
+ $ pulumi import scaleway:index/vpcPublicGatewayDhcp:VpcPublicGatewayDhcp main fr-par-1/11111111-1111-1111-1111-111111111111
651
+ ```
652
+
653
+ :param str resource_name: The name of the resource.
654
+ :param VpcPublicGatewayDhcpArgs args: The arguments to use to populate this resource's properties.
655
+ :param pulumi.ResourceOptions opts: Options for the resource.
656
+ """
657
+ ...
658
+ def __init__(__self__, resource_name: str, *args, **kwargs):
659
+ resource_args, opts = _utilities.get_resource_args_opts(VpcPublicGatewayDhcpArgs, pulumi.ResourceOptions, *args, **kwargs)
660
+ if resource_args is not None:
661
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
662
+ else:
663
+ __self__._internal_init(resource_name, *args, **kwargs)
664
+
665
+ def _internal_init(__self__,
666
+ resource_name: str,
667
+ opts: Optional[pulumi.ResourceOptions] = None,
668
+ address: Optional[pulumi.Input[str]] = None,
669
+ dns_local_name: Optional[pulumi.Input[str]] = None,
670
+ dns_searches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
671
+ dns_servers_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
672
+ enable_dynamic: Optional[pulumi.Input[bool]] = None,
673
+ pool_high: Optional[pulumi.Input[str]] = None,
674
+ pool_low: Optional[pulumi.Input[str]] = None,
675
+ project_id: Optional[pulumi.Input[str]] = None,
676
+ push_default_route: Optional[pulumi.Input[bool]] = None,
677
+ push_dns_server: Optional[pulumi.Input[bool]] = None,
678
+ rebind_timer: Optional[pulumi.Input[int]] = None,
679
+ renew_timer: Optional[pulumi.Input[int]] = None,
680
+ subnet: Optional[pulumi.Input[str]] = None,
681
+ valid_lifetime: Optional[pulumi.Input[int]] = None,
682
+ zone: Optional[pulumi.Input[str]] = None,
683
+ __props__=None):
684
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
685
+ if not isinstance(opts, pulumi.ResourceOptions):
686
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
687
+ if opts.id is None:
688
+ if __props__ is not None:
689
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
690
+ __props__ = VpcPublicGatewayDhcpArgs.__new__(VpcPublicGatewayDhcpArgs)
691
+
692
+ __props__.__dict__["address"] = address
693
+ __props__.__dict__["dns_local_name"] = dns_local_name
694
+ __props__.__dict__["dns_searches"] = dns_searches
695
+ __props__.__dict__["dns_servers_overrides"] = dns_servers_overrides
696
+ __props__.__dict__["enable_dynamic"] = enable_dynamic
697
+ __props__.__dict__["pool_high"] = pool_high
698
+ __props__.__dict__["pool_low"] = pool_low
699
+ __props__.__dict__["project_id"] = project_id
700
+ __props__.__dict__["push_default_route"] = push_default_route
701
+ __props__.__dict__["push_dns_server"] = push_dns_server
702
+ __props__.__dict__["rebind_timer"] = rebind_timer
703
+ __props__.__dict__["renew_timer"] = renew_timer
704
+ if subnet is None and not opts.urn:
705
+ raise TypeError("Missing required property 'subnet'")
706
+ __props__.__dict__["subnet"] = subnet
707
+ __props__.__dict__["valid_lifetime"] = valid_lifetime
708
+ __props__.__dict__["zone"] = zone
709
+ __props__.__dict__["created_at"] = None
710
+ __props__.__dict__["organization_id"] = None
711
+ __props__.__dict__["updated_at"] = None
712
+ super(VpcPublicGatewayDhcp, __self__).__init__(
713
+ 'scaleway:index/vpcPublicGatewayDhcp:VpcPublicGatewayDhcp',
714
+ resource_name,
715
+ __props__,
716
+ opts)
717
+
718
+ @staticmethod
719
+ def get(resource_name: str,
720
+ id: pulumi.Input[str],
721
+ opts: Optional[pulumi.ResourceOptions] = None,
722
+ address: Optional[pulumi.Input[str]] = None,
723
+ created_at: Optional[pulumi.Input[str]] = None,
724
+ dns_local_name: Optional[pulumi.Input[str]] = None,
725
+ dns_searches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
726
+ dns_servers_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
727
+ enable_dynamic: Optional[pulumi.Input[bool]] = None,
728
+ organization_id: Optional[pulumi.Input[str]] = None,
729
+ pool_high: Optional[pulumi.Input[str]] = None,
730
+ pool_low: Optional[pulumi.Input[str]] = None,
731
+ project_id: Optional[pulumi.Input[str]] = None,
732
+ push_default_route: Optional[pulumi.Input[bool]] = None,
733
+ push_dns_server: Optional[pulumi.Input[bool]] = None,
734
+ rebind_timer: Optional[pulumi.Input[int]] = None,
735
+ renew_timer: Optional[pulumi.Input[int]] = None,
736
+ subnet: Optional[pulumi.Input[str]] = None,
737
+ updated_at: Optional[pulumi.Input[str]] = None,
738
+ valid_lifetime: Optional[pulumi.Input[int]] = None,
739
+ zone: Optional[pulumi.Input[str]] = None) -> 'VpcPublicGatewayDhcp':
740
+ """
741
+ Get an existing VpcPublicGatewayDhcp resource's state with the given name, id, and optional extra
742
+ properties used to qualify the lookup.
743
+
744
+ :param str resource_name: The unique name of the resulting resource.
745
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
746
+ :param pulumi.ResourceOptions opts: Options for the resource.
747
+ :param pulumi.Input[str] address: The IP address of the DHCP server. This will be the gateway's address in the Private Network.
748
+ :param pulumi.Input[str] created_at: The date and time of the creation of the Public Gateway DHCP configuration.
749
+ :param pulumi.Input[str] dns_local_name: TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to `priv`.
750
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_searches: Additional DNS search paths
751
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_servers_overrides: Override the DNS server list pushed to DHCP clients, instead of the gateway itself.
752
+ :param pulumi.Input[bool] enable_dynamic: Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to `true`.
753
+ :param pulumi.Input[str] organization_id: The Organization ID the Public Gateway DHCP config is associated with.
754
+ :param pulumi.Input[str] pool_high: High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.
755
+ :param pulumi.Input[str] pool_low: Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.
756
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the Public Gateway DHCP configuration is associated with.
757
+ :param pulumi.Input[bool] push_default_route: Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to `true`.
758
+ :param pulumi.Input[bool] push_dns_server: Whether the gateway should push custom DNS servers to clients. This allows for instance hostname > IP resolution. Defaults to `true`.
759
+ :param pulumi.Input[int] rebind_timer: After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. Defaults to 51m (3060s).
760
+ :param pulumi.Input[int] renew_timer: After how long, in seconds, a renewal will be attempted. Must be 30s lower than `rebind_timer`. Defaults to 50m (3000s).
761
+ :param pulumi.Input[str] subnet: The subnet to associate with the Public Gateway DHCP configuration.
762
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the Public Gateway DHCP configuration.
763
+ :param pulumi.Input[int] valid_lifetime: How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).
764
+ :param pulumi.Input[str] zone: `zone`) The zone in which the Public Gateway DHCP configuration should be created.
765
+ """
766
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
767
+
768
+ __props__ = _VpcPublicGatewayDhcpState.__new__(_VpcPublicGatewayDhcpState)
769
+
770
+ __props__.__dict__["address"] = address
771
+ __props__.__dict__["created_at"] = created_at
772
+ __props__.__dict__["dns_local_name"] = dns_local_name
773
+ __props__.__dict__["dns_searches"] = dns_searches
774
+ __props__.__dict__["dns_servers_overrides"] = dns_servers_overrides
775
+ __props__.__dict__["enable_dynamic"] = enable_dynamic
776
+ __props__.__dict__["organization_id"] = organization_id
777
+ __props__.__dict__["pool_high"] = pool_high
778
+ __props__.__dict__["pool_low"] = pool_low
779
+ __props__.__dict__["project_id"] = project_id
780
+ __props__.__dict__["push_default_route"] = push_default_route
781
+ __props__.__dict__["push_dns_server"] = push_dns_server
782
+ __props__.__dict__["rebind_timer"] = rebind_timer
783
+ __props__.__dict__["renew_timer"] = renew_timer
784
+ __props__.__dict__["subnet"] = subnet
785
+ __props__.__dict__["updated_at"] = updated_at
786
+ __props__.__dict__["valid_lifetime"] = valid_lifetime
787
+ __props__.__dict__["zone"] = zone
788
+ return VpcPublicGatewayDhcp(resource_name, opts=opts, __props__=__props__)
789
+
790
+ @property
791
+ @pulumi.getter
792
+ def address(self) -> pulumi.Output[str]:
793
+ """
794
+ The IP address of the DHCP server. This will be the gateway's address in the Private Network.
795
+ """
796
+ return pulumi.get(self, "address")
797
+
798
+ @property
799
+ @pulumi.getter(name="createdAt")
800
+ def created_at(self) -> pulumi.Output[str]:
801
+ """
802
+ The date and time of the creation of the Public Gateway DHCP configuration.
803
+ """
804
+ return pulumi.get(self, "created_at")
805
+
806
+ @property
807
+ @pulumi.getter(name="dnsLocalName")
808
+ def dns_local_name(self) -> pulumi.Output[str]:
809
+ """
810
+ TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to `priv`.
811
+ """
812
+ return pulumi.get(self, "dns_local_name")
813
+
814
+ @property
815
+ @pulumi.getter(name="dnsSearches")
816
+ def dns_searches(self) -> pulumi.Output[Sequence[str]]:
817
+ """
818
+ Additional DNS search paths
819
+ """
820
+ return pulumi.get(self, "dns_searches")
821
+
822
+ @property
823
+ @pulumi.getter(name="dnsServersOverrides")
824
+ def dns_servers_overrides(self) -> pulumi.Output[Sequence[str]]:
825
+ """
826
+ Override the DNS server list pushed to DHCP clients, instead of the gateway itself.
827
+ """
828
+ return pulumi.get(self, "dns_servers_overrides")
829
+
830
+ @property
831
+ @pulumi.getter(name="enableDynamic")
832
+ def enable_dynamic(self) -> pulumi.Output[bool]:
833
+ """
834
+ Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to `true`.
835
+ """
836
+ return pulumi.get(self, "enable_dynamic")
837
+
838
+ @property
839
+ @pulumi.getter(name="organizationId")
840
+ def organization_id(self) -> pulumi.Output[str]:
841
+ """
842
+ The Organization ID the Public Gateway DHCP config is associated with.
843
+ """
844
+ return pulumi.get(self, "organization_id")
845
+
846
+ @property
847
+ @pulumi.getter(name="poolHigh")
848
+ def pool_high(self) -> pulumi.Output[str]:
849
+ """
850
+ High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.
851
+ """
852
+ return pulumi.get(self, "pool_high")
853
+
854
+ @property
855
+ @pulumi.getter(name="poolLow")
856
+ def pool_low(self) -> pulumi.Output[str]:
857
+ """
858
+ Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.
859
+ """
860
+ return pulumi.get(self, "pool_low")
861
+
862
+ @property
863
+ @pulumi.getter(name="projectId")
864
+ def project_id(self) -> pulumi.Output[str]:
865
+ """
866
+ `project_id`) The ID of the Project the Public Gateway DHCP configuration is associated with.
867
+ """
868
+ return pulumi.get(self, "project_id")
869
+
870
+ @property
871
+ @pulumi.getter(name="pushDefaultRoute")
872
+ def push_default_route(self) -> pulumi.Output[bool]:
873
+ """
874
+ Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to `true`.
875
+ """
876
+ return pulumi.get(self, "push_default_route")
877
+
878
+ @property
879
+ @pulumi.getter(name="pushDnsServer")
880
+ def push_dns_server(self) -> pulumi.Output[bool]:
881
+ """
882
+ Whether the gateway should push custom DNS servers to clients. This allows for instance hostname > IP resolution. Defaults to `true`.
883
+ """
884
+ return pulumi.get(self, "push_dns_server")
885
+
886
+ @property
887
+ @pulumi.getter(name="rebindTimer")
888
+ def rebind_timer(self) -> pulumi.Output[int]:
889
+ """
890
+ After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. Defaults to 51m (3060s).
891
+ """
892
+ return pulumi.get(self, "rebind_timer")
893
+
894
+ @property
895
+ @pulumi.getter(name="renewTimer")
896
+ def renew_timer(self) -> pulumi.Output[int]:
897
+ """
898
+ After how long, in seconds, a renewal will be attempted. Must be 30s lower than `rebind_timer`. Defaults to 50m (3000s).
899
+ """
900
+ return pulumi.get(self, "renew_timer")
901
+
902
+ @property
903
+ @pulumi.getter
904
+ def subnet(self) -> pulumi.Output[str]:
905
+ """
906
+ The subnet to associate with the Public Gateway DHCP configuration.
907
+ """
908
+ return pulumi.get(self, "subnet")
909
+
910
+ @property
911
+ @pulumi.getter(name="updatedAt")
912
+ def updated_at(self) -> pulumi.Output[str]:
913
+ """
914
+ The date and time of the last update of the Public Gateway DHCP configuration.
915
+ """
916
+ return pulumi.get(self, "updated_at")
917
+
918
+ @property
919
+ @pulumi.getter(name="validLifetime")
920
+ def valid_lifetime(self) -> pulumi.Output[int]:
921
+ """
922
+ How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).
923
+ """
924
+ return pulumi.get(self, "valid_lifetime")
925
+
926
+ @property
927
+ @pulumi.getter
928
+ def zone(self) -> pulumi.Output[str]:
929
+ """
930
+ `zone`) The zone in which the Public Gateway DHCP configuration should be created.
931
+ """
932
+ return pulumi.get(self, "zone")
933
+