pulumi-digitalocean 4.40.0a1739511652__py3-none-any.whl → 4.56.0a1766428645__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. pulumi_digitalocean/__init__.py +224 -1
  2. pulumi_digitalocean/_enums.py +19 -9
  3. pulumi_digitalocean/_inputs.py +17037 -4771
  4. pulumi_digitalocean/_utilities.py +1 -1
  5. pulumi_digitalocean/app.py +238 -88
  6. pulumi_digitalocean/byoip_prefix.py +452 -0
  7. pulumi_digitalocean/cdn.py +106 -105
  8. pulumi_digitalocean/certificate.py +139 -138
  9. pulumi_digitalocean/config/__init__.py +2 -1
  10. pulumi_digitalocean/config/__init__.pyi +2 -2
  11. pulumi_digitalocean/config/vars.py +11 -11
  12. pulumi_digitalocean/container_registries.py +285 -0
  13. pulumi_digitalocean/container_registry.py +90 -89
  14. pulumi_digitalocean/container_registry_docker_credentials.py +84 -83
  15. pulumi_digitalocean/custom_image.py +180 -179
  16. pulumi_digitalocean/database_cluster.py +402 -373
  17. pulumi_digitalocean/database_connection_pool.py +159 -158
  18. pulumi_digitalocean/database_db.py +37 -36
  19. pulumi_digitalocean/database_firewall.py +23 -22
  20. pulumi_digitalocean/database_kafka_config.py +309 -308
  21. pulumi_digitalocean/database_kafka_schema_registry.py +360 -0
  22. pulumi_digitalocean/database_kafka_topic.py +83 -82
  23. pulumi_digitalocean/database_logsink_opensearch.py +680 -0
  24. pulumi_digitalocean/database_logsink_rsyslog.py +842 -0
  25. pulumi_digitalocean/database_mongodb_config.py +105 -104
  26. pulumi_digitalocean/database_mysql_config.py +479 -478
  27. pulumi_digitalocean/database_online_migration.py +460 -0
  28. pulumi_digitalocean/database_opensearch_config.py +666 -665
  29. pulumi_digitalocean/database_postgresql_config.py +859 -858
  30. pulumi_digitalocean/database_redis_config.py +211 -206
  31. pulumi_digitalocean/database_replica.py +199 -198
  32. pulumi_digitalocean/database_user.py +93 -92
  33. pulumi_digitalocean/database_valkey_config.py +776 -0
  34. pulumi_digitalocean/dns_record.py +184 -183
  35. pulumi_digitalocean/domain.py +55 -54
  36. pulumi_digitalocean/droplet.py +403 -402
  37. pulumi_digitalocean/droplet_autoscale.py +55 -54
  38. pulumi_digitalocean/droplet_snapshot.py +73 -72
  39. pulumi_digitalocean/firewall.py +80 -79
  40. pulumi_digitalocean/floating_ip.py +63 -62
  41. pulumi_digitalocean/floating_ip_assignment.py +37 -36
  42. pulumi_digitalocean/genai_agent.py +1903 -0
  43. pulumi_digitalocean/genai_agent_knowledge_base_attachment.py +198 -0
  44. pulumi_digitalocean/genai_agent_route.py +354 -0
  45. pulumi_digitalocean/genai_function.py +464 -0
  46. pulumi_digitalocean/genai_indexing_job_cancel.py +542 -0
  47. pulumi_digitalocean/genai_knowledge_base.py +627 -0
  48. pulumi_digitalocean/genai_knowledge_base_data_source.py +220 -0
  49. pulumi_digitalocean/genai_openai_api_key.py +386 -0
  50. pulumi_digitalocean/get_account.py +18 -18
  51. pulumi_digitalocean/get_app.py +28 -28
  52. pulumi_digitalocean/get_byoip_prefix.py +214 -0
  53. pulumi_digitalocean/get_byoip_prefix_resources.py +150 -0
  54. pulumi_digitalocean/get_certificate.py +22 -22
  55. pulumi_digitalocean/get_container_registries.py +151 -0
  56. pulumi_digitalocean/get_container_registry.py +22 -22
  57. pulumi_digitalocean/get_database_ca.py +12 -12
  58. pulumi_digitalocean/get_database_cluster.py +76 -62
  59. pulumi_digitalocean/get_database_connection_pool.py +36 -36
  60. pulumi_digitalocean/get_database_metrics_credentials.py +120 -0
  61. pulumi_digitalocean/get_database_replica.py +46 -46
  62. pulumi_digitalocean/get_database_user.py +27 -27
  63. pulumi_digitalocean/get_domain.py +16 -16
  64. pulumi_digitalocean/get_domains.py +7 -7
  65. pulumi_digitalocean/get_droplet.py +72 -72
  66. pulumi_digitalocean/get_droplet_autoscale.py +23 -23
  67. pulumi_digitalocean/get_droplet_snapshot.py +38 -38
  68. pulumi_digitalocean/get_droplets.py +13 -13
  69. pulumi_digitalocean/get_firewall.py +31 -31
  70. pulumi_digitalocean/get_floating_ip.py +16 -16
  71. pulumi_digitalocean/get_genai_agent.py +572 -0
  72. pulumi_digitalocean/get_genai_agent_versions.py +128 -0
  73. pulumi_digitalocean/get_genai_agents.py +128 -0
  74. pulumi_digitalocean/get_genai_agents_by_openai_api_key.py +97 -0
  75. pulumi_digitalocean/get_genai_indexing_job.py +239 -0
  76. pulumi_digitalocean/get_genai_indexing_job_data_sources.py +97 -0
  77. pulumi_digitalocean/get_genai_knowledge_base.py +259 -0
  78. pulumi_digitalocean/get_genai_knowledge_base_data_sources.py +97 -0
  79. pulumi_digitalocean/get_genai_knowledge_base_indexing_jobs.py +108 -0
  80. pulumi_digitalocean/get_genai_knowledge_bases.py +113 -0
  81. pulumi_digitalocean/get_genai_models.py +113 -0
  82. pulumi_digitalocean/get_genai_openai_api_key.py +152 -0
  83. pulumi_digitalocean/get_genai_openai_api_keys.py +113 -0
  84. pulumi_digitalocean/get_genai_regions.py +113 -0
  85. pulumi_digitalocean/get_image.py +50 -50
  86. pulumi_digitalocean/get_images.py +7 -7
  87. pulumi_digitalocean/get_kubernetes_cluster.py +144 -53
  88. pulumi_digitalocean/get_kubernetes_versions.py +14 -14
  89. pulumi_digitalocean/get_load_balancer.py +70 -59
  90. pulumi_digitalocean/get_nfs.py +205 -0
  91. pulumi_digitalocean/get_nfs_snapshot.py +188 -0
  92. pulumi_digitalocean/get_partner_attachment.py +206 -0
  93. pulumi_digitalocean/get_partner_attachment_service_key.py +118 -0
  94. pulumi_digitalocean/get_project.py +32 -32
  95. pulumi_digitalocean/get_projects.py +7 -7
  96. pulumi_digitalocean/get_record.py +32 -32
  97. pulumi_digitalocean/get_records.py +13 -13
  98. pulumi_digitalocean/get_region.py +18 -18
  99. pulumi_digitalocean/get_regions.py +7 -7
  100. pulumi_digitalocean/get_reserved_ip.py +16 -16
  101. pulumi_digitalocean/get_reserved_ipv6.py +51 -16
  102. pulumi_digitalocean/get_sizes.py +141 -7
  103. pulumi_digitalocean/get_spaces_bucket.py +22 -22
  104. pulumi_digitalocean/get_spaces_bucket_object.py +58 -58
  105. pulumi_digitalocean/get_spaces_bucket_objects.py +46 -46
  106. pulumi_digitalocean/get_spaces_buckets.py +7 -7
  107. pulumi_digitalocean/get_spaces_key.py +157 -0
  108. pulumi_digitalocean/get_ssh_key.py +14 -14
  109. pulumi_digitalocean/get_ssh_keys.py +7 -7
  110. pulumi_digitalocean/get_tag.py +22 -22
  111. pulumi_digitalocean/get_tags.py +7 -7
  112. pulumi_digitalocean/get_volume.py +34 -34
  113. pulumi_digitalocean/get_volume_snapshot.py +40 -40
  114. pulumi_digitalocean/get_vpc.py +30 -30
  115. pulumi_digitalocean/get_vpc_nat_gateway.py +263 -0
  116. pulumi_digitalocean/get_vpc_peering.py +24 -24
  117. pulumi_digitalocean/kubernetes_cluster.py +572 -303
  118. pulumi_digitalocean/kubernetes_node_pool.py +170 -169
  119. pulumi_digitalocean/load_balancer.py +406 -372
  120. pulumi_digitalocean/monitor_alert.py +153 -156
  121. pulumi_digitalocean/nfs.py +481 -0
  122. pulumi_digitalocean/nfs_attachment.py +289 -0
  123. pulumi_digitalocean/nfs_snapshot.py +379 -0
  124. pulumi_digitalocean/outputs.py +26759 -7592
  125. pulumi_digitalocean/partner_attachment.py +555 -0
  126. pulumi_digitalocean/project.py +141 -140
  127. pulumi_digitalocean/project_resources.py +37 -36
  128. pulumi_digitalocean/provider.py +105 -84
  129. pulumi_digitalocean/pulumi-plugin.json +1 -1
  130. pulumi_digitalocean/reserved_ip.py +63 -62
  131. pulumi_digitalocean/reserved_ip_assignment.py +37 -36
  132. pulumi_digitalocean/reserved_ipv6.py +122 -62
  133. pulumi_digitalocean/reserved_ipv6_assignment.py +81 -30
  134. pulumi_digitalocean/spaces_bucket.py +107 -106
  135. pulumi_digitalocean/spaces_bucket_cors_configuration.py +40 -39
  136. pulumi_digitalocean/spaces_bucket_logging.py +346 -0
  137. pulumi_digitalocean/spaces_bucket_object.py +284 -283
  138. pulumi_digitalocean/spaces_bucket_policy.py +54 -53
  139. pulumi_digitalocean/spaces_key.py +388 -0
  140. pulumi_digitalocean/ssh_key.py +46 -45
  141. pulumi_digitalocean/tag.py +74 -73
  142. pulumi_digitalocean/uptime_alert.py +112 -111
  143. pulumi_digitalocean/uptime_check.py +90 -89
  144. pulumi_digitalocean/volume.py +183 -182
  145. pulumi_digitalocean/volume_attachment.py +37 -36
  146. pulumi_digitalocean/volume_snapshot.py +90 -89
  147. pulumi_digitalocean/vpc.py +100 -99
  148. pulumi_digitalocean/vpc_nat_gateway.py +722 -0
  149. pulumi_digitalocean/vpc_peering.py +55 -58
  150. {pulumi_digitalocean-4.40.0a1739511652.dist-info → pulumi_digitalocean-4.56.0a1766428645.dist-info}/METADATA +4 -4
  151. pulumi_digitalocean-4.56.0a1766428645.dist-info/RECORD +154 -0
  152. {pulumi_digitalocean-4.40.0a1739511652.dist-info → pulumi_digitalocean-4.56.0a1766428645.dist-info}/WHEEL +1 -1
  153. pulumi_digitalocean-4.40.0a1739511652.dist-info/RECORD +0 -108
  154. {pulumi_digitalocean-4.40.0a1739511652.dist-info → pulumi_digitalocean-4.56.0a1766428645.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,452 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
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__ = ['ByoipPrefixArgs', 'ByoipPrefix']
18
+
19
+ @pulumi.input_type
20
+ class ByoipPrefixArgs:
21
+ def __init__(__self__, *,
22
+ prefix: pulumi.Input[_builtins.str],
23
+ region: pulumi.Input[_builtins.str],
24
+ advertised: Optional[pulumi.Input[_builtins.bool]] = None,
25
+ signature: Optional[pulumi.Input[_builtins.str]] = None):
26
+ """
27
+ The set of arguments for constructing a ByoipPrefix resource.
28
+ :param pulumi.Input[_builtins.str] prefix: The CIDR notation of the prefix (e.g., "192.0.2.0/24").
29
+ :param pulumi.Input[_builtins.str] region: The DigitalOcean region where the prefix will be deployed.
30
+ :param pulumi.Input[_builtins.bool] advertised: A boolean indicating whether the prefix should be advertised.
31
+ Defaults to `false`.
32
+ :param pulumi.Input[_builtins.str] signature: The cryptographic signature proving ownership of the prefix.
33
+ This is required during creation but can be omitted in subsequent updates.
34
+ """
35
+ pulumi.set(__self__, "prefix", prefix)
36
+ pulumi.set(__self__, "region", region)
37
+ if advertised is not None:
38
+ pulumi.set(__self__, "advertised", advertised)
39
+ if signature is not None:
40
+ pulumi.set(__self__, "signature", signature)
41
+
42
+ @_builtins.property
43
+ @pulumi.getter
44
+ def prefix(self) -> pulumi.Input[_builtins.str]:
45
+ """
46
+ The CIDR notation of the prefix (e.g., "192.0.2.0/24").
47
+ """
48
+ return pulumi.get(self, "prefix")
49
+
50
+ @prefix.setter
51
+ def prefix(self, value: pulumi.Input[_builtins.str]):
52
+ pulumi.set(self, "prefix", value)
53
+
54
+ @_builtins.property
55
+ @pulumi.getter
56
+ def region(self) -> pulumi.Input[_builtins.str]:
57
+ """
58
+ The DigitalOcean region where the prefix will be deployed.
59
+ """
60
+ return pulumi.get(self, "region")
61
+
62
+ @region.setter
63
+ def region(self, value: pulumi.Input[_builtins.str]):
64
+ pulumi.set(self, "region", value)
65
+
66
+ @_builtins.property
67
+ @pulumi.getter
68
+ def advertised(self) -> Optional[pulumi.Input[_builtins.bool]]:
69
+ """
70
+ A boolean indicating whether the prefix should be advertised.
71
+ Defaults to `false`.
72
+ """
73
+ return pulumi.get(self, "advertised")
74
+
75
+ @advertised.setter
76
+ def advertised(self, value: Optional[pulumi.Input[_builtins.bool]]):
77
+ pulumi.set(self, "advertised", value)
78
+
79
+ @_builtins.property
80
+ @pulumi.getter
81
+ def signature(self) -> Optional[pulumi.Input[_builtins.str]]:
82
+ """
83
+ The cryptographic signature proving ownership of the prefix.
84
+ This is required during creation but can be omitted in subsequent updates.
85
+ """
86
+ return pulumi.get(self, "signature")
87
+
88
+ @signature.setter
89
+ def signature(self, value: Optional[pulumi.Input[_builtins.str]]):
90
+ pulumi.set(self, "signature", value)
91
+
92
+
93
+ @pulumi.input_type
94
+ class _ByoipPrefixState:
95
+ def __init__(__self__, *,
96
+ advertised: Optional[pulumi.Input[_builtins.bool]] = None,
97
+ failure_reason: Optional[pulumi.Input[_builtins.str]] = None,
98
+ prefix: Optional[pulumi.Input[_builtins.str]] = None,
99
+ region: Optional[pulumi.Input[_builtins.str]] = None,
100
+ signature: Optional[pulumi.Input[_builtins.str]] = None,
101
+ status: Optional[pulumi.Input[_builtins.str]] = None,
102
+ uuid: Optional[pulumi.Input[_builtins.str]] = None):
103
+ """
104
+ Input properties used for looking up and filtering ByoipPrefix resources.
105
+ :param pulumi.Input[_builtins.bool] advertised: A boolean indicating whether the prefix should be advertised.
106
+ Defaults to `false`.
107
+ :param pulumi.Input[_builtins.str] failure_reason: The reason for failure if the status is "failed".
108
+ :param pulumi.Input[_builtins.str] prefix: The CIDR notation of the prefix (e.g., "192.0.2.0/24").
109
+ :param pulumi.Input[_builtins.str] region: The DigitalOcean region where the prefix will be deployed.
110
+ :param pulumi.Input[_builtins.str] signature: The cryptographic signature proving ownership of the prefix.
111
+ This is required during creation but can be omitted in subsequent updates.
112
+ :param pulumi.Input[_builtins.str] status: The current status of the BYOIP prefix (e.g., "verified", "pending", "failed").
113
+ :param pulumi.Input[_builtins.str] uuid: The UUID of the BYOIP prefix.
114
+ """
115
+ if advertised is not None:
116
+ pulumi.set(__self__, "advertised", advertised)
117
+ if failure_reason is not None:
118
+ pulumi.set(__self__, "failure_reason", failure_reason)
119
+ if prefix is not None:
120
+ pulumi.set(__self__, "prefix", prefix)
121
+ if region is not None:
122
+ pulumi.set(__self__, "region", region)
123
+ if signature is not None:
124
+ pulumi.set(__self__, "signature", signature)
125
+ if status is not None:
126
+ pulumi.set(__self__, "status", status)
127
+ if uuid is not None:
128
+ pulumi.set(__self__, "uuid", uuid)
129
+
130
+ @_builtins.property
131
+ @pulumi.getter
132
+ def advertised(self) -> Optional[pulumi.Input[_builtins.bool]]:
133
+ """
134
+ A boolean indicating whether the prefix should be advertised.
135
+ Defaults to `false`.
136
+ """
137
+ return pulumi.get(self, "advertised")
138
+
139
+ @advertised.setter
140
+ def advertised(self, value: Optional[pulumi.Input[_builtins.bool]]):
141
+ pulumi.set(self, "advertised", value)
142
+
143
+ @_builtins.property
144
+ @pulumi.getter(name="failureReason")
145
+ def failure_reason(self) -> Optional[pulumi.Input[_builtins.str]]:
146
+ """
147
+ The reason for failure if the status is "failed".
148
+ """
149
+ return pulumi.get(self, "failure_reason")
150
+
151
+ @failure_reason.setter
152
+ def failure_reason(self, value: Optional[pulumi.Input[_builtins.str]]):
153
+ pulumi.set(self, "failure_reason", value)
154
+
155
+ @_builtins.property
156
+ @pulumi.getter
157
+ def prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
158
+ """
159
+ The CIDR notation of the prefix (e.g., "192.0.2.0/24").
160
+ """
161
+ return pulumi.get(self, "prefix")
162
+
163
+ @prefix.setter
164
+ def prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
165
+ pulumi.set(self, "prefix", value)
166
+
167
+ @_builtins.property
168
+ @pulumi.getter
169
+ def region(self) -> Optional[pulumi.Input[_builtins.str]]:
170
+ """
171
+ The DigitalOcean region where the prefix will be deployed.
172
+ """
173
+ return pulumi.get(self, "region")
174
+
175
+ @region.setter
176
+ def region(self, value: Optional[pulumi.Input[_builtins.str]]):
177
+ pulumi.set(self, "region", value)
178
+
179
+ @_builtins.property
180
+ @pulumi.getter
181
+ def signature(self) -> Optional[pulumi.Input[_builtins.str]]:
182
+ """
183
+ The cryptographic signature proving ownership of the prefix.
184
+ This is required during creation but can be omitted in subsequent updates.
185
+ """
186
+ return pulumi.get(self, "signature")
187
+
188
+ @signature.setter
189
+ def signature(self, value: Optional[pulumi.Input[_builtins.str]]):
190
+ pulumi.set(self, "signature", value)
191
+
192
+ @_builtins.property
193
+ @pulumi.getter
194
+ def status(self) -> Optional[pulumi.Input[_builtins.str]]:
195
+ """
196
+ The current status of the BYOIP prefix (e.g., "verified", "pending", "failed").
197
+ """
198
+ return pulumi.get(self, "status")
199
+
200
+ @status.setter
201
+ def status(self, value: Optional[pulumi.Input[_builtins.str]]):
202
+ pulumi.set(self, "status", value)
203
+
204
+ @_builtins.property
205
+ @pulumi.getter
206
+ def uuid(self) -> Optional[pulumi.Input[_builtins.str]]:
207
+ """
208
+ The UUID of the BYOIP prefix.
209
+ """
210
+ return pulumi.get(self, "uuid")
211
+
212
+ @uuid.setter
213
+ def uuid(self, value: Optional[pulumi.Input[_builtins.str]]):
214
+ pulumi.set(self, "uuid", value)
215
+
216
+
217
+ @pulumi.type_token("digitalocean:index/byoipPrefix:ByoipPrefix")
218
+ class ByoipPrefix(pulumi.CustomResource):
219
+ @overload
220
+ def __init__(__self__,
221
+ resource_name: str,
222
+ opts: Optional[pulumi.ResourceOptions] = None,
223
+ advertised: Optional[pulumi.Input[_builtins.bool]] = None,
224
+ prefix: Optional[pulumi.Input[_builtins.str]] = None,
225
+ region: Optional[pulumi.Input[_builtins.str]] = None,
226
+ signature: Optional[pulumi.Input[_builtins.str]] = None,
227
+ __props__=None):
228
+ """
229
+ Provides a DigitalOcean BYOIP (Bring Your Own IP) prefix resource. This can be used to
230
+ create, modify, and delete BYOIP prefixes.
231
+
232
+ BYOIP prefixes allow you to bring your own IP address space to DigitalOcean. You can
233
+ use this feature to maintain your IP reputation or meet specific compliance requirements.
234
+
235
+ BYOIP prefix provisioning documentation: https://docs.digitalocean.com/products/networking/reserved-ips/how-to/provision-byoip/
236
+
237
+ Note: By default, newly provisioned BYOIP prefixes are not advertised to the internet. After the initial `pulumi up`, BYOIP provisioning request is initiated and DigitalOcean provisions the prefix, the prefix status changes to Active. At this point, you can initiate advertising prefix to the internet by setting field `advertised = true` and apply the configuration to make your prefix fully usable and accessible from the internet.
238
+
239
+ ## Example Usage
240
+
241
+ ```python
242
+ import pulumi
243
+ import pulumi_digitalocean as digitalocean
244
+
245
+ # Create a new BYOIP prefix
246
+ example = digitalocean.ByoipPrefix("example",
247
+ prefix="192.0.2.0/24",
248
+ signature=prefix_signature,
249
+ region="nyc3",
250
+ advertised=False)
251
+ ```
252
+
253
+ ## Import
254
+
255
+ BYOIP prefixes can be imported using the prefix `uuid`, e.g.
256
+
257
+ ```sh
258
+ $ pulumi import digitalocean:index/byoipPrefix:ByoipPrefix example 506f78a4-e098-11e5-ad9f-000f53306ae1
259
+ ```
260
+
261
+ :param str resource_name: The name of the resource.
262
+ :param pulumi.ResourceOptions opts: Options for the resource.
263
+ :param pulumi.Input[_builtins.bool] advertised: A boolean indicating whether the prefix should be advertised.
264
+ Defaults to `false`.
265
+ :param pulumi.Input[_builtins.str] prefix: The CIDR notation of the prefix (e.g., "192.0.2.0/24").
266
+ :param pulumi.Input[_builtins.str] region: The DigitalOcean region where the prefix will be deployed.
267
+ :param pulumi.Input[_builtins.str] signature: The cryptographic signature proving ownership of the prefix.
268
+ This is required during creation but can be omitted in subsequent updates.
269
+ """
270
+ ...
271
+ @overload
272
+ def __init__(__self__,
273
+ resource_name: str,
274
+ args: ByoipPrefixArgs,
275
+ opts: Optional[pulumi.ResourceOptions] = None):
276
+ """
277
+ Provides a DigitalOcean BYOIP (Bring Your Own IP) prefix resource. This can be used to
278
+ create, modify, and delete BYOIP prefixes.
279
+
280
+ BYOIP prefixes allow you to bring your own IP address space to DigitalOcean. You can
281
+ use this feature to maintain your IP reputation or meet specific compliance requirements.
282
+
283
+ BYOIP prefix provisioning documentation: https://docs.digitalocean.com/products/networking/reserved-ips/how-to/provision-byoip/
284
+
285
+ Note: By default, newly provisioned BYOIP prefixes are not advertised to the internet. After the initial `pulumi up`, BYOIP provisioning request is initiated and DigitalOcean provisions the prefix, the prefix status changes to Active. At this point, you can initiate advertising prefix to the internet by setting field `advertised = true` and apply the configuration to make your prefix fully usable and accessible from the internet.
286
+
287
+ ## Example Usage
288
+
289
+ ```python
290
+ import pulumi
291
+ import pulumi_digitalocean as digitalocean
292
+
293
+ # Create a new BYOIP prefix
294
+ example = digitalocean.ByoipPrefix("example",
295
+ prefix="192.0.2.0/24",
296
+ signature=prefix_signature,
297
+ region="nyc3",
298
+ advertised=False)
299
+ ```
300
+
301
+ ## Import
302
+
303
+ BYOIP prefixes can be imported using the prefix `uuid`, e.g.
304
+
305
+ ```sh
306
+ $ pulumi import digitalocean:index/byoipPrefix:ByoipPrefix example 506f78a4-e098-11e5-ad9f-000f53306ae1
307
+ ```
308
+
309
+ :param str resource_name: The name of the resource.
310
+ :param ByoipPrefixArgs args: The arguments to use to populate this resource's properties.
311
+ :param pulumi.ResourceOptions opts: Options for the resource.
312
+ """
313
+ ...
314
+ def __init__(__self__, resource_name: str, *args, **kwargs):
315
+ resource_args, opts = _utilities.get_resource_args_opts(ByoipPrefixArgs, pulumi.ResourceOptions, *args, **kwargs)
316
+ if resource_args is not None:
317
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
318
+ else:
319
+ __self__._internal_init(resource_name, *args, **kwargs)
320
+
321
+ def _internal_init(__self__,
322
+ resource_name: str,
323
+ opts: Optional[pulumi.ResourceOptions] = None,
324
+ advertised: Optional[pulumi.Input[_builtins.bool]] = None,
325
+ prefix: Optional[pulumi.Input[_builtins.str]] = None,
326
+ region: Optional[pulumi.Input[_builtins.str]] = None,
327
+ signature: Optional[pulumi.Input[_builtins.str]] = None,
328
+ __props__=None):
329
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
330
+ if not isinstance(opts, pulumi.ResourceOptions):
331
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
332
+ if opts.id is None:
333
+ if __props__ is not None:
334
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
335
+ __props__ = ByoipPrefixArgs.__new__(ByoipPrefixArgs)
336
+
337
+ __props__.__dict__["advertised"] = advertised
338
+ if prefix is None and not opts.urn:
339
+ raise TypeError("Missing required property 'prefix'")
340
+ __props__.__dict__["prefix"] = prefix
341
+ if region is None and not opts.urn:
342
+ raise TypeError("Missing required property 'region'")
343
+ __props__.__dict__["region"] = region
344
+ __props__.__dict__["signature"] = signature
345
+ __props__.__dict__["failure_reason"] = None
346
+ __props__.__dict__["status"] = None
347
+ __props__.__dict__["uuid"] = None
348
+ super(ByoipPrefix, __self__).__init__(
349
+ 'digitalocean:index/byoipPrefix:ByoipPrefix',
350
+ resource_name,
351
+ __props__,
352
+ opts)
353
+
354
+ @staticmethod
355
+ def get(resource_name: str,
356
+ id: pulumi.Input[str],
357
+ opts: Optional[pulumi.ResourceOptions] = None,
358
+ advertised: Optional[pulumi.Input[_builtins.bool]] = None,
359
+ failure_reason: Optional[pulumi.Input[_builtins.str]] = None,
360
+ prefix: Optional[pulumi.Input[_builtins.str]] = None,
361
+ region: Optional[pulumi.Input[_builtins.str]] = None,
362
+ signature: Optional[pulumi.Input[_builtins.str]] = None,
363
+ status: Optional[pulumi.Input[_builtins.str]] = None,
364
+ uuid: Optional[pulumi.Input[_builtins.str]] = None) -> 'ByoipPrefix':
365
+ """
366
+ Get an existing ByoipPrefix resource's state with the given name, id, and optional extra
367
+ properties used to qualify the lookup.
368
+
369
+ :param str resource_name: The unique name of the resulting resource.
370
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
371
+ :param pulumi.ResourceOptions opts: Options for the resource.
372
+ :param pulumi.Input[_builtins.bool] advertised: A boolean indicating whether the prefix should be advertised.
373
+ Defaults to `false`.
374
+ :param pulumi.Input[_builtins.str] failure_reason: The reason for failure if the status is "failed".
375
+ :param pulumi.Input[_builtins.str] prefix: The CIDR notation of the prefix (e.g., "192.0.2.0/24").
376
+ :param pulumi.Input[_builtins.str] region: The DigitalOcean region where the prefix will be deployed.
377
+ :param pulumi.Input[_builtins.str] signature: The cryptographic signature proving ownership of the prefix.
378
+ This is required during creation but can be omitted in subsequent updates.
379
+ :param pulumi.Input[_builtins.str] status: The current status of the BYOIP prefix (e.g., "verified", "pending", "failed").
380
+ :param pulumi.Input[_builtins.str] uuid: The UUID of the BYOIP prefix.
381
+ """
382
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
383
+
384
+ __props__ = _ByoipPrefixState.__new__(_ByoipPrefixState)
385
+
386
+ __props__.__dict__["advertised"] = advertised
387
+ __props__.__dict__["failure_reason"] = failure_reason
388
+ __props__.__dict__["prefix"] = prefix
389
+ __props__.__dict__["region"] = region
390
+ __props__.__dict__["signature"] = signature
391
+ __props__.__dict__["status"] = status
392
+ __props__.__dict__["uuid"] = uuid
393
+ return ByoipPrefix(resource_name, opts=opts, __props__=__props__)
394
+
395
+ @_builtins.property
396
+ @pulumi.getter
397
+ def advertised(self) -> pulumi.Output[Optional[_builtins.bool]]:
398
+ """
399
+ A boolean indicating whether the prefix should be advertised.
400
+ Defaults to `false`.
401
+ """
402
+ return pulumi.get(self, "advertised")
403
+
404
+ @_builtins.property
405
+ @pulumi.getter(name="failureReason")
406
+ def failure_reason(self) -> pulumi.Output[_builtins.str]:
407
+ """
408
+ The reason for failure if the status is "failed".
409
+ """
410
+ return pulumi.get(self, "failure_reason")
411
+
412
+ @_builtins.property
413
+ @pulumi.getter
414
+ def prefix(self) -> pulumi.Output[_builtins.str]:
415
+ """
416
+ The CIDR notation of the prefix (e.g., "192.0.2.0/24").
417
+ """
418
+ return pulumi.get(self, "prefix")
419
+
420
+ @_builtins.property
421
+ @pulumi.getter
422
+ def region(self) -> pulumi.Output[_builtins.str]:
423
+ """
424
+ The DigitalOcean region where the prefix will be deployed.
425
+ """
426
+ return pulumi.get(self, "region")
427
+
428
+ @_builtins.property
429
+ @pulumi.getter
430
+ def signature(self) -> pulumi.Output[Optional[_builtins.str]]:
431
+ """
432
+ The cryptographic signature proving ownership of the prefix.
433
+ This is required during creation but can be omitted in subsequent updates.
434
+ """
435
+ return pulumi.get(self, "signature")
436
+
437
+ @_builtins.property
438
+ @pulumi.getter
439
+ def status(self) -> pulumi.Output[_builtins.str]:
440
+ """
441
+ The current status of the BYOIP prefix (e.g., "verified", "pending", "failed").
442
+ """
443
+ return pulumi.get(self, "status")
444
+
445
+ @_builtins.property
446
+ @pulumi.getter
447
+ def uuid(self) -> pulumi.Output[_builtins.str]:
448
+ """
449
+ The UUID of the BYOIP prefix.
450
+ """
451
+ return pulumi.get(self, "uuid")
452
+