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
@@ -1,8 +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 copy
5
+ import builtins as _builtins
6
6
  import warnings
7
7
  import sys
8
8
  import pulumi
@@ -19,67 +19,67 @@ __all__ = ['SpacesBucketPolicyArgs', 'SpacesBucketPolicy']
19
19
  @pulumi.input_type
20
20
  class SpacesBucketPolicyArgs:
21
21
  def __init__(__self__, *,
22
- bucket: pulumi.Input[str],
23
- policy: pulumi.Input[str],
24
- region: pulumi.Input[str]):
22
+ bucket: pulumi.Input[_builtins.str],
23
+ policy: pulumi.Input[_builtins.str],
24
+ region: pulumi.Input[_builtins.str]):
25
25
  """
26
26
  The set of arguments for constructing a SpacesBucketPolicy resource.
27
- :param pulumi.Input[str] bucket: The name of the bucket to which to apply the policy.
28
- :param pulumi.Input[str] policy: The text of the policy.
29
- :param pulumi.Input[str] region: The region where the bucket resides.
27
+ :param pulumi.Input[_builtins.str] bucket: The name of the bucket to which to apply the policy.
28
+ :param pulumi.Input[_builtins.str] policy: The text of the policy.
29
+ :param pulumi.Input[_builtins.str] region: The region where the bucket resides.
30
30
  """
31
31
  pulumi.set(__self__, "bucket", bucket)
32
32
  pulumi.set(__self__, "policy", policy)
33
33
  pulumi.set(__self__, "region", region)
34
34
 
35
- @property
35
+ @_builtins.property
36
36
  @pulumi.getter
37
- def bucket(self) -> pulumi.Input[str]:
37
+ def bucket(self) -> pulumi.Input[_builtins.str]:
38
38
  """
39
39
  The name of the bucket to which to apply the policy.
40
40
  """
41
41
  return pulumi.get(self, "bucket")
42
42
 
43
43
  @bucket.setter
44
- def bucket(self, value: pulumi.Input[str]):
44
+ def bucket(self, value: pulumi.Input[_builtins.str]):
45
45
  pulumi.set(self, "bucket", value)
46
46
 
47
- @property
47
+ @_builtins.property
48
48
  @pulumi.getter
49
- def policy(self) -> pulumi.Input[str]:
49
+ def policy(self) -> pulumi.Input[_builtins.str]:
50
50
  """
51
51
  The text of the policy.
52
52
  """
53
53
  return pulumi.get(self, "policy")
54
54
 
55
55
  @policy.setter
56
- def policy(self, value: pulumi.Input[str]):
56
+ def policy(self, value: pulumi.Input[_builtins.str]):
57
57
  pulumi.set(self, "policy", value)
58
58
 
59
- @property
59
+ @_builtins.property
60
60
  @pulumi.getter
61
- def region(self) -> pulumi.Input[str]:
61
+ def region(self) -> pulumi.Input[_builtins.str]:
62
62
  """
63
63
  The region where the bucket resides.
64
64
  """
65
65
  return pulumi.get(self, "region")
66
66
 
67
67
  @region.setter
68
- def region(self, value: pulumi.Input[str]):
68
+ def region(self, value: pulumi.Input[_builtins.str]):
69
69
  pulumi.set(self, "region", value)
70
70
 
71
71
 
72
72
  @pulumi.input_type
73
73
  class _SpacesBucketPolicyState:
