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,289 @@
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__ = ['NfsAttachmentArgs', 'NfsAttachment']
18
+
19
+ @pulumi.input_type
20
+ class NfsAttachmentArgs:
21
+ def __init__(__self__, *,
22
+ region: pulumi.Input[_builtins.str],
23
+ share_id: pulumi.Input[_builtins.str],
24
+ vpc_id: pulumi.Input[_builtins.str]):
25
+ """
26
+ The set of arguments for constructing a NfsAttachment resource.
27
+ :param pulumi.Input[_builtins.str] share_id: The ID of the NFS share to attach.
28
+ :param pulumi.Input[_builtins.str] vpc_id: The ID of the vpc to attach the NFS share to.
29
+ """
30
+ pulumi.set(__self__, "region", region)
31
+ pulumi.set(__self__, "share_id", share_id)
32
+ pulumi.set(__self__, "vpc_id", vpc_id)
33
+
34
+ @_builtins.property
35
+ @pulumi.getter
36
+ def region(self) -> pulumi.Input[_builtins.str]:
37
+ return pulumi.get(self, "region")
38
+
39
+ @region.setter
40
+ def region(self, value: pulumi.Input[_builtins.str]):
41
+ pulumi.set(self, "region", value)
42
+
43
+ @_builtins.property
44
+ @pulumi.getter(name="shareId")
45
+ def share_id(self) -> pulumi.Input[_builtins.str]:
46
+ """
47
+ The ID of the NFS share to attach.
48
+ """
49
+ return pulumi.get(self, "share_id")
50
+
51
+ @share_id.setter
52
+ def share_id(self, value: pulumi.Input[_builtins.str]):
53
+ pulumi.set(self, "share_id", value)
54
+
55
+ @_builtins.property
56
+ @pulumi.getter(name="vpcId")
57
+ def vpc_id(self) -> pulumi.Input[_builtins.str]:
58
+ """
59
+ The ID of the vpc to attach the NFS share to.
60
+ """
61
+ return pulumi.get(self, "vpc_id")
62
+
63
+ @vpc_id.setter
64
+ def vpc_id(self, value: pulumi.Input[_builtins.str]):
65
+ pulumi.set(self, "vpc_id", value)
66
+
67
+
68
+ @pulumi.input_type
69
+ class _NfsAttachmentState:
70
+ def __init__(__self__, *,
71
+ region: Optional[pulumi.Input[_builtins.str]] = None,
72
+ share_id: Optional[pulumi.Input[_builtins.str]] = None,
73
+ vpc_id: Optional[pulumi.Input[_builtins.str]] = None):
74
+ """
75
+ Input properties used for looking up and filtering NfsAttachment resources.
76
+ :param pulumi.Input[_builtins.str] share_id: The ID of the NFS share to attach.
77
+ :param pulumi.Input[_builtins.str] vpc_id: The ID of the vpc to attach the NFS share to.
78
+ """
79
+ if region is not None:
80
+ pulumi.set(__self__, "region", region)
81
+ if share_id is not None:
82
+ pulumi.set(__self__, "share_id", share_id)
83
+ if vpc_id is not None:
84
+ pulumi.set(__self__, "vpc_id", vpc_id)
85
+
86
+ @_builtins.property
87
+ @pulumi.getter
88
+ def region(self) -> Optional[pulumi.Input[_builtins.str]]:
89
+ return pulumi.get(self, "region")
90
+
91
+ @region.setter
92
+ def region(self, value: Optional[pulumi.Input[_builtins.str]]):
93
+ pulumi.set(self, "region", value)
94
+
95
+ @_builtins.property
96
+ @pulumi.getter(name="shareId")
97
+ def share_id(self) -> Optional[pulumi.Input[_builtins.str]]:
98
+ """
99
+ The ID of the NFS share to attach.
100
+ """
101
+ return pulumi.get(self, "share_id")
102
+
103
+ @share_id.setter
104
+ def share_id(self, value: Optional[pulumi.Input[_builtins.str]]):
105
+ pulumi.set(self, "share_id", value)
106
+
107
+ @_builtins.property
108
+ @pulumi.getter(name="vpcId")
109
+ def vpc_id(self) -> Optional[pulumi.Input[_builtins.str]]:
110
+ """
111
+ The ID of the vpc to attach the NFS share to.
112
+ """
113
+ return pulumi.get(self, "vpc_id")
114
+
115
+ @vpc_id.setter
116
+ def vpc_id(self, value: Optional[pulumi.Input[_builtins.str]]):
117
+ pulumi.set(self, "vpc_id", value)
118
+
119
+
120
+ @pulumi.type_token("digitalocean:index/nfsAttachment:NfsAttachment")
121
+ class NfsAttachment(pulumi.CustomResource):
122
+ @overload
123
+ def __init__(__self__,
124
+ resource_name: str,
125
+ opts: Optional[pulumi.ResourceOptions] = None,
126
+ region: Optional[pulumi.Input[_builtins.str]] = None,
127
+ share_id: Optional[pulumi.Input[_builtins.str]] = None,
128
+ vpc_id: Optional[pulumi.Input[_builtins.str]] = None,
129
+ __props__=None):
130
+ """
131
+ Manages attaching a NFS share to a vpc.
132
+
133
+ ## Example Usage
134
+
135
+ ```python
136
+ import pulumi
137
+ import pulumi_digitalocean as digitalocean
138
+
139
+ foobar = digitalocean.Vpc("foobar",
140
+ name="example-vpc",
141
+ region="atl1")
142
+ foobar_nfs = digitalocean.Nfs("foobar",
143
+ region="atl1",
144
+ name="example-nfs",
145
+ size=50,
146
+ vpc_id=foobar.id)
147
+ foobar_nfs_attachment = digitalocean.NfsAttachment("foobar",
148
+ share_id=foobar_nfs.id,
149
+ vpc_id=foobar.id)
150
+ ```
151
+
152
+ ## Import
153
+
154
+ NFS attachments can be imported using the `share_id` and `vpc_id` separated by a comma, e.g.
155
+
156
+ ```sh
157
+ $ pulumi import digitalocean:index/nfsAttachment:NfsAttachment foobar 506f78a4-e098-11e5-ad9f-000f53306ae1,d1ebc5a4-e098-11e5-ad9f-000f53306ae1
158
+ ```
159
+
160
+ :param str resource_name: The name of the resource.
161
+ :param pulumi.ResourceOptions opts: Options for the resource.
162
+ :param pulumi.Input[_builtins.str] share_id: The ID of the NFS share to attach.
163
+ :param pulumi.Input[_builtins.str] vpc_id: The ID of the vpc to attach the NFS share to.
164
+ """
165
+ ...
166
+ @overload
167
+ def __init__(__self__,
168
+ resource_name: str,
169
+ args: NfsAttachmentArgs,
170
+ opts: Optional[pulumi.ResourceOptions] = None):
171
+ """
172
+ Manages attaching a NFS share to a vpc.
173
+
174
+ ## Example Usage
175
+
176
+ ```python
177
+ import pulumi
178
+ import pulumi_digitalocean as digitalocean
179
+
180
+ foobar = digitalocean.Vpc("foobar",
181
+ name="example-vpc",
182
+ region="atl1")
183
+ foobar_nfs = digitalocean.Nfs("foobar",
184
+ region="atl1",
185
+ name="example-nfs",
186
+ size=50,
187
+ vpc_id=foobar.id)
188
+ foobar_nfs_attachment = digitalocean.NfsAttachment("foobar",
189
+ share_id=foobar_nfs.id,
190
+ vpc_id=foobar.id)
191
+ ```
192
+
193
+ ## Import
194
+
195
+ NFS attachments can be imported using the `share_id` and `vpc_id` separated by a comma, e.g.
196
+
197
+ ```sh
198
+ $ pulumi import digitalocean:index/nfsAttachment:NfsAttachment foobar 506f78a4-e098-11e5-ad9f-000f53306ae1,d1ebc5a4-e098-11e5-ad9f-000f53306ae1
199
+ ```
200
+
201
+ :param str resource_name: The name of the resource.
202
+ :param NfsAttachmentArgs args: The arguments to use to populate this resource's properties.
203
+ :param pulumi.ResourceOptions opts: Options for the resource.
204
+ """
205
+ ...
206
+ def __init__(__self__, resource_name: str, *args, **kwargs):
207
+ resource_args, opts = _utilities.get_resource_args_opts(NfsAttachmentArgs, pulumi.ResourceOptions, *args, **kwargs)
208
+ if resource_args is not None:
209
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
210
+ else:
211
+ __self__._internal_init(resource_name, *args, **kwargs)
212
+
213
+ def _internal_init(__self__,
214
+ resource_name: str,
215
+ opts: Optional[pulumi.ResourceOptions] = None,
216
+ region: Optional[pulumi.Input[_builtins.str]] = None,
217
+ share_id: Optional[pulumi.Input[_builtins.str]] = None,
218
+ vpc_id: Optional[pulumi.Input[_builtins.str]] = None,
219
+ __props__=None):
220
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
221
+ if not isinstance(opts, pulumi.ResourceOptions):
222
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
223
+ if opts.id is None:
224
+ if __props__ is not None:
225
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
226
+ __props__ = NfsAttachmentArgs.__new__(NfsAttachmentArgs)
227
+
228
+ if region is None and not opts.urn:
229
+ raise TypeError("Missing required property 'region'")
230
+ __props__.__dict__["region"] = region
231
+ if share_id is None and not opts.urn:
232
+ raise TypeError("Missing required property 'share_id'")
233
+ __props__.__dict__["share_id"] = share_id
234
+ if vpc_id is None and not opts.urn:
235
+ raise TypeError("Missing required property 'vpc_id'")
236
+ __props__.__dict__["vpc_id"] = vpc_id
237
+ super(NfsAttachment, __self__).__init__(
238
+ 'digitalocean:index/nfsAttachment:NfsAttachment',
239
+ resource_name,
240
+ __props__,
241
+ opts)
242
+
243
+ @staticmethod
244
+ def get(resource_name: str,
245
+ id: pulumi.Input[str],
246
+ opts: Optional[pulumi.ResourceOptions] = None,
247
+ region: Optional[pulumi.Input[_builtins.str]] = None,
248
+ share_id: Optional[pulumi.Input[_builtins.str]] = None,
249
+ vpc_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'NfsAttachment':
250
+ """
251
+ Get an existing NfsAttachment resource's state with the given name, id, and optional extra
252
+ properties used to qualify the lookup.
253
+
254
+ :param str resource_name: The unique name of the resulting resource.
255
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
256
+ :param pulumi.ResourceOptions opts: Options for the resource.
257
+ :param pulumi.Input[_builtins.str] share_id: The ID of the NFS share to attach.
258
+ :param pulumi.Input[_builtins.str] vpc_id: The ID of the vpc to attach the NFS share to.
259
+ """
260
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
261
+
262
+ __props__ = _NfsAttachmentState.__new__(_NfsAttachmentState)
263
+
264
+ __props__.__dict__["region"] = region
265
+ __props__.__dict__["share_id"] = share_id
266
+ __props__.__dict__["vpc_id"] = vpc_id
267
+ return NfsAttachment(resource_name, opts=opts, __props__=__props__)
268
+
269
+ @_builtins.property
270
+ @pulumi.getter
271
+ def region(self) -> pulumi.Output[_builtins.str]:
272
+ return pulumi.get(self, "region")
273
+
274
+ @_builtins.property
275
+ @pulumi.getter(name="shareId")
276
+ def share_id(self) -> pulumi.Output[_builtins.str]:
277
+ """
278
+ The ID of the NFS share to attach.
279
+ """
280
+ return pulumi.get(self, "share_id")
281
+
282
+ @_builtins.property
283
+ @pulumi.getter(name="vpcId")
284
+ def vpc_id(self) -> pulumi.Output[_builtins.str]:
285
+ """
286
+ The ID of the vpc to attach the NFS share to.
287
+ """
288
+ return pulumi.get(self, "vpc_id")
289
+
@@ -0,0 +1,379 @@
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__ = ['NfsSnapshotArgs', 'NfsSnapshot']
18
+
19
+ @pulumi.input_type
20
+ class NfsSnapshotArgs:
21
+ def __init__(__self__, *,
22
+ region: pulumi.Input[_builtins.str],
23
+ share_id: pulumi.Input[_builtins.str],
24
+ name: Optional[pulumi.Input[_builtins.str]] = None):
25
+ """
26
+ The set of arguments for constructing a NfsSnapshot resource.
27
+ :param pulumi.Input[_builtins.str] region: The region where the NFS snapshot will be created.
28
+ :param pulumi.Input[_builtins.str] share_id: The ID of the NFS share to snapshot.
29
+ :param pulumi.Input[_builtins.str] name: A name for the NFS snapshot. Must be lowercase and composed only of numbers, letters, and "-", up to a limit of 64 characters.
30
+ """
31
+ pulumi.set(__self__, "region", region)
32
+ pulumi.set(__self__, "share_id", share_id)
33
+ if name is not None:
34
+ pulumi.set(__self__, "name", name)
35
+
36
+ @_builtins.property
37
+ @pulumi.getter
38
+ def region(self) -> pulumi.Input[_builtins.str]:
39
+ """
40
+ The region where the NFS snapshot will be created.
41
+ """
42
+ return pulumi.get(self, "region")
43
+
44
+ @region.setter
45
+ def region(self, value: pulumi.Input[_builtins.str]):
46
+ pulumi.set(self, "region", value)
47
+
48
+ @_builtins.property
49
+ @pulumi.getter(name="shareId")
50
+ def share_id(self) -> pulumi.Input[_builtins.str]:
51
+ """
52
+ The ID of the NFS share to snapshot.
53
+ """
54
+ return pulumi.get(self, "share_id")
55
+
56
+ @share_id.setter
57
+ def share_id(self, value: pulumi.Input[_builtins.str]):
58
+ pulumi.set(self, "share_id", value)
59
+
60
+ @_builtins.property
61
+ @pulumi.getter
62
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
63
+ """
64
+ A name for the NFS snapshot. Must be lowercase and composed only of numbers, letters, and "-", up to a limit of 64 characters.
65
+ """
66
+ return pulumi.get(self, "name")
67
+
68
+ @name.setter
69
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
70
+ pulumi.set(self, "name", value)
71
+
72
+
73
+ @pulumi.input_type
74
+ class _NfsSnapshotState:
75
+ def __init__(__self__, *,
76
+ created_at: Optional[pulumi.Input[_builtins.str]] = None,
77
+ name: Optional[pulumi.Input[_builtins.str]] = None,
78
+ region: Optional[pulumi.Input[_builtins.str]] = None,
79
+ share_id: Optional[pulumi.Input[_builtins.str]] = None,
80
+ size: Optional[pulumi.Input[_builtins.int]] = None,
81
+ status: Optional[pulumi.Input[_builtins.str]] = None):
82
+ """
83
+ Input properties used for looking up and filtering NfsSnapshot resources.
84
+ :param pulumi.Input[_builtins.str] created_at: The date and time when the snapshot was created.
85
+ :param pulumi.Input[_builtins.str] name: A name for the NFS snapshot. Must be lowercase and composed only of numbers, letters, and "-", up to a limit of 64 characters.
86
+ :param pulumi.Input[_builtins.str] region: The region where the NFS snapshot will be created.
87
+ :param pulumi.Input[_builtins.str] share_id: The ID of the NFS share to snapshot.
88
+ :param pulumi.Input[_builtins.int] size: The size of the snapshot in GiB.
89
+ """
90
+ if created_at is not None:
91
+ pulumi.set(__self__, "created_at", created_at)
92
+ if name is not None:
93
+ pulumi.set(__self__, "name", name)
94
+ if region is not None:
95
+ pulumi.set(__self__, "region", region)
96
+ if share_id is not None:
97
+ pulumi.set(__self__, "share_id", share_id)
98
+ if size is not None:
99
+ pulumi.set(__self__, "size", size)
100
+ if status is not None:
101
+ pulumi.set(__self__, "status", status)
102
+
103
+ @_builtins.property
104
+ @pulumi.getter(name="createdAt")
105
+ def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
106
+ """
107
+ The date and time when the snapshot was created.
108
+ """
109
+ return pulumi.get(self, "created_at")
110
+
111
+ @created_at.setter
112
+ def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
113
+ pulumi.set(self, "created_at", value)
114
+
115
+ @_builtins.property
116
+ @pulumi.getter
117
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
118
+ """
119
+ A name for the NFS snapshot. Must be lowercase and composed only of numbers, letters, and "-", up to a limit of 64 characters.
120
+ """
121
+ return pulumi.get(self, "name")
122
+
123
+ @name.setter
124
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
125
+ pulumi.set(self, "name", value)
126
+
127
+ @_builtins.property
128
+ @pulumi.getter
129
+ def region(self) -> Optional[pulumi.Input[_builtins.str]]:
130
+ """
131
+ The region where the NFS snapshot will be created.
132
+ """
133
+ return pulumi.get(self, "region")
134
+
135
+ @region.setter
136
+ def region(self, value: Optional[pulumi.Input[_builtins.str]]):
137
+ pulumi.set(self, "region", value)
138
+
139
+ @_builtins.property
140
+ @pulumi.getter(name="shareId")
141
+ def share_id(self) -> Optional[pulumi.Input[_builtins.str]]:
142
+ """
143
+ The ID of the NFS share to snapshot.
144
+ """
145
+ return pulumi.get(self, "share_id")
146
+
147
+ @share_id.setter
148
+ def share_id(self, value: Optional[pulumi.Input[_builtins.str]]):
149
+ pulumi.set(self, "share_id", value)
150
+
151
+ @_builtins.property
152
+ @pulumi.getter
153
+ def size(self) -> Optional[pulumi.Input[_builtins.int]]:
154
+ """
155
+ The size of the snapshot in GiB.
156
+ """
157
+ return pulumi.get(self, "size")
158
+
159
+ @size.setter
160
+ def size(self, value: Optional[pulumi.Input[_builtins.int]]):
161
+ pulumi.set(self, "size", value)
162
+
163
+ @_builtins.property
164
+ @pulumi.getter
165
+ def status(self) -> Optional[pulumi.Input[_builtins.str]]:
166
+ return pulumi.get(self, "status")
167
+
168
+ @status.setter
169
+ def status(self, value: Optional[pulumi.Input[_builtins.str]]):
170
+ pulumi.set(self, "status", value)
171
+
172
+
173
+ @pulumi.type_token("digitalocean:index/nfsSnapshot:NfsSnapshot")
174
+ class NfsSnapshot(pulumi.CustomResource):
175
+ @overload
176
+ def __init__(__self__,
177
+ resource_name: str,
178
+ opts: Optional[pulumi.ResourceOptions] = None,
179
+ name: Optional[pulumi.Input[_builtins.str]] = None,
180
+ region: Optional[pulumi.Input[_builtins.str]] = None,
181
+ share_id: Optional[pulumi.Input[_builtins.str]] = None,
182
+ __props__=None):
183
+ """
184
+ Provides a DigitalOcean NFS snapshot which can be used to create new NFS shares.
185
+
186
+ ## Example Usage
187
+
188
+ ```python
189
+ import pulumi
190
+ import pulumi_digitalocean as digitalocean
191
+
192
+ foobar = digitalocean.Vpc("foobar",
193
+ name="example-vpc",
194
+ region="nyc1")
195
+ foobar_nfs = digitalocean.Nfs("foobar",
196
+ region="nyc1",
197
+ name="example-nfs",
198
+ size=50,
199
+ vpc_id=foobar.id)
200
+ foobar_nfs_snapshot = digitalocean.NfsSnapshot("foobar",
201
+ name="example-snapshot",
202
+ share_id=foobar_nfs.id,
203
+ region="nyc1")
204
+ ```
205
+
206
+ ## Import
207
+
208
+ NFS snapshots can be imported using the snapshot ID, e.g.
209
+
210
+ ```sh
211
+ $ pulumi import digitalocean:index/nfsSnapshot:NfsSnapshot foobar 506f78a4-e098-11e5-ad9f-000f53306ae1
212
+ ```
213
+
214
+ :param str resource_name: The name of the resource.
215
+ :param pulumi.ResourceOptions opts: Options for the resource.
216
+ :param pulumi.Input[_builtins.str] name: A name for the NFS snapshot. Must be lowercase and composed only of numbers, letters, and "-", up to a limit of 64 characters.
217
+ :param pulumi.Input[_builtins.str] region: The region where the NFS snapshot will be created.
218
+ :param pulumi.Input[_builtins.str] share_id: The ID of the NFS share to snapshot.
219
+ """
220
+ ...
221
+ @overload
222
+ def __init__(__self__,
223
+ resource_name: str,
224
+ args: NfsSnapshotArgs,
225
+ opts: Optional[pulumi.ResourceOptions] = None):
226
+ """
227
+ Provides a DigitalOcean NFS snapshot which can be used to create new NFS shares.
228
+
229
+ ## Example Usage
230
+
231
+ ```python
232
+ import pulumi
233
+ import pulumi_digitalocean as digitalocean
234
+
235
+ foobar = digitalocean.Vpc("foobar",
236
+ name="example-vpc",
237
+ region="nyc1")
238
+ foobar_nfs = digitalocean.Nfs("foobar",
239
+ region="nyc1",
240
+ name="example-nfs",
241
+ size=50,
242
+ vpc_id=foobar.id)
243
+ foobar_nfs_snapshot = digitalocean.NfsSnapshot("foobar",
244
+ name="example-snapshot",
245
+ share_id=foobar_nfs.id,
246
+ region="nyc1")
247
+ ```
248
+
249
+ ## Import
250
+
251
+ NFS snapshots can be imported using the snapshot ID, e.g.
252
+
253
+ ```sh
254
+ $ pulumi import digitalocean:index/nfsSnapshot:NfsSnapshot foobar 506f78a4-e098-11e5-ad9f-000f53306ae1
255
+ ```
256
+
257
+ :param str resource_name: The name of the resource.
258
+ :param NfsSnapshotArgs args: The arguments to use to populate this resource's properties.
259
+ :param pulumi.ResourceOptions opts: Options for the resource.
260
+ """
261
+ ...
262
+ def __init__(__self__, resource_name: str, *args, **kwargs):
263
+ resource_args, opts = _utilities.get_resource_args_opts(NfsSnapshotArgs, pulumi.ResourceOptions, *args, **kwargs)
264
+ if resource_args is not None:
265
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
266
+ else:
267
+ __self__._internal_init(resource_name, *args, **kwargs)
268
+
269
+ def _internal_init(__self__,
270
+ resource_name: str,
271
+ opts: Optional[pulumi.ResourceOptions] = None,
272
+ name: Optional[pulumi.Input[_builtins.str]] = None,
273
+ region: Optional[pulumi.Input[_builtins.str]] = None,
274
+ share_id: Optional[pulumi.Input[_builtins.str]] = None,
275
+ __props__=None):
276
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
277
+ if not isinstance(opts, pulumi.ResourceOptions):
278
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
279
+ if opts.id is None:
280
+ if __props__ is not None:
281
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
282
+ __props__ = NfsSnapshotArgs.__new__(NfsSnapshotArgs)
283
+
284
+ __props__.__dict__["name"] = name
285
+ if region is None and not opts.urn:
286
+ raise TypeError("Missing required property 'region'")
287
+ __props__.__dict__["region"] = region
288
+ if share_id is None and not opts.urn:
289
+ raise TypeError("Missing required property 'share_id'")
290
+ __props__.__dict__["share_id"] = share_id
291
+ __props__.__dict__["created_at"] = None
292
+ __props__.__dict__["size"] = None
293
+ __props__.__dict__["status"] = None
294
+ super(NfsSnapshot, __self__).__init__(
295
+ 'digitalocean:index/nfsSnapshot:NfsSnapshot',
296
+ resource_name,
297
+ __props__,
298
+ opts)
299
+
300
+ @staticmethod
301
+ def get(resource_name: str,
302
+ id: pulumi.Input[str],
303
+ opts: Optional[pulumi.ResourceOptions] = None,
304
+ created_at: Optional[pulumi.Input[_builtins.str]] = None,
305
+ name: Optional[pulumi.Input[_builtins.str]] = None,
306
+ region: Optional[pulumi.Input[_builtins.str]] = None,
307
+ share_id: Optional[pulumi.Input[_builtins.str]] = None,
308
+ size: Optional[pulumi.Input[_builtins.int]] = None,
309
+ status: Optional[pulumi.Input[_builtins.str]] = None) -> 'NfsSnapshot':
310
+ """
311
+ Get an existing NfsSnapshot resource's state with the given name, id, and optional extra
312
+ properties used to qualify the lookup.
313
+
314
+ :param str resource_name: The unique name of the resulting resource.
315
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
316
+ :param pulumi.ResourceOptions opts: Options for the resource.
317
+ :param pulumi.Input[_builtins.str] created_at: The date and time when the snapshot was created.
318
+ :param pulumi.Input[_builtins.str] name: A name for the NFS snapshot. Must be lowercase and composed only of numbers, letters, and "-", up to a limit of 64 characters.
319
+ :param pulumi.Input[_builtins.str] region: The region where the NFS snapshot will be created.
320
+ :param pulumi.Input[_builtins.str] share_id: The ID of the NFS share to snapshot.
321
+ :param pulumi.Input[_builtins.int] size: The size of the snapshot in GiB.
322
+ """
323
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
324
+
325
+ __props__ = _NfsSnapshotState.__new__(_NfsSnapshotState)
326
+
327
+ __props__.__dict__["created_at"] = created_at
328
+ __props__.__dict__["name"] = name
329
+ __props__.__dict__["region"] = region
330
+ __props__.__dict__["share_id"] = share_id
331
+ __props__.__dict__["size"] = size
332
+ __props__.__dict__["status"] = status
333
+ return NfsSnapshot(resource_name, opts=opts, __props__=__props__)
334
+
335
+ @_builtins.property
336
+ @pulumi.getter(name="createdAt")
337
+ def created_at(self) -> pulumi.Output[_builtins.str]:
338
+ """
339
+ The date and time when the snapshot was created.
340
+ """
341
+ return pulumi.get(self, "created_at")
342
+
343
+ @_builtins.property
344
+ @pulumi.getter
345
+ def name(self) -> pulumi.Output[_builtins.str]:
346
+ """
347
+ A name for the NFS snapshot. Must be lowercase and composed only of numbers, letters, and "-", up to a limit of 64 characters.
348
+ """
349
+ return pulumi.get(self, "name")
350
+
351
+ @_builtins.property
352
+ @pulumi.getter
353
+ def region(self) -> pulumi.Output[_builtins.str]:
354
+ """
355
+ The region where the NFS snapshot will be created.
356
+ """
357
+ return pulumi.get(self, "region")
358
+
359
+ @_builtins.property
360
+ @pulumi.getter(name="shareId")
361
+ def share_id(self) -> pulumi.Output[_builtins.str]:
362
+ """
363
+ The ID of the NFS share to snapshot.
364
+ """
365
+ return pulumi.get(self, "share_id")
366
+
367
+ @_builtins.property
368
+ @pulumi.getter
369
+ def size(self) -> pulumi.Output[_builtins.int]:
370
+ """
371
+ The size of the snapshot in GiB.
372
+ """
373
+ return pulumi.get(self, "size")
374
+
375
+ @_builtins.property
376
+ @pulumi.getter
377
+ def status(self) -> pulumi.Output[_builtins.str]:
378
+ return pulumi.get(self, "status")
379
+