pulumi-digitalocean 4.46.0a1747979086__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 +195 -2
  2. pulumi_digitalocean/_enums.py +10 -10
  3. pulumi_digitalocean/_inputs.py +16851 -4937
  4. pulumi_digitalocean/_utilities.py +1 -1
  5. pulumi_digitalocean/app.py +237 -89
  6. pulumi_digitalocean/byoip_prefix.py +452 -0
  7. pulumi_digitalocean/cdn.py +105 -106
  8. pulumi_digitalocean/certificate.py +138 -139
  9. pulumi_digitalocean/config/__init__.py +2 -2
  10. pulumi_digitalocean/config/__init__.pyi +2 -3
  11. pulumi_digitalocean/config/vars.py +11 -12
  12. pulumi_digitalocean/container_registries.py +285 -0
  13. pulumi_digitalocean/container_registry.py +89 -90
  14. pulumi_digitalocean/container_registry_docker_credentials.py +83 -84
  15. pulumi_digitalocean/custom_image.py +176 -177
  16. pulumi_digitalocean/database_cluster.py +375 -348
  17. pulumi_digitalocean/database_connection_pool.py +158 -159
  18. pulumi_digitalocean/database_db.py +36 -37
  19. pulumi_digitalocean/database_firewall.py +22 -23
  20. pulumi_digitalocean/database_kafka_config.py +308 -309
  21. pulumi_digitalocean/database_kafka_schema_registry.py +360 -0
  22. pulumi_digitalocean/database_kafka_topic.py +82 -83
  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 +104 -105
  26. pulumi_digitalocean/database_mysql_config.py +478 -479
  27. pulumi_digitalocean/database_online_migration.py +460 -0
  28. pulumi_digitalocean/database_opensearch_config.py +665 -666
  29. pulumi_digitalocean/database_postgresql_config.py +858 -859
  30. pulumi_digitalocean/database_redis_config.py +210 -207
  31. pulumi_digitalocean/database_replica.py +198 -199
  32. pulumi_digitalocean/database_user.py +92 -93
  33. pulumi_digitalocean/database_valkey_config.py +776 -0
  34. pulumi_digitalocean/dns_record.py +181 -182
  35. pulumi_digitalocean/domain.py +54 -55
  36. pulumi_digitalocean/droplet.py +389 -390
  37. pulumi_digitalocean/droplet_autoscale.py +54 -55
  38. pulumi_digitalocean/droplet_snapshot.py +72 -73
  39. pulumi_digitalocean/firewall.py +79 -80
  40. pulumi_digitalocean/floating_ip.py +62 -63
  41. pulumi_digitalocean/floating_ip_assignment.py +36 -37
  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 -19
  51. pulumi_digitalocean/get_app.py +28 -29
  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 -23
  55. pulumi_digitalocean/get_container_registries.py +151 -0
  56. pulumi_digitalocean/get_container_registry.py +22 -23
  57. pulumi_digitalocean/get_database_ca.py +12 -13
  58. pulumi_digitalocean/get_database_cluster.py +76 -63
  59. pulumi_digitalocean/get_database_connection_pool.py +36 -37
  60. pulumi_digitalocean/get_database_metrics_credentials.py +120 -0
  61. pulumi_digitalocean/get_database_replica.py +46 -47
  62. pulumi_digitalocean/get_database_user.py +27 -28
  63. pulumi_digitalocean/get_domain.py +16 -17
  64. pulumi_digitalocean/get_domains.py +7 -8
  65. pulumi_digitalocean/get_droplet.py +72 -73
  66. pulumi_digitalocean/get_droplet_autoscale.py +23 -24
  67. pulumi_digitalocean/get_droplet_snapshot.py +38 -39
  68. pulumi_digitalocean/get_droplets.py +13 -14
  69. pulumi_digitalocean/get_firewall.py +31 -32
  70. pulumi_digitalocean/get_floating_ip.py +16 -17
  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 -51
  86. pulumi_digitalocean/get_images.py +7 -8
  87. pulumi_digitalocean/get_kubernetes_cluster.py +117 -58
  88. pulumi_digitalocean/get_kubernetes_versions.py +14 -15
  89. pulumi_digitalocean/get_load_balancer.py +60 -61
  90. pulumi_digitalocean/get_nfs.py +205 -0
  91. pulumi_digitalocean/get_nfs_snapshot.py +188 -0
  92. pulumi_digitalocean/get_partner_attachment.py +61 -25
  93. pulumi_digitalocean/get_partner_attachment_service_key.py +118 -0
  94. pulumi_digitalocean/get_project.py +32 -33
  95. pulumi_digitalocean/get_projects.py +7 -8
  96. pulumi_digitalocean/get_record.py +32 -33
  97. pulumi_digitalocean/get_records.py +13 -14
  98. pulumi_digitalocean/get_region.py +18 -19
  99. pulumi_digitalocean/get_regions.py +7 -8
  100. pulumi_digitalocean/get_reserved_ip.py +16 -17
  101. pulumi_digitalocean/get_reserved_ipv6.py +16 -17
  102. pulumi_digitalocean/get_sizes.py +141 -8
  103. pulumi_digitalocean/get_spaces_bucket.py +22 -23
  104. pulumi_digitalocean/get_spaces_bucket_object.py +58 -59
  105. pulumi_digitalocean/get_spaces_bucket_objects.py +46 -47
  106. pulumi_digitalocean/get_spaces_buckets.py +7 -8
  107. pulumi_digitalocean/get_spaces_key.py +15 -16
  108. pulumi_digitalocean/get_ssh_key.py +14 -15
  109. pulumi_digitalocean/get_ssh_keys.py +7 -8
  110. pulumi_digitalocean/get_tag.py +22 -23
  111. pulumi_digitalocean/get_tags.py +7 -8
  112. pulumi_digitalocean/get_volume.py +34 -35
  113. pulumi_digitalocean/get_volume_snapshot.py +40 -41
  114. pulumi_digitalocean/get_vpc.py +30 -31
  115. pulumi_digitalocean/get_vpc_nat_gateway.py +263 -0
  116. pulumi_digitalocean/get_vpc_peering.py +24 -25
  117. pulumi_digitalocean/kubernetes_cluster.py +483 -296
  118. pulumi_digitalocean/kubernetes_node_pool.py +169 -170
  119. pulumi_digitalocean/load_balancer.py +375 -376
  120. pulumi_digitalocean/monitor_alert.py +150 -151
  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 +26671 -7785
  125. pulumi_digitalocean/partner_attachment.py +231 -110
  126. pulumi_digitalocean/project.py +140 -141
  127. pulumi_digitalocean/project_resources.py +36 -37
  128. pulumi_digitalocean/provider.py +85 -86
  129. pulumi_digitalocean/pulumi-plugin.json +1 -1
  130. pulumi_digitalocean/reserved_ip.py +62 -63
  131. pulumi_digitalocean/reserved_ip_assignment.py +36 -37
  132. pulumi_digitalocean/reserved_ipv6.py +64 -65
  133. pulumi_digitalocean/reserved_ipv6_assignment.py +36 -37
  134. pulumi_digitalocean/spaces_bucket.py +106 -107
  135. pulumi_digitalocean/spaces_bucket_cors_configuration.py +39 -40
  136. pulumi_digitalocean/spaces_bucket_logging.py +70 -71
  137. pulumi_digitalocean/spaces_bucket_object.py +283 -284
  138. pulumi_digitalocean/spaces_bucket_policy.py +53 -54
  139. pulumi_digitalocean/spaces_key.py +49 -50
  140. pulumi_digitalocean/ssh_key.py +45 -46
  141. pulumi_digitalocean/tag.py +73 -74
  142. pulumi_digitalocean/uptime_alert.py +107 -108
  143. pulumi_digitalocean/uptime_check.py +87 -88
  144. pulumi_digitalocean/volume.py +182 -183
  145. pulumi_digitalocean/volume_attachment.py +36 -37
  146. pulumi_digitalocean/volume_snapshot.py +89 -90
  147. pulumi_digitalocean/vpc.py +97 -98
  148. pulumi_digitalocean/vpc_nat_gateway.py +722 -0
  149. pulumi_digitalocean/vpc_peering.py +54 -59
  150. {pulumi_digitalocean-4.46.0a1747979086.dist-info → pulumi_digitalocean-4.56.0a1766428645.dist-info}/METADATA +1 -1
  151. pulumi_digitalocean-4.56.0a1766428645.dist-info/RECORD +154 -0
  152. {pulumi_digitalocean-4.46.0a1747979086.dist-info → pulumi_digitalocean-4.56.0a1766428645.dist-info}/WHEEL +1 -1
  153. pulumi_digitalocean-4.46.0a1747979086.dist-info/RECORD +0 -113
  154. {pulumi_digitalocean-4.46.0a1747979086.dist-info → pulumi_digitalocean-4.56.0a1766428645.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,8 @@
1
1
  # coding=utf-8
2
- # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
3
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
 
5
- import builtins
6
- import copy
5
+ import builtins as _builtins
7
6
  import warnings
8
7
  import sys
9
8
  import pulumi
@@ -53,65 +52,65 @@ class GetAccountResult:
53
52
  raise TypeError("Expected argument 'uuid' to be a str")
54
53
  pulumi.set(__self__, "uuid", uuid)
55
54
 
56
- @property
55
+ @_builtins.property
57
56
  @pulumi.getter(name="dropletLimit")
58
- def droplet_limit(self) -> builtins.int:
57
+ def droplet_limit(self) -> _builtins.int:
59
58
  """
60
59
  The total number of droplets current user or team may have active at one time.
61
60
  """
62
61
  return pulumi.get(self, "droplet_limit")
63
62
 
64
- @property
63
+ @_builtins.property
65
64
  @pulumi.getter
66
- def email(self) -> builtins.str:
65
+ def email(self) -> _builtins.str:
67
66
  """
68
67
  The email address used by the current user to register for DigitalOcean.
69
68
  """
70
69
  return pulumi.get(self, "email")
71
70
 
72
- @property
71
+ @_builtins.property
73
72
  @pulumi.getter(name="emailVerified")
74
- def email_verified(self) -> builtins.bool:
73
+ def email_verified(self) -> _builtins.bool:
75
74
  """
76
75
  If true, the user has verified their account via email. False otherwise.
77
76
  """
78
77
  return pulumi.get(self, "email_verified")
79
78
 
80
- @property
79
+ @_builtins.property
81
80
  @pulumi.getter(name="floatingIpLimit")
82
- def floating_ip_limit(self) -> builtins.int:
81
+ def floating_ip_limit(self) -> _builtins.int:
83
82
  """
84
83
  The total number of floating IPs the current user or team may have.
85
84
  """
86
85
  return pulumi.get(self, "floating_ip_limit")
87
86
 
88
- @property
87
+ @_builtins.property
89
88
  @pulumi.getter
90
- def id(self) -> builtins.str:
89
+ def id(self) -> _builtins.str:
91
90
  """
92
91
  The provider-assigned unique ID for this managed resource.
93
92
  """
94
93
  return pulumi.get(self, "id")
95
94
 
96
- @property
95
+ @_builtins.property
97
96
  @pulumi.getter
98
- def status(self) -> builtins.str:
97
+ def status(self) -> _builtins.str:
99
98
  """
100
99
  This value is one of "active", "warning" or "locked".
101
100
  """
102
101
  return pulumi.get(self, "status")
103
102
 
104
- @property
103
+ @_builtins.property
105
104
  @pulumi.getter(name="statusMessage")
106
- def status_message(self) -> builtins.str:
105
+ def status_message(self) -> _builtins.str:
107
106
  """
108
107
  A human-readable message giving more details about the status of the account.
109
108
  """
110
109
  return pulumi.get(self, "status_message")
111
110
 
112
- @property
111
+ @_builtins.property
113
112
  @pulumi.getter
114
- def uuid(self) -> builtins.str:
113
+ def uuid(self) -> _builtins.str:
115
114
  """
116
115
  The unique universal identifier for the current user.
117
116
  """
@@ -1,9 +1,8 @@
1
1
  # coding=utf-8
2
- # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
3
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
 
5
- import builtins
6
- import copy
5
+ import builtins as _builtins
7
6
  import warnings
8
7
  import sys
9
8
  import pulumi
@@ -67,28 +66,28 @@ class GetAppResult:
67
66
  raise TypeError("Expected argument 'urn' to be a str")
68
67
  pulumi.set(__self__, "urn", urn)
69
68
 
70
- @property
69
+ @_builtins.property
71
70
  @pulumi.getter(name="activeDeploymentId")
72
- def active_deployment_id(self) -> builtins.str:
71
+ def active_deployment_id(self) -> _builtins.str:
73
72
  """
74
73
  The ID the app's currently active deployment.
75
74
  """
76
75
  return pulumi.get(self, "active_deployment_id")
77
76
 
78
- @property
77
+ @_builtins.property
79
78
  @pulumi.getter(name="appId")
80
- def app_id(self) -> builtins.str:
79
+ def app_id(self) -> _builtins.str:
81
80
  return pulumi.get(self, "app_id")
82
81
 
83
- @property
82
+ @_builtins.property
84
83
  @pulumi.getter(name="createdAt")
85
- def created_at(self) -> builtins.str:
84
+ def created_at(self) -> _builtins.str:
86
85
  """
87
86
  The date and time of when the app was created.
88
87
  """
89
88
  return pulumi.get(self, "created_at")
90
89
 
91
- @property
90
+ @_builtins.property
92
91
  @pulumi.getter(name="dedicatedIps")
93
92
  def dedicated_ips(self) -> Sequence['outputs.GetAppDedicatedIpResult']:
94
93
  """
@@ -96,47 +95,47 @@ class GetAppResult:
96
95
  """
97
96
  return pulumi.get(self, "dedicated_ips")
98
97
 
99
- @property
98
+ @_builtins.property
100
99
  @pulumi.getter(name="defaultIngress")
101
- def default_ingress(self) -> builtins.str:
100
+ def default_ingress(self) -> _builtins.str:
102
101
  """
103
102
  The default URL to access the app.
104
103
  """
105
104
  return pulumi.get(self, "default_ingress")
106
105
 
107
- @property
106
+ @_builtins.property
108
107
  @pulumi.getter
109
- def id(self) -> builtins.str:
108
+ def id(self) -> _builtins.str:
110
109
  """
111
110
  The provider-assigned unique ID for this managed resource.
112
111
  """
113
112
  return pulumi.get(self, "id")
114
113
 
115
- @property
114
+ @_builtins.property
116
115
  @pulumi.getter(name="liveDomain")
117
- def live_domain(self) -> builtins.str:
116
+ def live_domain(self) -> _builtins.str:
118
117
  """
119
118
  The live domain of the app.
120
119
  """
121
120
  return pulumi.get(self, "live_domain")
122
121
 
123
- @property
122
+ @_builtins.property
124
123
  @pulumi.getter(name="liveUrl")
125
- def live_url(self) -> builtins.str:
124
+ def live_url(self) -> _builtins.str:
126
125
  """
127
126
  The live URL of the app.
128
127
  """
129
128
  return pulumi.get(self, "live_url")
130
129
 
131
- @property
130
+ @_builtins.property
132
131
  @pulumi.getter(name="projectId")
133
- def project_id(self) -> builtins.str:
132
+ def project_id(self) -> _builtins.str:
134
133
  """
135
134
  The ID of the project that the app is assigned to.
136
135
  """
137
136
  return pulumi.get(self, "project_id")
138
137
 
139
- @property
138
+ @_builtins.property
140
139
  @pulumi.getter
141
140
  def specs(self) -> Sequence['outputs.GetAppSpecResult']:
142
141
  """
@@ -144,17 +143,17 @@ class GetAppResult:
144
143
  """
145
144
  return pulumi.get(self, "specs")
146
145
 
147
- @property
146
+ @_builtins.property
148
147
  @pulumi.getter(name="updatedAt")
149
- def updated_at(self) -> builtins.str:
148
+ def updated_at(self) -> _builtins.str:
150
149
  """
151
150
  The date and time of when the app was last updated.
152
151
  """
153
152
  return pulumi.get(self, "updated_at")
154
153
 
155
- @property
154
+ @_builtins.property
156
155
  @pulumi.getter
157
- def urn(self) -> builtins.str:
156
+ def urn(self) -> _builtins.str:
158
157
  """
159
158
  The uniform resource identifier for the app.
160
159
  """
@@ -181,7 +180,7 @@ class AwaitableGetAppResult(GetAppResult):
181
180
  urn=self.urn)