74
74
  def __init__(__self__, *,
75
- bucket: Optional[pulumi.Input[str]] = None,
76
- policy: Optional[pulumi.Input[str]] = None,
77
- region: Optional[pulumi.Input[str]] = None):
75
+ bucket: Optional[pulumi.Input[_builtins.str]] = None,
76
+ policy: Optional[pulumi.Input[_builtins.str]] = None,
77
+ region: Optional[pulumi.Input[_builtins.str]] = None):
78
78
  """
79
79
  Input properties used for looking up and filtering SpacesBucketPolicy resources.
80
- :param pulumi.Input[str] bucket: The name of the bucket to which to apply the policy.
81
- :param pulumi.Input[str] policy: The text of the policy.
82
- :param pulumi.Input[str] region: The region where the bucket resides.
80
+ :param pulumi.Input[_builtins.str] bucket: The name of the bucket to which to apply the policy.
81
+ :param pulumi.Input[_builtins.str] policy: The text of the policy.
82
+ :param pulumi.Input[_builtins.str] region: The region where the bucket resides.
83
83
  """
84
84
  if bucket is not None:
85
85
  pulumi.set(__self__, "bucket", bucket)
@@ -88,51 +88,52 @@ class _SpacesBucketPolicyState:
88
88
  if region is not None:
89
89
  pulumi.set(__self__, "region", region)
90
90
 
91
- @property
91
+ @_builtins.property
92
92
  @pulumi.getter
93
- def bucket(self) -> Optional[pulumi.Input[str]]:
93
+ def bucket(self) -> Optional[pulumi.Input[_builtins.str]]:
94
94
  """
95
95
  The name of the bucket to which to apply the policy.
96
96
  """
97
97
  return pulumi.get(self, "bucket")
98
98
 
99
99
  @bucket.setter
100
- def bucket(self, value: Optional[pulumi.Input[str]]):
100
+ def bucket(self, value: Optional[pulumi.Input[_builtins.str]]):
101
101
  pulumi.set(self, "bucket", value)
102
102
 
103
- @property
103
+ @_builtins.property
104
104
  @pulumi.getter
105
- def policy(self) -> Optional[pulumi.Input[str]]:
105
+ def policy(self) -> Optional[pulumi.Input[_builtins.str]]:
106
106
  """
107
107
  The text of the policy.
108
108
  """
109
109
  return pulumi.get(self, "policy")
110
110
 
111
111
  @policy.setter
112
- def policy(self, value: Optional[pulumi.Input[str]]):
112
+ def policy(self, value: Optional[pulumi.Input[_builtins.str]]):
113
113
  pulumi.set(self, "policy", value)
114
114
 
115
- @property
115
+ @_builtins.property
116
116
  @pulumi.getter
117
- def region(self) -> Optional[pulumi.Input[str]]:
117
+ def region(self) -> Optional[pulumi.Input[_builtins.str]]:
118
118
  """
119
119
  The region where the bucket resides.
120
120
  """
121
121
  return pulumi.get(self, "region")
122
122
 
123
123
  @region.setter
124
- def region(self, value: Optional[pulumi.Input[str]]):
124
+ def region(self, value: Optional[pulumi.Input[_builtins.str]]):
125
125
  pulumi.set(self, "region", value)
126
126
 
127
127
 
128
+ @pulumi.type_token("digitalocean:index/spacesBucketPolicy:SpacesBucketPolicy")
128
129
  class SpacesBucketPolicy(pulumi.CustomResource):
129
130
  @overload
130
131
  def __init__(__self__,
131
132
  resource_name: str,
132
133
  opts: Optional[pulumi.ResourceOptions] = None,
133
- bucket: Optional[pulumi.Input[str]] = None,
134
- policy: Optional[pulumi.Input[str]] = None,
135
- region: Optional[pulumi.Input[str]] = None,
134
+ bucket: Optional[pulumi.Input[_builtins.str]] = None,
135
+ policy: Optional[pulumi.Input[_builtins.str]] = None,
136
+ region: Optional[pulumi.Input[_builtins.str]] = None,
136
137
  __props__=None):