182
181
 
183
182
 
184
- def get_app(app_id: Optional[builtins.str] = None,
183
+ def get_app(app_id: Optional[_builtins.str] = None,
185
184
  dedicated_ips: Optional[Sequence[Union['GetAppDedicatedIpArgs', 'GetAppDedicatedIpArgsDict']]] = None,
186
185
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAppResult:
187
186
  """
@@ -200,7 +199,7 @@ def get_app(app_id: Optional[builtins.str] = None,
200
199
  ```
201
200
 
202
201
 
203
- :param builtins.str app_id: The ID of the app to retrieve information about.
202
+ :param _builtins.str app_id: The ID of the app to retrieve information about.
204
203
  :param Sequence[Union['GetAppDedicatedIpArgs', 'GetAppDedicatedIpArgsDict']] dedicated_ips: A list of dedicated egress IP addresses associated with the app.
205
204
  """
206
205
  __args__ = dict()
@@ -222,7 +221,7 @@ def get_app(app_id: Optional[builtins.str] = None,
222
221
  specs=pulumi.get(__ret__, 'specs'),
223
222
  updated_at=pulumi.get(__ret__, 'updated_at'),
224
223
  urn=pulumi.get(__ret__, 'urn'))
225
- def get_app_output(app_id: Optional[pulumi.Input[builtins.str]] = None,
224
+ def get_app_output(app_id: Optional[pulumi.Input[_builtins.str]] = None,
226
225
  dedicated_ips: Optional[pulumi.Input[Optional[Sequence[Union['GetAppDedicatedIpArgs', 'GetAppDedicatedIpArgsDict']]]]] = None,
227
226
  opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetAppResult]:
228
227
  """
@@ -241,7 +240,7 @@ def get_app_output(app_id: Optional[pulumi.Input[builtins.str]] = None,
241
240
  ```
242
241
 
243
242
 
244
- :param builtins.str app_id: The ID of the app to retrieve information about.
243
+ :param _builtins.str app_id: The ID of the app to retrieve information about.
245
244
  :param Sequence[Union['GetAppDedicatedIpArgs', 'GetAppDedicatedIpArgsDict']] dedicated_ips: A list of dedicated egress IP addresses associated with the app.
246
245
  """
247
246
  __args__ = dict()
@@ -0,0 +1,214 @@
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__ = [
18
+ 'GetByoipPrefixResult',
19
+ 'AwaitableGetByoipPrefixResult',
20
+ 'get_byoip_prefix',
21
+ 'get_byoip_prefix_output',
22
+ ]
23
+
24
+ @pulumi.output_type
25
+ class GetByoipPrefixResult:
26
+ """
27
+ A collection of values returned by getByoipPrefix.
28
+ """
29
+ def __init__(__self__, advertised=None, failure_reason=None, id=None, prefix=None, region=None, status=None, uuid=None):
30
+ if advertised and not isinstance(advertised, bool):
31
+ raise TypeError("Expected argument 'advertised' to be a bool")
32
+ pulumi.set(__self__, "advertised", advertised)
33
+ if failure_reason and not isinstance(failure_reason, str):
34
+ raise TypeError("Expected argument 'failure_reason' to be a str")
35
+ pulumi.set(__self__, "failure_reason", failure_reason)
36
+ if id and not isinstance(id, str):
37
+ raise TypeError("Expected argument 'id' to be a str")
38
+ pulumi.set(__self__, "id", id)
39
+ if prefix and not isinstance(prefix, str):
40
+ raise TypeError("Expected argument 'prefix' to be a str")
41
+ pulumi.set(__self__, "prefix", prefix)
42
+ if region and not isinstance(region, str):
43
+ raise TypeError("Expected argument 'region' to be a str")
44
+ pulumi.set(__self__, "region", region)
45
+ if status and not isinstance(status, str):
46
+ raise TypeError("Expected argument 'status' to be a str")
47
+ pulumi.set(__self__, "status", status)
48
+ if uuid and not isinstance(uuid, str):
49
+ raise TypeError("Expected argument 'uuid' to be a str")
50
+ pulumi.set(__self__, "uuid", uuid)
51
+
52
+ @_builtins.property
53
+ @pulumi.getter
54
+ def advertised(self) -> _builtins.bool:
55
+ """
56
+ A boolean indicating whether the prefix is currently being advertised.
57
+ """
58
+ return pulumi.get(self, "advertised")
59
+
60
+ @_builtins.property
61
+ @pulumi.getter(name="failureReason")
62
+ def failure_reason(self) -> _builtins.str:
63
+ """
64
+ The reason for failure if the status is "failed".
65
+ """
66
+ return pulumi.get(self, "failure_reason")
67
+
68
+ @_builtins.property
69
+ @pulumi.getter
70
+ def id(self) -> _builtins.str:
71
+ """
72
+ The provider-assigned unique ID for this managed resource.
73
+ """
74
+ return pulumi.get(self, "id")
75
+
76
+ @_builtins.property
77
+ @pulumi.getter
78
+ def prefix(self) -> _builtins.str:
79
+ """
80
+ The CIDR notation of the prefix (e.g., "192.0.2.0/24").
81
+ """
82
+ return pulumi.get(self, "prefix")
83
+
84
+ @_builtins.property
85
+ @pulumi.getter
86
+ def region(self) -> _builtins.str:
87
+ """
88
+ The DigitalOcean region where the prefix is deployed.
89
+ """
90
+ return pulumi.get(self, "region")
91
+
92
+ @_builtins.property
93
+ @pulumi.getter
94
+ def status(self) -> _builtins.str:
95
+ """
96
+ The current status of the BYOIP prefix (e.g., "verified", "pending", "failed").
97
+ """
98
+ return pulumi.get(self, "status")
99
+
100
+ @_builtins.property
101
+ @pulumi.getter
102
+ def uuid(self) -> _builtins.str:
103
+ """
104
+ The UUID of the BYOIP prefix.
105
+ """
106
+ return pulumi.get(self, "uuid")
107
+
108
+
109
+ class AwaitableGetByoipPrefixResult(GetByoipPrefixResult):
110
+ # pylint: disable=using-constant-test
111
+ def __await__(self):
112
+ if False:
113
+ yield self
114
+ return GetByoipPrefixResult(
115
+ advertised=self.advertised,
116
+ failure_reason=self.failure_reason,
117
+ id=self.id,
118
+ prefix=self.prefix,
119
+ region=self.region,
120
+ status=self.status,
121
+ uuid=self.uuid)
122
+
123
+
124
+ def get_byoip_prefix(uuid: Optional[_builtins.str] = None,
125
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetByoipPrefixResult:
126
+ """
127
+ ## Example Usage
128
+
129
+ Get the BYOIP prefix:
130
+
131
+ ```python
132
+ import pulumi
133
+ import pulumi_digitalocean as digitalocean
134
+
135
+ example = digitalocean.get_byoip_prefix(uuid="506f78a4-e098-11e5-ad9f-000f53306ae1")
136
+ ```
137
+
138
+ List assigned IP addresses from a BYOIP prefix:
139
+
140
+ ```python
141
+ import pulumi
142
+ import pulumi_digitalocean as digitalocean
143
+
144
+ example = digitalocean.get_byoip_prefix(uuid="506f78a4-e098-11e5-ad9f-000f53306ae1")
145
+ example_get_byoip_prefix_resources = digitalocean.get_byoip_prefix_resources(byoip_prefix_uuid=example.uuid)
146
+ pulumi.export("byoipInfo", {
147
+ "prefix": example.prefix,
148
+ "region": example.region,
149
+ "status": example.status,
150
+ "assignedCount": len(example_get_byoip_prefix_resources.addresses),
151
+ })
152
+ ```
153
+
154
+
155
+ :param _builtins.str uuid: The UUID of the BYOIP prefix.
156
+ """
157
+ __args__ = dict()
158
+ __args__['uuid'] = uuid
159
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
160
+ __ret__ = pulumi.runtime.invoke('digitalocean:index/getByoipPrefix:getByoipPrefix', __args__, opts=opts, typ=GetByoipPrefixResult).value
161
+
162
+ return AwaitableGetByoipPrefixResult(
163
+ advertised=pulumi.get(__ret__, 'advertised'),
164
+ failure_reason=pulumi.get(__ret__, 'failure_reason'),
165
+ id=pulumi.get(__ret__, 'id'),
166
+ prefix=pulumi.get(__ret__, 'prefix'),
167
+ region=pulumi.get(__ret__, 'region'),
168
+ status=pulumi.get(__ret__, 'status'),
169
+ uuid=pulumi.get(__ret__, 'uuid'))
170
+ def get_byoip_prefix_output(uuid: Optional[pulumi.Input[_builtins.str]] = None,
171
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetByoipPrefixResult]:
172
+ """
173
+ ## Example Usage
174
+
175
+ Get the BYOIP prefix:
176
+
177
+ ```python
178
+ import pulumi
179
+ import pulumi_digitalocean as digitalocean
180
+
181
+ example = digitalocean.get_byoip_prefix(uuid="506f78a4-e098-11e5-ad9f-000f53306ae1")
182
+ ```
183
+
184
+ List assigned IP addresses from a BYOIP prefix:
185
+
186
+ ```python
187
+ import pulumi
188
+ import pulumi_digitalocean as digitalocean
189
+
190
+ example = digitalocean.get_byoip_prefix(uuid="506f78a4-e098-11e5-ad9f-000f53306ae1")
191
+ example_get_byoip_prefix_resources = digitalocean.get_byoip_prefix_resources(byoip_prefix_uuid=example.uuid)
192
+ pulumi.export("byoipInfo", {
193
+ "prefix": example.prefix,
194
+ "region": example.region,
195
+ "status": example.status,
196
+ "assignedCount": len(example_get_byoip_prefix_resources.addresses),
197
+ })
198
+ ```
199
+
200
+
201
+ :param _builtins.str uuid: The UUID of the BYOIP prefix.
202
+ """
203
+ __args__ = dict()
204
+ __args__['uuid'] = uuid
205
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
206
+ __ret__ = pulumi.runtime.invoke_output('digitalocean:index/getByoipPrefix:getByoipPrefix', __args__, opts=opts, typ=GetByoipPrefixResult)
207
+ return __ret__.apply(lambda __response__: GetByoipPrefixResult(
208
+ advertised=pulumi.get(__response__, 'advertised'),
209
+ failure_reason=pulumi.get(__response__, 'failure_reason'),
210
+ id=pulumi.get(__response__, 'id'),
211
+ prefix=pulumi.get(__response__, 'prefix'),
212
+ region=pulumi.get(__response__, 'region'),
213
+ status=pulumi.get(__response__, 'status'),
214
+ uuid=pulumi.get(__response__, 'uuid')))
@@ -0,0 +1,150 @@
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
+ from . import outputs
17
+
18
+ __all__ = [
19
+ 'GetByoipPrefixResourcesResult',
20
+ 'AwaitableGetByoipPrefixResourcesResult',
21
+ 'get_byoip_prefix_resources',
22
+ 'get_byoip_prefix_resources_output',
23
+ ]
24
+
25
+ @pulumi.output_type
26
+ class GetByoipPrefixResourcesResult:
27
+ """
28
+ A collection of values returned by getByoipPrefixResources.
29
+ """
30
+ def __init__(__self__, addresses=None, byoip_prefix_uuid=None, id=None):
31
+ if addresses and not isinstance(addresses, list):
32
+ raise TypeError("Expected argument 'addresses' to be a list")
33
+ pulumi.set(__self__, "addresses", addresses)
34
+ if byoip_prefix_uuid and not isinstance(byoip_prefix_uuid, str):
35
+ raise TypeError("Expected argument 'byoip_prefix_uuid' to be a str")
36
+ pulumi.set(__self__, "byoip_prefix_uuid", byoip_prefix_uuid)
37
+ if id and not isinstance(id, str):
38
+ raise TypeError("Expected argument 'id' to be a str")
39
+ pulumi.set(__self__, "id", id)
40
+
41
+ @_builtins.property
42
+ @pulumi.getter
43
+ def addresses(self) -> Sequence['outputs.GetByoipPrefixResourcesAddressResult']:
44
+ """
45
+ A list of IP addresses allocated from the BYOIP prefix. Each address has the following attributes:
46
+ """
47
+ return pulumi.get(self, "addresses")
48
+
49
+ @_builtins.property
50
+ @pulumi.getter(name="byoipPrefixUuid")
51
+ def byoip_prefix_uuid(self) -> _builtins.str:
52
+ return pulumi.get(self, "byoip_prefix_uuid")
53
+
54
+ @_builtins.property
55
+ @pulumi.getter
56
+ def id(self) -> _builtins.str:
57
+ """
58
+ The provider-assigned unique ID for this managed resource.
59
+ """
60
+ return pulumi.get(self, "id")
61
+
62
+
63
+ class AwaitableGetByoipPrefixResourcesResult(GetByoipPrefixResourcesResult):
64
+ # pylint: disable=using-constant-test
65
+ def __await__(self):
66
+ if False:
67
+ yield self
68
+ return GetByoipPrefixResourcesResult(
69
+ addresses=self.addresses,
70
+ byoip_prefix_uuid=self.byoip_prefix_uuid,
71
+ id=self.id)
72
+
73
+
74
+ def get_byoip_prefix_resources(byoip_prefix_uuid: Optional[_builtins.str] = None,
75
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetByoipPrefixResourcesResult:
76
+ """
77
+ Get information about IP addresses that have been **already assigned** from a
78
+ BYOIP (Bring Your Own IP) prefix. This data source provides a list of all IP addresses
79
+ that are currently assigned to resources from a specific BYOIP prefix.
80
+
81
+ **Note:** This data source only lists IPs that are already assigned to resources (like Droplets).
82
+ To allocate new IPs from the BYOIP prefix, you need to use `ReservedIpAssignment` resource.
83
+
84
+ ## Example Usage
85
+
86
+ List all assigned IP addresses from a BYOIP prefix:
87
+
88
+ ```python
89
+ import pulumi
90
+ import pulumi_digitalocean as digitalocean
91
+
92
+ example = digitalocean.get_byoip_prefix(uuid="506f78a4-e098-11e5-ad9f-000f53306ae1")
93
+ example_get_byoip_prefix_resources = digitalocean.get_byoip_prefix_resources(byoip_prefix_uuid=example.uuid)
94
+ pulumi.export("assignedByoipIps", [{
95
+ "ip": addr.ip_address,
96
+ "region": addr.region,
97
+ "assigned": addr.assigned_at,
98
+ } for addr in example_get_byoip_prefix_resources.addresses])
99
+ ```
100
+
101
+
102
+ :param _builtins.str byoip_prefix_uuid: The UUID of the BYOIP prefix to list addresses from.
103
+ """
104
+ __args__ = dict()
105
+ __args__['byoipPrefixUuid'] = byoip_prefix_uuid
106
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
107
+ __ret__ = pulumi.runtime.invoke('digitalocean:index/getByoipPrefixResources:getByoipPrefixResources', __args__, opts=opts, typ=GetByoipPrefixResourcesResult).value
108
+
109
+ return AwaitableGetByoipPrefixResourcesResult(
110
+ addresses=pulumi.get(__ret__, 'addresses'),
111
+ byoip_prefix_uuid=pulumi.get(__ret__, 'byoip_prefix_uuid'),
112
+ id=pulumi.get(__ret__, 'id'))
113
+ def get_byoip_prefix_resources_output(byoip_prefix_uuid: Optional[pulumi.Input[_builtins.str]] = None,
114
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetByoipPrefixResourcesResult]:
115
+ """
116
+ Get information about IP addresses that have been **already assigned** from a
117
+ BYOIP (Bring Your Own IP) prefix. This data source provides a list of all IP addresses
118
+ that are currently assigned to resources from a specific BYOIP prefix.
119
+
120
+ **Note:** This data source only lists IPs that are already assigned to resources (like Droplets).
121
+ To allocate new IPs from the BYOIP prefix, you need to use `ReservedIpAssignment` resource.
122
+
123
+ ## Example Usage
124
+
125
+ List all assigned IP addresses from a BYOIP prefix:
126
+
127
+ ```python
128
+ import pulumi
129
+ import pulumi_digitalocean as digitalocean
130
+
131
+ example = digitalocean.get_byoip_prefix(uuid="506f78a4-e098-11e5-ad9f-000f53306ae1")
132
+ example_get_byoip_prefix_resources = digitalocean.get_byoip_prefix_resources(byoip_prefix_uuid=example.uuid)
133
+ pulumi.export("assignedByoipIps", [{
134
+ "ip": addr.ip_address,
135
+ "region": addr.region,
136
+ "assigned": addr.assigned_at,
137
+ } for addr in example_get_byoip_prefix_resources.addresses])
138
+ ```
139
+
140
+
141
+ :param _builtins.str byoip_prefix_uuid: The UUID of the BYOIP prefix to list addresses from.
142
+ """
143
+ __args__ = dict()
144
+ __args__['byoipPrefixUuid'] = byoip_prefix_uuid
145
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
146
+ __ret__ = pulumi.runtime.invoke_output('digitalocean:index/getByoipPrefixResources:getByoipPrefixResources', __args__, opts=opts, typ=GetByoipPrefixResourcesResult)
147
+ return __ret__.apply(lambda __response__: GetByoipPrefixResourcesResult(
148
+ addresses=pulumi.get(__response__, 'addresses'),
149
+ byoip_prefix_uuid=pulumi.get(__response__, 'byoip_prefix_uuid'),
150
+ id=pulumi.get(__response__, 'id')))