137
138
  """
138
139
  ## Example Usage
@@ -182,9 +183,9 @@ class SpacesBucketPolicy(pulumi.CustomResource):
182
183
 
183
184
  :param str resource_name: The name of the resource.
184
185
  :param pulumi.ResourceOptions opts: Options for the resource.
185
- :param pulumi.Input[str] bucket: The name of the bucket to which to apply the policy.
186
- :param pulumi.Input[str] policy: The text of the policy.
187
- :param pulumi.Input[str] region: The region where the bucket resides.
186
+ :param pulumi.Input[_builtins.str] bucket: The name of the bucket to which to apply the policy.
187
+ :param pulumi.Input[_builtins.str] policy: The text of the policy.
188
+ :param pulumi.Input[_builtins.str] region: The region where the bucket resides.
188
189
  """
189
190
  ...
190
191
  @overload
@@ -253,9 +254,9 @@ class SpacesBucketPolicy(pulumi.CustomResource):
253
254
  def _internal_init(__self__,
254
255
  resource_name: str,
255
256
  opts: Optional[pulumi.ResourceOptions] = None,
256
- bucket: Optional[pulumi.Input[str]] = None,
257
- policy: Optional[pulumi.Input[str]] = None,
258
- region: Optional[pulumi.Input[str]] = None,
257
+ bucket: Optional[pulumi.Input[_builtins.str]] = None,
258
+ policy: Optional[pulumi.Input[_builtins.str]] = None,
259
+ region: Optional[pulumi.Input[_builtins.str]] = None,
259
260
  __props__=None):
260
261
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
261
262
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -284,9 +285,9 @@ class SpacesBucketPolicy(pulumi.CustomResource):
284
285
  def get(resource_name: str,
285
286
  id: pulumi.Input[str],
286
287
  opts: Optional[pulumi.ResourceOptions] = None,
287
- bucket: Optional[pulumi.Input[str]] = None,
288
- policy: Optional[pulumi.Input[str]] = None,
289
- region: Optional[pulumi.Input[str]] = None) -> 'SpacesBucketPolicy':
288
+ bucket: Optional[pulumi.Input[_builtins.str]] = None,
289
+ policy: Optional[pulumi.Input[_builtins.str]] = None,
290
+ region: Optional[pulumi.Input[_builtins.str]] = None) -> 'SpacesBucketPolicy':
290
291
  """
291
292
  Get an existing SpacesBucketPolicy resource's state with the given name, id, and optional extra
292
293
  properties used to qualify the lookup.
@@ -294,9 +295,9 @@ class SpacesBucketPolicy(pulumi.CustomResource):
294
295
  :param str resource_name: The unique name of the resulting resource.
295
296
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
296
297
  :param pulumi.ResourceOptions opts: Options for the resource.
297
- :param pulumi.Input[str] bucket: The name of the bucket to which to apply the policy.
298
- :param pulumi.Input[str] policy: The text of the policy.
299
- :param pulumi.Input[str] region: The region where the bucket resides.
298
+ :param pulumi.Input[_builtins.str] bucket: The name of the bucket to which to apply the policy.
299
+ :param pulumi.Input[_builtins.str] policy: The text of the policy.
300
+ :param pulumi.Input[_builtins.str] region: The region where the bucket resides.
300
301
  """
301
302
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
302
303
 
@@ -307,25 +308,25 @@ class SpacesBucketPolicy(pulumi.CustomResource):
307
308
  __props__.__dict__["region"] = region
308
309
  return SpacesBucketPolicy(resource_name, opts=opts, __props__=__props__)
309
310
 
310
- @property
311
+ @_builtins.property
311
312
  @pulumi.getter
312
- def bucket(self) -> pulumi.Output[str]:
313
+ def bucket(self) -> pulumi.Output[_builtins.str]:
313
314
  """
314
315
  The name of the bucket to which to apply the policy.
315
316
  """
316
317
  return pulumi.get(self, "bucket")
317
318
 
318
- @property
319
+ @_builtins.property
319
320
  @pulumi.getter
320
- def policy(self) -> pulumi.Output[str]:
321
+ def policy(self) -> pulumi.Output[_builtins.str]:
321
322
  """
322
323
  The text of the policy.
323
324
  """
324
325
  return pulumi.get(self, "policy")
325
326
 
326
- @property
327
+ @_builtins.property
327
328
  @pulumi.getter
328
- def region(self) -> pulumi.Output[str]:
329
+ def region(self) -> pulumi.Output[_builtins.str]:
329
330
  """
330
331
  The region where the bucket resides.
331
332
  """
@@ -0,0 +1,388 @@
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
+ from ._inputs import *
18
+
19
+ __all__ = ['SpacesKeyArgs', 'SpacesKey']
20
+
21
+ @pulumi.input_type
22
+ class SpacesKeyArgs:
23
+ def __init__(__self__, *,
24
+ grants: Optional[pulumi.Input[Sequence[pulumi.Input['SpacesKeyGrantArgs']]]] = None,
25
+ name: Optional[pulumi.Input[_builtins.str]] = None):
26
+ """
27
+ The set of arguments for constructing a SpacesKey resource.
28
+ :param pulumi.Input[Sequence[pulumi.Input['SpacesKeyGrantArgs']]] grants: A grant for the key (documented below).
29
+ :param pulumi.Input[_builtins.str] name: The name of the key
30
+ """
31
+ if grants is not None:
32
+ pulumi.set(__self__, "grants", grants)
33
+ if name is not None:
34
+ pulumi.set(__self__, "name", name)
35
+
36
+ @_builtins.property
37
+ @pulumi.getter
38
+ def grants(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SpacesKeyGrantArgs']]]]:
39
+ """
40
+ A grant for the key (documented below).
41
+ """
42
+ return pulumi.get(self, "grants")
43
+
44
+ @grants.setter
45
+ def grants(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SpacesKeyGrantArgs']]]]):
46
+ pulumi.set(self, "grants", value)
47
+
48
+ @_builtins.property
49
+ @pulumi.getter
50
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
51
+ """
52
+ The name of the key
53
+ """
54
+ return pulumi.get(self, "name")
55
+
56
+ @name.setter
57
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
58
+ pulumi.set(self, "name", value)
59
+
60
+
61
+ @pulumi.input_type
62
+ class _SpacesKeyState:
63
+ def __init__(__self__, *,
64
+ access_key: Optional[pulumi.Input[_builtins.str]] = None,
65
+ created_at: Optional[pulumi.Input[_builtins.str]] = None,
66
+ grants: Optional[pulumi.Input[Sequence[pulumi.Input['SpacesKeyGrantArgs']]]] = None,
67
+ name: Optional[pulumi.Input[_builtins.str]] = None,
68
+ secret_key: Optional[pulumi.Input[_builtins.str]] = None):
69
+ """
70
+ Input properties used for looking up and filtering SpacesKey resources.
71
+ :param pulumi.Input[_builtins.str] access_key: The access key ID of the key
72
+ :param pulumi.Input[_builtins.str] created_at: The creation time of the key
73
+ :param pulumi.Input[Sequence[pulumi.Input['SpacesKeyGrantArgs']]] grants: A grant for the key (documented below).
74
+ :param pulumi.Input[_builtins.str] name: The name of the key
75
+ :param pulumi.Input[_builtins.str] secret_key: The access key secret of the key
76
+ """
77
+ if access_key is not None:
78
+ pulumi.set(__self__, "access_key", access_key)
79
+ if created_at is not None:
80
+ pulumi.set(__self__, "created_at", created_at)
81
+ if grants is not None:
82
+ pulumi.set(__self__, "grants", grants)
83
+ if name is not None:
84
+ pulumi.set(__self__, "name", name)
85
+ if secret_key is not None:
86
+ pulumi.set(__self__, "secret_key", secret_key)
87
+
88
+ @_builtins.property
89
+ @pulumi.getter(name="accessKey")
90
+ def access_key(self) -> Optional[pulumi.Input[_builtins.str]]:
91
+ """
92
+ The access key ID of the key
93
+ """
94
+ return pulumi.get(self, "access_key")
95
+
96
+ @access_key.setter
97
+ def access_key(self, value: Optional[pulumi.Input[_builtins.str]]):
98
+ pulumi.set(self, "access_key", value)
99
+
100
+ @_builtins.property
101
+ @pulumi.getter(name="createdAt")
102
+ def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
103
+ """
104
+ The creation time of the key
105
+ """
106
+ return pulumi.get(self, "created_at")
107
+
108
+ @created_at.setter
109
+ def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
110
+ pulumi.set(self, "created_at", value)
111
+
112
+ @_builtins.property
113
+ @pulumi.getter
114
+ def grants(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SpacesKeyGrantArgs']]]]:
115
+ """
116
+ A grant for the key (documented below).
117
+ """
118
+ return pulumi.get(self, "grants")
119
+
120
+ @grants.setter
121
+ def grants(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SpacesKeyGrantArgs']]]]):
122
+ pulumi.set(self, "grants", value)
123
+
124
+ @_builtins.property
125
+ @pulumi.getter
126
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
127
+ """
128
+ The name of the key
129
+ """
130
+ return pulumi.get(self, "name")
131
+
132
+ @name.setter
133
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
134
+ pulumi.set(self, "name", value)
135
+
136
+ @_builtins.property
137
+ @pulumi.getter(name="secretKey")
138
+ def secret_key(self) -> Optional[pulumi.Input[_builtins.str]]:
139
+ """
140
+ The access key secret of the key
141
+ """
142
+ return pulumi.get(self, "secret_key")
143
+
144
+ @secret_key.setter
145
+ def secret_key(self, value: Optional[pulumi.Input[_builtins.str]]):
146
+ pulumi.set(self, "secret_key", value)
147
+
148
+
149
+ @pulumi.type_token("digitalocean:index/spacesKey:SpacesKey")
150
+ class SpacesKey(pulumi.CustomResource):
151
+ @overload
152
+ def __init__(__self__,
153
+ resource_name: str,
154
+ opts: Optional[pulumi.ResourceOptions] = None,
155
+ grants: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SpacesKeyGrantArgs', 'SpacesKeyGrantArgsDict']]]]] = None,
156
+ name: Optional[pulumi.Input[_builtins.str]] = None,
157
+ __props__=None):
158
+ """
159
+ Provides a key resource for Spaces, DigitalOcean's object storage product.
160
+
161
+ The [Spaces API](https://docs.digitalocean.com/reference/api/spaces-api/) was
162
+ designed to be interoperable with Amazon's AWS S3 API. This allows users to
163
+ interact with the service while using the tools they already know. Spaces
164
+ mirrors S3's authentication framework and requests to Spaces require a key pair
165
+ similar to Amazon's Access ID and Secret Key.
166
+
167
+ As a Spaces owner, you limit others’ access to your buckets using Spaces access
168
+ keys. Access keys can provide several levels of permissions to create, destroy,
169
+ read, and write to specific associated buckets. However, access keys only limit
170
+ access to certain commands using the S3 API or CLI, not the control panel or
171
+ other DigitalOcean resources.
172
+
173
+ ## Example Usage
174
+
175
+ ### Create a New Key
176
+
177
+ ```python
178
+ import pulumi
179
+ import pulumi_digitalocean as digitalocean
180
+
181
+ foobar = digitalocean.SpacesKey("foobar", name="foobar")
182
+ ```
183
+
184
+ ### Create a New Key with Grants
185
+
186
+ ```python
187
+ import pulumi
188
+ import pulumi_digitalocean as digitalocean
189
+
190
+ foobar = digitalocean.SpacesKey("foobar",
191
+ name="foobar",
192
+ grants=[{
193
+ "bucket": "my-bucket",
194
+ "permission": "read",
195
+ }])
196
+ ```
197
+
198
+ ### Create a New Key with full access
199
+
200
+ ```python
201
+ import pulumi
202
+ import pulumi_digitalocean as digitalocean
203
+
204
+ foobar = digitalocean.SpacesKey("foobar",
205
+ name="foobar",
206
+ grants=[{
207
+ "bucket": "",
208
+ "permission": "fullaccess",
209
+ }])
210
+ ```
211
+
212
+ :param str resource_name: The name of the resource.
213
+ :param pulumi.ResourceOptions opts: Options for the resource.
214
+ :param pulumi.Input[Sequence[pulumi.Input[Union['SpacesKeyGrantArgs', 'SpacesKeyGrantArgsDict']]]] grants: A grant for the key (documented below).
215
+ :param pulumi.Input[_builtins.str] name: The name of the key
216
+ """
217
+ ...
218
+ @overload
219
+ def __init__(__self__,
220
+ resource_name: str,
221
+ args: Optional[SpacesKeyArgs] = None,
222
+ opts: Optional[pulumi.ResourceOptions] = None):
223
+ """
224
+ Provides a key resource for Spaces, DigitalOcean's object storage product.
225
+
226
+ The [Spaces API](https://docs.digitalocean.com/reference/api/spaces-api/) was
227
+ designed to be interoperable with Amazon's AWS S3 API. This allows users to
228
+ interact with the service while using the tools they already know. Spaces
229
+ mirrors S3's authentication framework and requests to Spaces require a key pair
230
+ similar to Amazon's Access ID and Secret Key.
231
+
232
+ As a Spaces owner, you limit others’ access to your buckets using Spaces access
233
+ keys. Access keys can provide several levels of permissions to create, destroy,
234
+ read, and write to specific associated buckets. However, access keys only limit
235
+ access to certain commands using the S3 API or CLI, not the control panel or
236
+ other DigitalOcean resources.
237
+
238
+ ## Example Usage
239
+
240
+ ### Create a New Key
241
+
242
+ ```python
243
+ import pulumi
244
+ import pulumi_digitalocean as digitalocean
245
+
246
+ foobar = digitalocean.SpacesKey("foobar", name="foobar")
247
+ ```
248
+
249
+ ### Create a New Key with Grants
250
+
251
+ ```python
252
+ import pulumi
253
+ import pulumi_digitalocean as digitalocean
254
+
255
+ foobar = digitalocean.SpacesKey("foobar",
256
+ name="foobar",
257
+ grants=[{
258
+ "bucket": "my-bucket",
259
+ "permission": "read",
260
+ }])
261
+ ```
262
+
263
+ ### Create a New Key with full access
264
+
265
+ ```python
266
+ import pulumi
267
+ import pulumi_digitalocean as digitalocean
268
+
269
+ foobar = digitalocean.SpacesKey("foobar",
270
+ name="foobar",
271
+ grants=[{
272
+ "bucket": "",
273
+ "permission": "fullaccess",
274
+ }])
275
+ ```
276
+
277
+ :param str resource_name: The name of the resource.
278
+ :param SpacesKeyArgs args: The arguments to use to populate this resource's properties.
279
+ :param pulumi.ResourceOptions opts: Options for the resource.
280
+ """
281
+ ...
282
+ def __init__(__self__, resource_name: str, *args, **kwargs):
283
+ resource_args, opts = _utilities.get_resource_args_opts(SpacesKeyArgs, pulumi.ResourceOptions, *args, **kwargs)
284
+ if resource_args is not None:
285
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
286
+ else:
287
+ __self__._internal_init(resource_name, *args, **kwargs)
288
+
289
+ def _internal_init(__self__,
290
+ resource_name: str,
291
+ opts: Optional[pulumi.ResourceOptions] = None,
292
+ grants: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SpacesKeyGrantArgs', 'SpacesKeyGrantArgsDict']]]]] = None,
293
+ name: Optional[pulumi.Input[_builtins.str]] = None,
294
+ __props__=None):
295
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
296
+ if not isinstance(opts, pulumi.ResourceOptions):
297
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
298
+ if opts.id is None:
299
+ if __props__ is not None:
300
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
301
+ __props__ = SpacesKeyArgs.__new__(SpacesKeyArgs)
302
+
303
+ __props__.__dict__["grants"] = grants
304
+ __props__.__dict__["name"] = name
305
+ __props__.__dict__["access_key"] = None
306
+ __props__.__dict__["created_at"] = None
307
+ __props__.__dict__["secret_key"] = None
308
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["secretKey"])
309
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
310
+ super(SpacesKey, __self__).__init__(
311
+ 'digitalocean:index/spacesKey:SpacesKey',
312
+ resource_name,
313
+ __props__,
314
+ opts)
315
+
316
+ @staticmethod
317
+ def get(resource_name: str,
318
+ id: pulumi.Input[str],
319
+ opts: Optional[pulumi.ResourceOptions] = None,
320
+ access_key: Optional[pulumi.Input[_builtins.str]] = None,
321
+ created_at: Optional[pulumi.Input[_builtins.str]] = None,
322
+ grants: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SpacesKeyGrantArgs', 'SpacesKeyGrantArgsDict']]]]] = None,
323
+ name: Optional[pulumi.Input[_builtins.str]] = None,
324
+ secret_key: Optional[pulumi.Input[_builtins.str]] = None) -> 'SpacesKey':
325
+ """
326
+ Get an existing SpacesKey resource's state with the given name, id, and optional extra
327
+ properties used to qualify the lookup.
328
+
329
+ :param str resource_name: The unique name of the resulting resource.
330
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
331
+ :param pulumi.ResourceOptions opts: Options for the resource.
332
+ :param pulumi.Input[_builtins.str] access_key: The access key ID of the key
333
+ :param pulumi.Input[_builtins.str] created_at: The creation time of the key
334
+ :param pulumi.Input[Sequence[pulumi.Input[Union['SpacesKeyGrantArgs', 'SpacesKeyGrantArgsDict']]]] grants: A grant for the key (documented below).
335
+ :param pulumi.Input[_builtins.str] name: The name of the key
336
+ :param pulumi.Input[_builtins.str] secret_key: The access key secret of the key
337
+ """
338
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
339
+
340
+ __props__ = _SpacesKeyState.__new__(_SpacesKeyState)
341
+
342
+ __props__.__dict__["access_key"] = access_key
343
+ __props__.__dict__["created_at"] = created_at
344
+ __props__.__dict__["grants"] = grants
345
+ __props__.__dict__["name"] = name
346
+ __props__.__dict__["secret_key"] = secret_key
347
+ return SpacesKey(resource_name, opts=opts, __props__=__props__)
348
+
349
+ @_builtins.property
350
+ @pulumi.getter(name="accessKey")
351
+ def access_key(self) -> pulumi.Output[_builtins.str]:
352
+ """
353
+ The access key ID of the key
354
+ """
355
+ return pulumi.get(self, "access_key")
356
+
357
+ @_builtins.property
358
+ @pulumi.getter(name="createdAt")
359
+ def created_at(self) -> pulumi.Output[_builtins.str]:
360
+ """
361
+ The creation time of the key
362
+ """
363
+ return pulumi.get(self, "created_at")
364
+
365
+ @_builtins.property
366
+ @pulumi.getter
367
+ def grants(self) -> pulumi.Output[Optional[Sequence['outputs.SpacesKeyGrant']]]:
368
+ """
369
+ A grant for the key (documented below).
370
+ """
371
+ return pulumi.get(self, "grants")
372
+
373
+ @_builtins.property
374
+ @pulumi.getter
375
+ def name(self) -> pulumi.Output[_builtins.str]:
376
+ """
377
+ The name of the key
378
+ """
379
+ return pulumi.get(self, "name")
380
+
381
+ @_builtins.property
382
+ @pulumi.getter(name="secretKey")
383
+ def secret_key(self) -> pulumi.Output[_builtins.str]:
384
+ """
385
+ The access key secret of the key
386
+ """
387
+ return pulumi.get(self, "secret_key")
388
+