@pulumi/digitalocean 4.7.0-alpha.1633346817

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 (240) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +68 -0
  3. package/app.d.ts +203 -0
  4. package/app.js +174 -0
  5. package/app.js.map +1 -0
  6. package/cdn.d.ts +169 -0
  7. package/cdn.js +116 -0
  8. package/cdn.js.map +1 -0
  9. package/certificate.d.ts +225 -0
  10. package/certificate.js +137 -0
  11. package/certificate.js.map +1 -0
  12. package/config/index.d.ts +1 -0
  13. package/config/index.js +10 -0
  14. package/config/index.js.map +1 -0
  15. package/config/vars.d.ts +20 -0
  16. package/config/vars.js +28 -0
  17. package/config/vars.js.map +1 -0
  18. package/containerRegistry.d.ts +88 -0
  19. package/containerRegistry.js +83 -0
  20. package/containerRegistry.js.map +1 -0
  21. package/containerRegistryDockerCredentials.d.ts +108 -0
  22. package/containerRegistryDockerCredentials.js +93 -0
  23. package/containerRegistryDockerCredentials.js.map +1 -0
  24. package/customImage.d.ts +155 -0
  25. package/customImage.js +113 -0
  26. package/customImage.js.map +1 -0
  27. package/databaseCluster.d.ts +306 -0
  28. package/databaseCluster.js +165 -0
  29. package/databaseCluster.js.map +1 -0
  30. package/databaseConnectionPool.d.ts +189 -0
  31. package/databaseConnectionPool.js +120 -0
  32. package/databaseConnectionPool.js.map +1 -0
  33. package/databaseDb.d.ts +87 -0
  34. package/databaseDb.js +82 -0
  35. package/databaseDb.js.map +1 -0
  36. package/databaseFirewall.d.ts +129 -0
  37. package/databaseFirewall.js +126 -0
  38. package/databaseFirewall.js.map +1 -0
  39. package/databaseReplica.d.ts +204 -0
  40. package/databaseReplica.js +110 -0
  41. package/databaseReplica.js.map +1 -0
  42. package/databaseUser.d.ts +117 -0
  43. package/databaseUser.js +90 -0
  44. package/databaseUser.js.map +1 -0
  45. package/dnsRecord.d.ts +200 -0
  46. package/dnsRecord.js +114 -0
  47. package/dnsRecord.js.map +1 -0
  48. package/domain.d.ts +103 -0
  49. package/domain.js +83 -0
  50. package/domain.js.map +1 -0
  51. package/droplet.d.ts +386 -0
  52. package/droplet.js +137 -0
  53. package/droplet.js.map +1 -0
  54. package/dropletSnapshot.d.ts +117 -0
  55. package/dropletSnapshot.js +88 -0
  56. package/dropletSnapshot.js.map +1 -0
  57. package/firewall.d.ts +226 -0
  58. package/firewall.js +150 -0
  59. package/firewall.js.map +1 -0
  60. package/floatingIp.d.ts +112 -0
  61. package/floatingIp.js +91 -0
  62. package/floatingIp.js.map +1 -0
  63. package/floatingIpAssignment.d.ts +85 -0
  64. package/floatingIpAssignment.js +83 -0
  65. package/floatingIpAssignment.js.map +1 -0
  66. package/getAccount.d.ts +32 -0
  67. package/getAccount.js +31 -0
  68. package/getAccount.js.map +1 -0
  69. package/getApp.d.ts +63 -0
  70. package/getApp.js +36 -0
  71. package/getApp.js.map +1 -0
  72. package/getCertificate.d.ts +48 -0
  73. package/getCertificate.js +40 -0
  74. package/getCertificate.js.map +1 -0
  75. package/getContainerRegistry.d.ts +54 -0
  76. package/getContainerRegistry.js +41 -0
  77. package/getContainerRegistry.js.map +1 -0
  78. package/getDatabaseCluster.d.ts +103 -0
  79. package/getDatabaseCluster.js +35 -0
  80. package/getDatabaseCluster.js.map +1 -0
  81. package/getDatabaseReplica.d.ts +87 -0
  82. package/getDatabaseReplica.js +40 -0
  83. package/getDatabaseReplica.js.map +1 -0
  84. package/getDomain.d.ts +37 -0
  85. package/getDomain.js +28 -0
  86. package/getDomain.js.map +1 -0
  87. package/getDomains.d.ts +61 -0
  88. package/getDomains.js +49 -0
  89. package/getDomains.js.map +1 -0
  90. package/getDroplet.d.ts +161 -0
  91. package/getDroplet.js +67 -0
  92. package/getDroplet.js.map +1 -0
  93. package/getDropletSnapshot.d.ts +76 -0
  94. package/getDropletSnapshot.js +43 -0
  95. package/getDropletSnapshot.js.map +1 -0
  96. package/getDroplets.d.ts +85 -0
  97. package/getDroplets.js +73 -0
  98. package/getDroplets.js.map +1 -0
  99. package/getFirewall.d.ts +83 -0
  100. package/getFirewall.js +40 -0
  101. package/getFirewall.js.map +1 -0
  102. package/getFloatingIp.d.ts +48 -0
  103. package/getFloatingIp.js +43 -0
  104. package/getFloatingIp.js.map +1 -0
  105. package/getImage.d.ts +110 -0
  106. package/getImage.js +71 -0
  107. package/getImage.js.map +1 -0
  108. package/getImages.d.ts +90 -0
  109. package/getImages.js +74 -0
  110. package/getImages.js.map +1 -0
  111. package/getKubernetesCluster.d.ts +95 -0
  112. package/getKubernetesCluster.js +23 -0
  113. package/getKubernetesCluster.js.map +1 -0
  114. package/getKubernetesVersions.d.ts +79 -0
  115. package/getKubernetesVersions.js +70 -0
  116. package/getKubernetesVersions.js.map +1 -0
  117. package/getLoadBalancer.d.ts +59 -0
  118. package/getLoadBalancer.js +41 -0
  119. package/getLoadBalancer.js.map +1 -0
  120. package/getProject.d.ts +72 -0
  121. package/getProject.js +37 -0
  122. package/getProject.js.map +1 -0
  123. package/getProjects.d.ts +85 -0
  124. package/getProjects.js +72 -0
  125. package/getProjects.js.map +1 -0
  126. package/getRecord.d.ts +42 -0
  127. package/getRecord.js +28 -0
  128. package/getRecord.js.map +1 -0
  129. package/getRecords.d.ts +39 -0
  130. package/getRecords.js +25 -0
  131. package/getRecords.js.map +1 -0
  132. package/getRegion.d.ts +56 -0
  133. package/getRegion.js +35 -0
  134. package/getRegion.js.map +1 -0
  135. package/getRegions.d.ts +82 -0
  136. package/getRegions.js +70 -0
  137. package/getRegions.js.map +1 -0
  138. package/getSizes.d.ts +35 -0
  139. package/getSizes.js +26 -0
  140. package/getSizes.js.map +1 -0
  141. package/getSpacesBucket.d.ts +59 -0
  142. package/getSpacesBucket.js +39 -0
  143. package/getSpacesBucket.js.map +1 -0
  144. package/getSpacesBucketObject.d.ts +125 -0
  145. package/getSpacesBucketObject.js +53 -0
  146. package/getSpacesBucketObject.js.map +1 -0
  147. package/getSpacesBucketObjects.d.ts +83 -0
  148. package/getSpacesBucketObjects.js +49 -0
  149. package/getSpacesBucketObjects.js.map +1 -0
  150. package/getSpacesBuckets.d.ts +75 -0
  151. package/getSpacesBuckets.js +63 -0
  152. package/getSpacesBuckets.js.map +1 -0
  153. package/getSshKey.d.ts +47 -0
  154. package/getSshKey.js +46 -0
  155. package/getSshKey.js.map +1 -0
  156. package/getSshKeys.d.ts +58 -0
  157. package/getSshKeys.js +46 -0
  158. package/getSshKeys.js.map +1 -0
  159. package/getTag.d.ts +71 -0
  160. package/getTag.js +45 -0
  161. package/getTag.js.map +1 -0
  162. package/getTags.d.ts +50 -0
  163. package/getTags.js +41 -0
  164. package/getTags.js.map +1 -0
  165. package/getVolume.d.ts +98 -0
  166. package/getVolume.js +64 -0
  167. package/getVolume.js.map +1 -0
  168. package/getVolumeSnapshot.d.ts +98 -0
  169. package/getVolumeSnapshot.js +61 -0
  170. package/getVolumeSnapshot.js.map +1 -0
  171. package/getVpc.d.ts +95 -0
  172. package/getVpc.js +61 -0
  173. package/getVpc.js.map +1 -0
  174. package/index.d.ts +74 -0
  175. package/index.js +240 -0
  176. package/index.js.map +1 -0
  177. package/kubernetesCluster.d.ts +220 -0
  178. package/kubernetesCluster.js +102 -0
  179. package/kubernetesCluster.js.map +1 -0
  180. package/kubernetesNodePool.d.ts +242 -0
  181. package/kubernetesNodePool.js +141 -0
  182. package/kubernetesNodePool.js.map +1 -0
  183. package/loadBalancer.d.ts +307 -0
  184. package/loadBalancer.js +161 -0
  185. package/loadBalancer.js.map +1 -0
  186. package/monitorAlert.d.ts +193 -0
  187. package/monitorAlert.js +99 -0
  188. package/monitorAlert.js.map +1 -0
  189. package/package.json +28 -0
  190. package/package.json.bak +27 -0
  191. package/package.json.dev +27 -0
  192. package/project.d.ts +191 -0
  193. package/project.js +129 -0
  194. package/project.js.map +1 -0
  195. package/projectResources.d.ts +100 -0
  196. package/projectResources.js +98 -0
  197. package/projectResources.js.map +1 -0
  198. package/provider.d.ts +67 -0
  199. package/provider.js +51 -0
  200. package/provider.js.map +1 -0
  201. package/scripts/install-pulumi-plugin.js +21 -0
  202. package/spacesBucket.d.ts +210 -0
  203. package/spacesBucket.js +139 -0
  204. package/spacesBucket.js.map +1 -0
  205. package/spacesBucketObject.d.ts +293 -0
  206. package/spacesBucketObject.js +139 -0
  207. package/spacesBucketObject.js.map +1 -0
  208. package/sshKey.d.ts +103 -0
  209. package/sshKey.js +89 -0
  210. package/sshKey.js.map +1 -0
  211. package/tag.d.ts +127 -0
  212. package/tag.js +93 -0
  213. package/tag.js.map +1 -0
  214. package/types/enums/index.d.ts +151 -0
  215. package/types/enums/index.js +148 -0
  216. package/types/enums/index.js.map +1 -0
  217. package/types/index.d.ts +4 -0
  218. package/types/index.js +12 -0
  219. package/types/index.js.map +1 -0
  220. package/types/input.d.ts +1584 -0
  221. package/types/input.js +5 -0
  222. package/types/input.js.map +1 -0
  223. package/types/output.d.ts +2730 -0
  224. package/types/output.js +5 -0
  225. package/types/output.js.map +1 -0
  226. package/utilities.d.ts +4 -0
  227. package/utilities.js +51 -0
  228. package/utilities.js.map +1 -0
  229. package/volume.d.ts +225 -0
  230. package/volume.js +128 -0
  231. package/volume.js.map +1 -0
  232. package/volumeAttachment.d.ts +88 -0
  233. package/volumeAttachment.js +86 -0
  234. package/volumeAttachment.js.map +1 -0
  235. package/volumeSnapshot.d.ts +129 -0
  236. package/volumeSnapshot.js +90 -0
  237. package/volumeSnapshot.js.map +1 -0
  238. package/vpc.d.ts +152 -0
  239. package/vpc.js +109 -0
  240. package/vpc.js.map +1 -0
@@ -0,0 +1,2730 @@
1
+ import { output as outputs } from "../types";
2
+ export interface AppSpec {
3
+ databases?: outputs.AppSpecDatabase[];
4
+ /**
5
+ * Describes a domain where the application will be made available.
6
+ */
7
+ domainNames: outputs.AppSpecDomainName[];
8
+ /**
9
+ * @deprecated This attribute has been replaced by `domain` which supports additional functionality.
10
+ */
11
+ domains: string[];
12
+ /**
13
+ * Describes an environment variable made available to an app competent.
14
+ */
15
+ envs?: outputs.AppSpecEnv[];
16
+ jobs?: outputs.AppSpecJob[];
17
+ /**
18
+ * The name of the component.
19
+ */
20
+ name: string;
21
+ /**
22
+ * The slug for the DigitalOcean data center region hosting the app.
23
+ */
24
+ region?: string;
25
+ services?: outputs.AppSpecService[];
26
+ staticSites?: outputs.AppSpecStaticSite[];
27
+ workers?: outputs.AppSpecWorker[];
28
+ }
29
+ export interface AppSpecDatabase {
30
+ /**
31
+ * The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `clusterName` is not set, a new cluster will be provisioned.
32
+ */
33
+ clusterName?: string;
34
+ /**
35
+ * The name of the MySQL or PostgreSQL database to configure.
36
+ */
37
+ dbName?: string;
38
+ /**
39
+ * The name of the MySQL or PostgreSQL user to configure.
40
+ */
41
+ dbUser?: string;
42
+ /**
43
+ * The database engine to use (`MYSQL`, `PG`, or `REDIS`).
44
+ */
45
+ engine?: string;
46
+ /**
47
+ * The name of the component.
48
+ */
49
+ name?: string;
50
+ /**
51
+ * Whether this is a production or dev database.
52
+ */
53
+ production?: boolean;
54
+ /**
55
+ * The version of the database engine.
56
+ */
57
+ version?: string;
58
+ }
59
+ export interface AppSpecDomainName {
60
+ /**
61
+ * The name of the component.
62
+ */
63
+ name: string;
64
+ /**
65
+ * The type of the environment variable, `GENERAL` or `SECRET`.
66
+ */
67
+ type: string;
68
+ /**
69
+ * A boolean indicating whether the domain includes all sub-domains, in addition to the given domain.
70
+ */
71
+ wildcard: boolean;
72
+ /**
73
+ * If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account.
74
+ */
75
+ zone?: string;
76
+ }
77
+ export interface AppSpecEnv {
78
+ /**
79
+ * The name of the environment variable.
80
+ */
81
+ key?: string;
82
+ /**
83
+ * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
84
+ */
85
+ scope?: string;
86
+ /**
87
+ * The type of the environment variable, `GENERAL` or `SECRET`.
88
+ */
89
+ type: string;
90
+ /**
91
+ * The value of the environment variable.
92
+ */
93
+ value?: string;
94
+ }
95
+ export interface AppSpecJob {
96
+ /**
97
+ * An optional build command to run while building this component from source.
98
+ */
99
+ buildCommand?: string;
100
+ /**
101
+ * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
102
+ */
103
+ dockerfilePath?: string;
104
+ /**
105
+ * An environment slug describing the type of this app.
106
+ */
107
+ environmentSlug?: string;
108
+ /**
109
+ * Describes an environment variable made available to an app competent.
110
+ */
111
+ envs?: outputs.AppSpecJobEnv[];
112
+ /**
113
+ * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set
114
+ */
115
+ git?: outputs.AppSpecJobGit;
116
+ /**
117
+ * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
118
+ */
119
+ github?: outputs.AppSpecJobGithub;
120
+ /**
121
+ * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
122
+ */
123
+ gitlab?: outputs.AppSpecJobGitlab;
124
+ /**
125
+ * An image to use as the component's source. Only one of `git`, `github`, `gitlab`, or `image` may be set.
126
+ */
127
+ image?: outputs.AppSpecJobImage;
128
+ /**
129
+ * The amount of instances that this component should be scaled to.
130
+ */
131
+ instanceCount?: number;
132
+ /**
133
+ * The instance size to use for this component. This determines the plan (basic or professional) and the available CPU and memory. The list of available instance sizes can be [found with the API](https://docs.digitalocean.com/reference/api/api-reference/#operation/list_instance_sizes) or using the [doctl CLI](https://docs.digitalocean.com/reference/doctl/) (`doctl apps tier instance-size list`). Default: `basic-xxs`
134
+ */
135
+ instanceSizeSlug?: string;
136
+ /**
137
+ * The type of job and when it will be run during the deployment process. It may be one of:
138
+ * - `UNSPECIFIED`: Default job type, will auto-complete to POST_DEPLOY kind.
139
+ * - `PRE_DEPLOY`: Indicates a job that runs before an app deployment.
140
+ * - `POST_DEPLOY`: Indicates a job that runs after an app deployment.
141
+ * - `FAILED_DEPLOY`: Indicates a job that runs after a component fails to deploy.
142
+ */
143
+ kind?: string;
144
+ /**
145
+ * The name of the component.
146
+ */
147
+ name: string;
148
+ /**
149
+ * An optional run command to override the component's default.
150
+ */
151
+ runCommand?: string;
152
+ /**
153
+ * An optional path to the working directory to use for the build.
154
+ */
155
+ sourceDir?: string;
156
+ }
157
+ export interface AppSpecJobEnv {
158
+ /**
159
+ * The name of the environment variable.
160
+ */
161
+ key?: string;
162
+ /**
163
+ * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
164
+ */
165
+ scope?: string;
166
+ /**
167
+ * The type of the environment variable, `GENERAL` or `SECRET`.
168
+ */
169
+ type: string;
170
+ /**
171
+ * The value of the environment variable.
172
+ */
173
+ value?: string;
174
+ }
175
+ export interface AppSpecJobGit {
176
+ /**
177
+ * The name of the branch to use.
178
+ */
179
+ branch?: string;
180
+ /**
181
+ * The clone URL of the repo.
182
+ */
183
+ repoCloneUrl?: string;
184
+ }
185
+ export interface AppSpecJobGithub {
186
+ /**
187
+ * The name of the branch to use.
188
+ */
189
+ branch?: string;
190
+ /**
191
+ * Whether to automatically deploy new commits made to the repo.
192
+ */
193
+ deployOnPush?: boolean;
194
+ /**
195
+ * The name of the repo in the format `owner/repo`.
196
+ */
197
+ repo?: string;
198
+ }
199
+ export interface AppSpecJobGitlab {
200
+ /**
201
+ * The name of the branch to use.
202
+ */
203
+ branch?: string;
204
+ /**
205
+ * Whether to automatically deploy new commits made to the repo.
206
+ */
207
+ deployOnPush?: boolean;
208
+ /**
209
+ * The name of the repo in the format `owner/repo`.
210
+ */
211
+ repo?: string;
212
+ }
213
+ export interface AppSpecJobImage {
214
+ /**
215
+ * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
216
+ */
217
+ registry?: string;
218
+ /**
219
+ * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
220
+ */
221
+ registryType: string;
222
+ /**
223
+ * The repository name.
224
+ */
225
+ repository: string;
226
+ /**
227
+ * The repository tag. Defaults to `latest` if not provided.
228
+ */
229
+ tag?: string;
230
+ }
231
+ export interface AppSpecService {
232
+ /**
233
+ * An optional build command to run while building this component from source.
234
+ */
235
+ buildCommand?: string;
236
+ /**
237
+ * The [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies of the app.
238
+ */
239
+ cors?: outputs.AppSpecServiceCors;
240
+ /**
241
+ * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
242
+ */
243
+ dockerfilePath?: string;
244
+ /**
245
+ * An environment slug describing the type of this app.
246
+ */
247
+ environmentSlug?: string;
248
+ /**
249
+ * Describes an environment variable made available to an app competent.
250
+ */
251
+ envs?: outputs.AppSpecServiceEnv[];
252
+ /**
253
+ * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set
254
+ */
255
+ git?: outputs.AppSpecServiceGit;
256
+ /**
257
+ * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
258
+ */
259
+ github?: outputs.AppSpecServiceGithub;
260
+ /**
261
+ * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
262
+ */
263
+ gitlab?: outputs.AppSpecServiceGitlab;
264
+ /**
265
+ * A health check to determine the availability of this component.
266
+ */
267
+ healthCheck?: outputs.AppSpecServiceHealthCheck;
268
+ /**
269
+ * The internal port on which this service's run command will listen.
270
+ */
271
+ httpPort: number;
272
+ /**
273
+ * An image to use as the component's source. Only one of `git`, `github`, `gitlab`, or `image` may be set.
274
+ */
275
+ image?: outputs.AppSpecServiceImage;
276
+ /**
277
+ * The amount of instances that this component should be scaled to.
278
+ */
279
+ instanceCount?: number;
280
+ /**
281
+ * The instance size to use for this component. This determines the plan (basic or professional) and the available CPU and memory. The list of available instance sizes can be [found with the API](https://docs.digitalocean.com/reference/api/api-reference/#operation/list_instance_sizes) or using the [doctl CLI](https://docs.digitalocean.com/reference/doctl/) (`doctl apps tier instance-size list`). Default: `basic-xxs`
282
+ */
283
+ instanceSizeSlug?: string;
284
+ /**
285
+ * A list of ports on which this service will listen for internal traffic.
286
+ */
287
+ internalPorts?: number[];
288
+ /**
289
+ * The name of the component.
290
+ */
291
+ name: string;
292
+ routes: outputs.AppSpecServiceRoute[];
293
+ /**
294
+ * An optional run command to override the component's default.
295
+ */
296
+ runCommand: string;
297
+ /**
298
+ * An optional path to the working directory to use for the build.
299
+ */
300
+ sourceDir?: string;
301
+ }
302
+ export interface AppSpecServiceCors {
303
+ /**
304
+ * Whether browsers should expose the response to the client-side JavaScript code when the request's credentials mode is `include`. This configures the `Access-Control-Allow-Credentials` header.
305
+ */
306
+ allowCredentials?: boolean;
307
+ /**
308
+ * The set of allowed HTTP request headers. This configures the `Access-Control-Allow-Headers` header.
309
+ */
310
+ allowHeaders?: string[];
311
+ /**
312
+ * The set of allowed HTTP methods. This configures the `Access-Control-Allow-Methods` header.
313
+ */
314
+ allowMethods?: string[];
315
+ /**
316
+ * The `Access-Control-Allow-Origin` can be
317
+ */
318
+ allowOrigins?: outputs.AppSpecServiceCorsAllowOrigins;
319
+ /**
320
+ * The set of HTTP response headers that browsers are allowed to access. This configures the `Access-Control-Expose-Headers` header.
321
+ */
322
+ exposeHeaders?: string[];
323
+ /**
324
+ * An optional duration specifying how long browsers can cache the results of a preflight request. This configures the Access-Control-Max-Age header. Example: `5h30m`.
325
+ */
326
+ maxAge?: string;
327
+ }
328
+ export interface AppSpecServiceCorsAllowOrigins {
329
+ /**
330
+ * The `Access-Control-Allow-Origin` header will be set to the client's origin only if the client's origin exactly matches the value you provide.
331
+ */
332
+ exact?: string;
333
+ /**
334
+ * The `Access-Control-Allow-Origin` header will be set to the client's origin if the beginning of the client's origin matches the value you provide.
335
+ */
336
+ prefix?: string;
337
+ /**
338
+ * The `Access-Control-Allow-Origin` header will be set to the client's origin if the client’s origin matches the regex you provide, in [RE2 style syntax](https://github.com/google/re2/wiki/Syntax).
339
+ */
340
+ regex?: string;
341
+ }
342
+ export interface AppSpecServiceEnv {
343
+ /**
344
+ * The name of the environment variable.
345
+ */
346
+ key?: string;
347
+ /**
348
+ * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
349
+ */
350
+ scope?: string;
351
+ /**
352
+ * The type of the environment variable, `GENERAL` or `SECRET`.
353
+ */
354
+ type: string;
355
+ /**
356
+ * The value of the environment variable.
357
+ */
358
+ value?: string;
359
+ }
360
+ export interface AppSpecServiceGit {
361
+ /**
362
+ * The name of the branch to use.
363
+ */
364
+ branch?: string;
365
+ /**
366
+ * The clone URL of the repo.
367
+ */
368
+ repoCloneUrl?: string;
369
+ }
370
+ export interface AppSpecServiceGithub {
371
+ /**
372
+ * The name of the branch to use.
373
+ */
374
+ branch?: string;
375
+ /**
376
+ * Whether to automatically deploy new commits made to the repo.
377
+ */
378
+ deployOnPush?: boolean;
379
+ /**
380
+ * The name of the repo in the format `owner/repo`.
381
+ */
382
+ repo?: string;
383
+ }
384
+ export interface AppSpecServiceGitlab {
385
+ /**
386
+ * The name of the branch to use.
387
+ */
388
+ branch?: string;
389
+ /**
390
+ * Whether to automatically deploy new commits made to the repo.
391
+ */
392
+ deployOnPush?: boolean;
393
+ /**
394
+ * The name of the repo in the format `owner/repo`.
395
+ */
396
+ repo?: string;
397
+ }
398
+ export interface AppSpecServiceHealthCheck {
399
+ /**
400
+ * The number of failed health checks before considered unhealthy.
401
+ */
402
+ failureThreshold?: number;
403
+ /**
404
+ * The route path used for the HTTP health check ping.
405
+ */
406
+ httpPath?: string;
407
+ /**
408
+ * The number of seconds to wait before beginning health checks.
409
+ */
410
+ initialDelaySeconds?: number;
411
+ /**
412
+ * The number of seconds to wait between health checks.
413
+ */
414
+ periodSeconds?: number;
415
+ /**
416
+ * The number of successful health checks before considered healthy.
417
+ */
418
+ successThreshold?: number;
419
+ /**
420
+ * The number of seconds after which the check times out.
421
+ */
422
+ timeoutSeconds?: number;
423
+ }
424
+ export interface AppSpecServiceImage {
425
+ /**
426
+ * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
427
+ */
428
+ registry?: string;
429
+ /**
430
+ * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
431
+ */
432
+ registryType: string;
433
+ /**
434
+ * The repository name.
435
+ */
436
+ repository: string;
437
+ /**
438
+ * The repository tag. Defaults to `latest` if not provided.
439
+ */
440
+ tag?: string;
441
+ }
442
+ export interface AppSpecServiceRoute {
443
+ /**
444
+ * Paths must start with `/` and must be unique within the app.
445
+ */
446
+ path?: string;
447
+ }
448
+ export interface AppSpecStaticSite {
449
+ /**
450
+ * An optional build command to run while building this component from source.
451
+ */
452
+ buildCommand?: string;
453
+ /**
454
+ * The name of the document to use as the fallback for any requests to documents that are not found when serving this static site.
455
+ */
456
+ catchallDocument?: string;
457
+ /**
458
+ * The [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies of the app.
459
+ */
460
+ cors?: outputs.AppSpecStaticSiteCors;
461
+ /**
462
+ * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
463
+ */
464
+ dockerfilePath?: string;
465
+ /**
466
+ * An environment slug describing the type of this app.
467
+ */
468
+ environmentSlug?: string;
469
+ /**
470
+ * Describes an environment variable made available to an app competent.
471
+ */
472
+ envs?: outputs.AppSpecStaticSiteEnv[];
473
+ /**
474
+ * The name of the error document to use when serving this static site.
475
+ */
476
+ errorDocument?: string;
477
+ /**
478
+ * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set
479
+ */
480
+ git?: outputs.AppSpecStaticSiteGit;
481
+ /**
482
+ * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
483
+ */
484
+ github?: outputs.AppSpecStaticSiteGithub;
485
+ /**
486
+ * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
487
+ */
488
+ gitlab?: outputs.AppSpecStaticSiteGitlab;
489
+ /**
490
+ * The name of the index document to use when serving this static site.
491
+ */
492
+ indexDocument?: string;
493
+ /**
494
+ * The name of the component.
495
+ */
496
+ name: string;
497
+ /**
498
+ * An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: `_static`, `dist`, `public`.
499
+ */
500
+ outputDir?: string;
501
+ routes: outputs.AppSpecStaticSiteRoute[];
502
+ /**
503
+ * An optional path to the working directory to use for the build.
504
+ */
505
+ sourceDir?: string;
506
+ }
507
+ export interface AppSpecStaticSiteCors {
508
+ /**
509
+ * Whether browsers should expose the response to the client-side JavaScript code when the request's credentials mode is `include`. This configures the `Access-Control-Allow-Credentials` header.
510
+ */
511
+ allowCredentials?: boolean;
512
+ /**
513
+ * The set of allowed HTTP request headers. This configures the `Access-Control-Allow-Headers` header.
514
+ */
515
+ allowHeaders?: string[];
516
+ /**
517
+ * The set of allowed HTTP methods. This configures the `Access-Control-Allow-Methods` header.
518
+ */
519
+ allowMethods?: string[];
520
+ /**
521
+ * The `Access-Control-Allow-Origin` can be
522
+ */
523
+ allowOrigins?: outputs.AppSpecStaticSiteCorsAllowOrigins;
524
+ /**
525
+ * The set of HTTP response headers that browsers are allowed to access. This configures the `Access-Control-Expose-Headers` header.
526
+ */
527
+ exposeHeaders?: string[];
528
+ /**
529
+ * An optional duration specifying how long browsers can cache the results of a preflight request. This configures the Access-Control-Max-Age header. Example: `5h30m`.
530
+ */
531
+ maxAge?: string;
532
+ }
533
+ export interface AppSpecStaticSiteCorsAllowOrigins {
534
+ /**
535
+ * The `Access-Control-Allow-Origin` header will be set to the client's origin only if the client's origin exactly matches the value you provide.
536
+ */
537
+ exact?: string;
538
+ /**
539
+ * The `Access-Control-Allow-Origin` header will be set to the client's origin if the beginning of the client's origin matches the value you provide.
540
+ */
541
+ prefix?: string;
542
+ /**
543
+ * The `Access-Control-Allow-Origin` header will be set to the client's origin if the client’s origin matches the regex you provide, in [RE2 style syntax](https://github.com/google/re2/wiki/Syntax).
544
+ */
545
+ regex?: string;
546
+ }
547
+ export interface AppSpecStaticSiteEnv {
548
+ /**
549
+ * The name of the environment variable.
550
+ */
551
+ key?: string;
552
+ /**
553
+ * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
554
+ */
555
+ scope?: string;
556
+ /**
557
+ * The type of the environment variable, `GENERAL` or `SECRET`.
558
+ */
559
+ type: string;
560
+ /**
561
+ * The value of the environment variable.
562
+ */
563
+ value?: string;
564
+ }
565
+ export interface AppSpecStaticSiteGit {
566
+ /**
567
+ * The name of the branch to use.
568
+ */
569
+ branch?: string;
570
+ /**
571
+ * The clone URL of the repo.
572
+ */
573
+ repoCloneUrl?: string;
574
+ }
575
+ export interface AppSpecStaticSiteGithub {
576
+ /**
577
+ * The name of the branch to use.
578
+ */
579
+ branch?: string;
580
+ /**
581
+ * Whether to automatically deploy new commits made to the repo.
582
+ */
583
+ deployOnPush?: boolean;
584
+ /**
585
+ * The name of the repo in the format `owner/repo`.
586
+ */
587
+ repo?: string;
588
+ }
589
+ export interface AppSpecStaticSiteGitlab {
590
+ /**
591
+ * The name of the branch to use.
592
+ */
593
+ branch?: string;
594
+ /**
595
+ * Whether to automatically deploy new commits made to the repo.
596
+ */
597
+ deployOnPush?: boolean;
598
+ /**
599
+ * The name of the repo in the format `owner/repo`.
600
+ */
601
+ repo?: string;
602
+ }
603
+ export interface AppSpecStaticSiteRoute {
604
+ /**
605
+ * Paths must start with `/` and must be unique within the app.
606
+ */
607
+ path?: string;
608
+ }
609
+ export interface AppSpecWorker {
610
+ /**
611
+ * An optional build command to run while building this component from source.
612
+ */
613
+ buildCommand?: string;
614
+ /**
615
+ * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
616
+ */
617
+ dockerfilePath?: string;
618
+ /**
619
+ * An environment slug describing the type of this app.
620
+ */
621
+ environmentSlug?: string;
622
+ /**
623
+ * Describes an environment variable made available to an app competent.
624
+ */
625
+ envs?: outputs.AppSpecWorkerEnv[];
626
+ /**
627
+ * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set
628
+ */
629
+ git?: outputs.AppSpecWorkerGit;
630
+ /**
631
+ * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
632
+ */
633
+ github?: outputs.AppSpecWorkerGithub;
634
+ /**
635
+ * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
636
+ */
637
+ gitlab?: outputs.AppSpecWorkerGitlab;
638
+ /**
639
+ * An image to use as the component's source. Only one of `git`, `github`, `gitlab`, or `image` may be set.
640
+ */
641
+ image?: outputs.AppSpecWorkerImage;
642
+ /**
643
+ * The amount of instances that this component should be scaled to.
644
+ */
645
+ instanceCount?: number;
646
+ /**
647
+ * The instance size to use for this component. This determines the plan (basic or professional) and the available CPU and memory. The list of available instance sizes can be [found with the API](https://docs.digitalocean.com/reference/api/api-reference/#operation/list_instance_sizes) or using the [doctl CLI](https://docs.digitalocean.com/reference/doctl/) (`doctl apps tier instance-size list`). Default: `basic-xxs`
648
+ */
649
+ instanceSizeSlug?: string;
650
+ /**
651
+ * The name of the component.
652
+ */
653
+ name: string;
654
+ /**
655
+ * An optional run command to override the component's default.
656
+ */
657
+ runCommand?: string;
658
+ /**
659
+ * An optional path to the working directory to use for the build.
660
+ */
661
+ sourceDir?: string;
662
+ }
663
+ export interface AppSpecWorkerEnv {
664
+ /**
665
+ * The name of the environment variable.
666
+ */
667
+ key?: string;
668
+ /**
669
+ * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
670
+ */
671
+ scope?: string;
672
+ /**
673
+ * The type of the environment variable, `GENERAL` or `SECRET`.
674
+ */
675
+ type: string;
676
+ /**
677
+ * The value of the environment variable.
678
+ */
679
+ value?: string;
680
+ }
681
+ export interface AppSpecWorkerGit {
682
+ /**
683
+ * The name of the branch to use.
684
+ */
685
+ branch?: string;
686
+ /**
687
+ * The clone URL of the repo.
688
+ */
689
+ repoCloneUrl?: string;
690
+ }
691
+ export interface AppSpecWorkerGithub {
692
+ /**
693
+ * The name of the branch to use.
694
+ */
695
+ branch?: string;
696
+ /**
697
+ * Whether to automatically deploy new commits made to the repo.
698
+ */
699
+ deployOnPush?: boolean;
700
+ /**
701
+ * The name of the repo in the format `owner/repo`.
702
+ */
703
+ repo?: string;
704
+ }
705
+ export interface AppSpecWorkerGitlab {
706
+ /**
707
+ * The name of the branch to use.
708
+ */
709
+ branch?: string;
710
+ /**
711
+ * Whether to automatically deploy new commits made to the repo.
712
+ */
713
+ deployOnPush?: boolean;
714
+ /**
715
+ * The name of the repo in the format `owner/repo`.
716
+ */
717
+ repo?: string;
718
+ }
719
+ export interface AppSpecWorkerImage {
720
+ /**
721
+ * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
722
+ */
723
+ registry?: string;
724
+ /**
725
+ * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
726
+ */
727
+ registryType: string;
728
+ /**
729
+ * The repository name.
730
+ */
731
+ repository: string;
732
+ /**
733
+ * The repository tag. Defaults to `latest` if not provided.
734
+ */
735
+ tag?: string;
736
+ }
737
+ export interface DatabaseClusterMaintenanceWindow {
738
+ /**
739
+ * The day of the week on which to apply maintenance updates.
740
+ */
741
+ day: string;
742
+ /**
743
+ * The hour in UTC at which maintenance updates will be applied in 24 hour format.
744
+ */
745
+ hour: string;
746
+ }
747
+ export interface DatabaseFirewallRule {
748
+ /**
749
+ * The date and time when the firewall rule was created.
750
+ */
751
+ createdAt: string;
752
+ /**
753
+ * The type of resource that the firewall rule allows to access the database cluster. The possible values are: `droplet`, `k8s`, `ipAddr`, `tag`, or `app`.
754
+ */
755
+ type: string;
756
+ /**
757
+ * A unique identifier for the firewall rule.
758
+ */
759
+ uuid: string;
760
+ /**
761
+ * The ID of the specific resource, the name of a tag applied to a group of resources, or the IP address that the firewall rule allows to access the database cluster.
762
+ */
763
+ value: string;
764
+ }
765
+ export interface FirewallInboundRule {
766
+ /**
767
+ * The ports on which traffic will be allowed
768
+ * specified as a string containing a single port, a range (e.g. "8000-9000"),
769
+ * or "1-65535" to open all ports for a protocol. Required for when protocol is
770
+ * `tcp` or `udp`.
771
+ */
772
+ portRange?: string;
773
+ /**
774
+ * The type of traffic to be allowed.
775
+ * This may be one of "tcp", "udp", or "icmp".
776
+ */
777
+ protocol: string;
778
+ /**
779
+ * An array of strings containing the IPv4
780
+ * addresses, IPv6 addresses, IPv4 CIDRs, and/or IPv6 CIDRs from which the
781
+ * inbound traffic will be accepted.
782
+ */
783
+ sourceAddresses?: string[];
784
+ /**
785
+ * An array containing the IDs of
786
+ * the Droplets from which the inbound traffic will be accepted.
787
+ */
788
+ sourceDropletIds?: number[];
789
+ /**
790
+ * An array containing the IDs
791
+ * of the Load Balancers from which the inbound traffic will be accepted.
792
+ */
793
+ sourceLoadBalancerUids?: string[];
794
+ /**
795
+ * An array containing the names of Tags
796
+ * corresponding to groups of Droplets from which the inbound traffic
797
+ * will be accepted.
798
+ */
799
+ sourceTags?: string[];
800
+ }
801
+ export interface FirewallOutboundRule {
802
+ /**
803
+ * An array of strings containing the IPv4
804
+ * addresses, IPv6 addresses, IPv4 CIDRs, and/or IPv6 CIDRs to which the
805
+ * outbound traffic will be allowed.
806
+ */
807
+ destinationAddresses?: string[];
808
+ /**
809
+ * An array containing the IDs of
810
+ * the Droplets to which the outbound traffic will be allowed.
811
+ */
812
+ destinationDropletIds?: number[];
813
+ /**
814
+ * An array containing the IDs
815
+ * of the Load Balancers to which the outbound traffic will be allowed.
816
+ */
817
+ destinationLoadBalancerUids?: string[];
818
+ /**
819
+ * An array containing the names of Tags
820
+ * corresponding to groups of Droplets to which the outbound traffic will
821
+ * be allowed.
822
+ * traffic.
823
+ */
824
+ destinationTags?: string[];
825
+ /**
826
+ * The ports on which traffic will be allowed
827
+ * specified as a string containing a single port, a range (e.g. "8000-9000"),
828
+ * or "1-65535" to open all ports for a protocol. Required for when protocol is
829
+ * `tcp` or `udp`.
830
+ */
831
+ portRange?: string;
832
+ /**
833
+ * The type of traffic to be allowed.
834
+ * This may be one of "tcp", "udp", or "icmp".
835
+ */
836
+ protocol: string;
837
+ }
838
+ export interface FirewallPendingChange {
839
+ dropletId?: number;
840
+ removing?: boolean;
841
+ /**
842
+ * A status string indicating the current state of the Firewall.
843
+ * This can be "waiting", "succeeded", or "failed".
844
+ */
845
+ status?: string;
846
+ }
847
+ export interface GetAppSpec {
848
+ databases?: outputs.GetAppSpecDatabase[];
849
+ /**
850
+ * @deprecated This attribute has been replaced by `domain` which supports additional functionality.
851
+ */
852
+ domains: string[];
853
+ /**
854
+ * Describes an environment variable made available to an app competent.
855
+ */
856
+ envs?: outputs.GetAppSpecEnv[];
857
+ jobs?: outputs.GetAppSpecJob[];
858
+ /**
859
+ * The name of the component.
860
+ */
861
+ name: string;
862
+ region?: string;
863
+ services?: outputs.GetAppSpecService[];
864
+ staticSites?: outputs.GetAppSpecStaticSite[];
865
+ workers?: outputs.GetAppSpecWorker[];
866
+ }
867
+ export interface GetAppSpecDatabase {
868
+ /**
869
+ * The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `clusterName` is not set, a new cluster will be provisioned.
870
+ */
871
+ clusterName?: string;
872
+ /**
873
+ * The name of the MySQL or PostgreSQL database to configure.
874
+ */
875
+ dbName?: string;
876
+ /**
877
+ * The name of the MySQL or PostgreSQL user to configure.
878
+ */
879
+ dbUser?: string;
880
+ /**
881
+ * The database engine to use (`MYSQL`, `PG`, or `REDIS`).
882
+ */
883
+ engine?: string;
884
+ /**
885
+ * The name of the component.
886
+ */
887
+ name?: string;
888
+ /**
889
+ * Whether this is a production or dev database.
890
+ */
891
+ production?: boolean;
892
+ /**
893
+ * The version of the database engine.
894
+ */
895
+ version?: string;
896
+ }
897
+ export interface GetAppSpecEnv {
898
+ /**
899
+ * The name of the environment variable.
900
+ */
901
+ key?: string;
902
+ /**
903
+ * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
904
+ */
905
+ scope?: string;
906
+ /**
907
+ * The type of the environment variable, `GENERAL` or `SECRET`.
908
+ */
909
+ type: string;
910
+ /**
911
+ * The value of the environment variable.
912
+ */
913
+ value?: string;
914
+ }
915
+ export interface GetAppSpecJob {
916
+ /**
917
+ * An optional build command to run while building this component from source.
918
+ */
919
+ buildCommand?: string;
920
+ /**
921
+ * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
922
+ */
923
+ dockerfilePath?: string;
924
+ /**
925
+ * An environment slug describing the type of this app.
926
+ */
927
+ environmentSlug?: string;
928
+ /**
929
+ * Describes an environment variable made available to an app competent.
930
+ */
931
+ envs?: outputs.GetAppSpecJobEnv[];
932
+ /**
933
+ * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set.
934
+ */
935
+ git?: outputs.GetAppSpecJobGit;
936
+ /**
937
+ * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
938
+ */
939
+ github?: outputs.GetAppSpecJobGithub;
940
+ /**
941
+ * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
942
+ */
943
+ gitlab?: outputs.GetAppSpecJobGitlab;
944
+ /**
945
+ * An image to use as the component's source. Only one of `git`, `github`, `gitlab`, or `image` may be set.
946
+ */
947
+ image?: outputs.GetAppSpecJobImage;
948
+ /**
949
+ * The amount of instances that this component should be scaled to.
950
+ */
951
+ instanceCount?: number;
952
+ /**
953
+ * The instance size to use for this component.
954
+ */
955
+ instanceSizeSlug?: string;
956
+ /**
957
+ * The type of job and when it will be run during the deployment process. It may be one of:
958
+ * - `UNSPECIFIED`: Default job type, will auto-complete to POST_DEPLOY kind.
959
+ * - `PRE_DEPLOY`: Indicates a job that runs before an app deployment.
960
+ * - `POST_DEPLOY`: Indicates a job that runs after an app deployment.
961
+ * - `FAILED_DEPLOY`: Indicates a job that runs after a component fails to deploy.
962
+ */
963
+ kind?: string;
964
+ /**
965
+ * The name of the component.
966
+ */
967
+ name: string;
968
+ /**
969
+ * An optional run command to override the component's default.
970
+ */
971
+ runCommand?: string;
972
+ /**
973
+ * An optional path to the working directory to use for the build.
974
+ */
975
+ sourceDir?: string;
976
+ }
977
+ export interface GetAppSpecJobEnv {
978
+ /**
979
+ * The name of the environment variable.
980
+ */
981
+ key?: string;
982
+ /**
983
+ * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
984
+ */
985
+ scope?: string;
986
+ /**
987
+ * The type of the environment variable, `GENERAL` or `SECRET`.
988
+ */
989
+ type: string;
990
+ /**
991
+ * The value of the environment variable.
992
+ */
993
+ value?: string;
994
+ }
995
+ export interface GetAppSpecJobGit {
996
+ /**
997
+ * The name of the branch to use.
998
+ */
999
+ branch?: string;
1000
+ /**
1001
+ * The clone URL of the repo.
1002
+ */
1003
+ repoCloneUrl?: string;
1004
+ }
1005
+ export interface GetAppSpecJobGithub {
1006
+ /**
1007
+ * The name of the branch to use.
1008
+ */
1009
+ branch?: string;
1010
+ /**
1011
+ * Whether to automatically deploy new commits made to the repo.
1012
+ */
1013
+ deployOnPush?: boolean;
1014
+ /**
1015
+ * The name of the repo in the format `owner/repo`.
1016
+ */
1017
+ repo?: string;
1018
+ }
1019
+ export interface GetAppSpecJobGitlab {
1020
+ /**
1021
+ * The name of the branch to use.
1022
+ */
1023
+ branch?: string;
1024
+ /**
1025
+ * Whether to automatically deploy new commits made to the repo.
1026
+ */
1027
+ deployOnPush?: boolean;
1028
+ /**
1029
+ * The name of the repo in the format `owner/repo`.
1030
+ */
1031
+ repo?: string;
1032
+ }
1033
+ export interface GetAppSpecJobImage {
1034
+ /**
1035
+ * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
1036
+ */
1037
+ registry?: string;
1038
+ /**
1039
+ * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
1040
+ */
1041
+ registryType: string;
1042
+ /**
1043
+ * The repository name.
1044
+ */
1045
+ repository: string;
1046
+ /**
1047
+ * The repository tag. Defaults to `latest` if not provided.
1048
+ */
1049
+ tag?: string;
1050
+ }
1051
+ export interface GetAppSpecService {
1052
+ /**
1053
+ * An optional build command to run while building this component from source.
1054
+ */
1055
+ buildCommand?: string;
1056
+ cors?: outputs.GetAppSpecServiceCors;
1057
+ /**
1058
+ * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
1059
+ */
1060
+ dockerfilePath?: string;
1061
+ /**
1062
+ * An environment slug describing the type of this app.
1063
+ */
1064
+ environmentSlug?: string;
1065
+ /**
1066
+ * Describes an environment variable made available to an app competent.
1067
+ */
1068
+ envs?: outputs.GetAppSpecServiceEnv[];
1069
+ /**
1070
+ * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set.
1071
+ */
1072
+ git?: outputs.GetAppSpecServiceGit;
1073
+ /**
1074
+ * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
1075
+ */
1076
+ github?: outputs.GetAppSpecServiceGithub;
1077
+ /**
1078
+ * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
1079
+ */
1080
+ gitlab?: outputs.GetAppSpecServiceGitlab;
1081
+ /**
1082
+ * A health check to determine the availability of this component.
1083
+ */
1084
+ healthCheck?: outputs.GetAppSpecServiceHealthCheck;
1085
+ /**
1086
+ * The internal port on which this service's run command will listen.
1087
+ */
1088
+ httpPort: number;
1089
+ /**
1090
+ * An image to use as the component's source. Only one of `git`, `github`, `gitlab`, or `image` may be set.
1091
+ */
1092
+ image?: outputs.GetAppSpecServiceImage;
1093
+ /**
1094
+ * The amount of instances that this component should be scaled to.
1095
+ */
1096
+ instanceCount?: number;
1097
+ /**
1098
+ * The instance size to use for this component.
1099
+ */
1100
+ instanceSizeSlug?: string;
1101
+ /**
1102
+ * A list of ports on which this service will listen for internal traffic.
1103
+ */
1104
+ internalPorts?: number[];
1105
+ /**
1106
+ * The name of the component.
1107
+ */
1108
+ name: string;
1109
+ routes: outputs.GetAppSpecServiceRoute[];
1110
+ /**
1111
+ * An optional run command to override the component's default.
1112
+ */
1113
+ runCommand: string;
1114
+ /**
1115
+ * An optional path to the working directory to use for the build.
1116
+ */
1117
+ sourceDir?: string;
1118
+ }
1119
+ export interface GetAppSpecServiceCors {
1120
+ allowCredentials?: boolean;
1121
+ allowHeaders?: string[];
1122
+ allowMethods?: string[];
1123
+ allowOrigins?: outputs.GetAppSpecServiceCorsAllowOrigins;
1124
+ exposeHeaders?: string[];
1125
+ maxAge?: string;
1126
+ }
1127
+ export interface GetAppSpecServiceCorsAllowOrigins {
1128
+ exact?: string;
1129
+ prefix?: string;
1130
+ regex?: string;
1131
+ }
1132
+ export interface GetAppSpecServiceEnv {
1133
+ /**
1134
+ * The name of the environment variable.
1135
+ */
1136
+ key?: string;
1137
+ /**
1138
+ * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
1139
+ */
1140
+ scope?: string;
1141
+ /**
1142
+ * The type of the environment variable, `GENERAL` or `SECRET`.
1143
+ */
1144
+ type: string;
1145
+ /**
1146
+ * The value of the environment variable.
1147
+ */
1148
+ value?: string;
1149
+ }
1150
+ export interface GetAppSpecServiceGit {
1151
+ /**
1152
+ * The name of the branch to use.
1153
+ */
1154
+ branch?: string;
1155
+ /**
1156
+ * The clone URL of the repo.
1157
+ */
1158
+ repoCloneUrl?: string;
1159
+ }
1160
+ export interface GetAppSpecServiceGithub {
1161
+ /**
1162
+ * The name of the branch to use.
1163
+ */
1164
+ branch?: string;
1165
+ /**
1166
+ * Whether to automatically deploy new commits made to the repo.
1167
+ */
1168
+ deployOnPush?: boolean;
1169
+ /**
1170
+ * The name of the repo in the format `owner/repo`.
1171
+ */
1172
+ repo?: string;
1173
+ }
1174
+ export interface GetAppSpecServiceGitlab {
1175
+ /**
1176
+ * The name of the branch to use.
1177
+ */
1178
+ branch?: string;
1179
+ /**
1180
+ * Whether to automatically deploy new commits made to the repo.
1181
+ */
1182
+ deployOnPush?: boolean;
1183
+ /**
1184
+ * The name of the repo in the format `owner/repo`.
1185
+ */
1186
+ repo?: string;
1187
+ }
1188
+ export interface GetAppSpecServiceHealthCheck {
1189
+ /**
1190
+ * The number of failed health checks before considered unhealthy.
1191
+ */
1192
+ failureThreshold?: number;
1193
+ /**
1194
+ * The route path used for the HTTP health check ping.
1195
+ */
1196
+ httpPath?: string;
1197
+ /**
1198
+ * The number of seconds to wait before beginning health checks.
1199
+ */
1200
+ initialDelaySeconds?: number;
1201
+ /**
1202
+ * The number of seconds to wait between health checks.
1203
+ */
1204
+ periodSeconds?: number;
1205
+ /**
1206
+ * The number of successful health checks before considered healthy.
1207
+ */
1208
+ successThreshold?: number;
1209
+ /**
1210
+ * The number of seconds after which the check times out.
1211
+ */
1212
+ timeoutSeconds?: number;
1213
+ }
1214
+ export interface GetAppSpecServiceImage {
1215
+ /**
1216
+ * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
1217
+ */
1218
+ registry?: string;
1219
+ /**
1220
+ * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
1221
+ */
1222
+ registryType: string;
1223
+ /**
1224
+ * The repository name.
1225
+ */
1226
+ repository: string;
1227
+ /**
1228
+ * The repository tag. Defaults to `latest` if not provided.
1229
+ */
1230
+ tag?: string;
1231
+ }
1232
+ export interface GetAppSpecServiceRoute {
1233
+ /**
1234
+ * Paths must start with `/` and must be unique within the app.
1235
+ */
1236
+ path?: string;
1237
+ }
1238
+ export interface GetAppSpecStaticSite {
1239
+ /**
1240
+ * An optional build command to run while building this component from source.
1241
+ */
1242
+ buildCommand?: string;
1243
+ /**
1244
+ * The name of the document to use as the fallback for any requests to documents that are not found when serving this static site.
1245
+ */
1246
+ catchallDocument?: string;
1247
+ cors?: outputs.GetAppSpecStaticSiteCors;
1248
+ /**
1249
+ * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
1250
+ */
1251
+ dockerfilePath?: string;
1252
+ /**
1253
+ * An environment slug describing the type of this app.
1254
+ */
1255
+ environmentSlug?: string;
1256
+ /**
1257
+ * Describes an environment variable made available to an app competent.
1258
+ */
1259
+ envs?: outputs.GetAppSpecStaticSiteEnv[];
1260
+ /**
1261
+ * The name of the error document to use when serving this static site.
1262
+ */
1263
+ errorDocument?: string;
1264
+ /**
1265
+ * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set.
1266
+ */
1267
+ git?: outputs.GetAppSpecStaticSiteGit;
1268
+ /**
1269
+ * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
1270
+ */
1271
+ github?: outputs.GetAppSpecStaticSiteGithub;
1272
+ /**
1273
+ * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
1274
+ */
1275
+ gitlab?: outputs.GetAppSpecStaticSiteGitlab;
1276
+ /**
1277
+ * The name of the index document to use when serving this static site.
1278
+ */
1279
+ indexDocument?: string;
1280
+ /**
1281
+ * The name of the component.
1282
+ */
1283
+ name: string;
1284
+ /**
1285
+ * An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: `_static`, `dist`, `public`.
1286
+ */
1287
+ outputDir?: string;
1288
+ routes: outputs.GetAppSpecStaticSiteRoute[];
1289
+ /**
1290
+ * An optional path to the working directory to use for the build.
1291
+ */
1292
+ sourceDir?: string;
1293
+ }
1294
+ export interface GetAppSpecStaticSiteCors {
1295
+ allowCredentials?: boolean;
1296
+ allowHeaders?: string[];
1297
+ allowMethods?: string[];
1298
+ allowOrigins?: outputs.GetAppSpecStaticSiteCorsAllowOrigins;
1299
+ exposeHeaders?: string[];
1300
+ maxAge?: string;
1301
+ }
1302
+ export interface GetAppSpecStaticSiteCorsAllowOrigins {
1303
+ exact?: string;
1304
+ prefix?: string;
1305
+ regex?: string;
1306
+ }
1307
+ export interface GetAppSpecStaticSiteEnv {
1308
+ /**
1309
+ * The name of the environment variable.
1310
+ */
1311
+ key?: string;
1312
+ /**
1313
+ * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
1314
+ */
1315
+ scope?: string;
1316
+ /**
1317
+ * The type of the environment variable, `GENERAL` or `SECRET`.
1318
+ */
1319
+ type: string;
1320
+ /**
1321
+ * The value of the environment variable.
1322
+ */
1323
+ value?: string;
1324
+ }
1325
+ export interface GetAppSpecStaticSiteGit {
1326
+ /**
1327
+ * The name of the branch to use.
1328
+ */
1329
+ branch?: string;
1330
+ /**
1331
+ * The clone URL of the repo.
1332
+ */
1333
+ repoCloneUrl?: string;
1334
+ }
1335
+ export interface GetAppSpecStaticSiteGithub {
1336
+ /**
1337
+ * The name of the branch to use.
1338
+ */
1339
+ branch?: string;
1340
+ /**
1341
+ * Whether to automatically deploy new commits made to the repo.
1342
+ */
1343
+ deployOnPush?: boolean;
1344
+ /**
1345
+ * The name of the repo in the format `owner/repo`.
1346
+ */
1347
+ repo?: string;
1348
+ }
1349
+ export interface GetAppSpecStaticSiteGitlab {
1350
+ /**
1351
+ * The name of the branch to use.
1352
+ */
1353
+ branch?: string;
1354
+ /**
1355
+ * Whether to automatically deploy new commits made to the repo.
1356
+ */
1357
+ deployOnPush?: boolean;
1358
+ /**
1359
+ * The name of the repo in the format `owner/repo`.
1360
+ */
1361
+ repo?: string;
1362
+ }
1363
+ export interface GetAppSpecStaticSiteRoute {
1364
+ /**
1365
+ * Paths must start with `/` and must be unique within the app.
1366
+ */
1367
+ path?: string;
1368
+ }
1369
+ export interface GetAppSpecWorker {
1370
+ /**
1371
+ * An optional build command to run while building this component from source.
1372
+ */
1373
+ buildCommand?: string;
1374
+ /**
1375
+ * The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
1376
+ */
1377
+ dockerfilePath?: string;
1378
+ /**
1379
+ * An environment slug describing the type of this app.
1380
+ */
1381
+ environmentSlug?: string;
1382
+ /**
1383
+ * Describes an environment variable made available to an app competent.
1384
+ */
1385
+ envs?: outputs.GetAppSpecWorkerEnv[];
1386
+ /**
1387
+ * A Git repo to use as the component's source. The repository must be able to be cloned without authentication. Only one of `git`, `github` or `gitlab` may be set.
1388
+ */
1389
+ git?: outputs.GetAppSpecWorkerGit;
1390
+ /**
1391
+ * A GitHub repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/github/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
1392
+ */
1393
+ github?: outputs.GetAppSpecWorkerGithub;
1394
+ /**
1395
+ * A Gitlab repo to use as the component's source. DigitalOcean App Platform must have [access to the repository](https://cloud.digitalocean.com/apps/gitlab/install). Only one of `git`, `github`, `gitlab`, or `image` may be set.
1396
+ */
1397
+ gitlab?: outputs.GetAppSpecWorkerGitlab;
1398
+ /**
1399
+ * An image to use as the component's source. Only one of `git`, `github`, `gitlab`, or `image` may be set.
1400
+ */
1401
+ image?: outputs.GetAppSpecWorkerImage;
1402
+ /**
1403
+ * The amount of instances that this component should be scaled to.
1404
+ */
1405
+ instanceCount?: number;
1406
+ /**
1407
+ * The instance size to use for this component.
1408
+ */
1409
+ instanceSizeSlug?: string;
1410
+ /**
1411
+ * The name of the component.
1412
+ */
1413
+ name: string;
1414
+ /**
1415
+ * An optional run command to override the component's default.
1416
+ */
1417
+ runCommand?: string;
1418
+ /**
1419
+ * An optional path to the working directory to use for the build.
1420
+ */
1421
+ sourceDir?: string;
1422
+ }
1423
+ export interface GetAppSpecWorkerEnv {
1424
+ /**
1425
+ * The name of the environment variable.
1426
+ */
1427
+ key?: string;
1428
+ /**
1429
+ * The visibility scope of the environment variable. One of `RUN_TIME`, `BUILD_TIME`, or `RUN_AND_BUILD_TIME` (default).
1430
+ */
1431
+ scope?: string;
1432
+ /**
1433
+ * The type of the environment variable, `GENERAL` or `SECRET`.
1434
+ */
1435
+ type: string;
1436
+ /**
1437
+ * The value of the environment variable.
1438
+ */
1439
+ value?: string;
1440
+ }
1441
+ export interface GetAppSpecWorkerGit {
1442
+ /**
1443
+ * The name of the branch to use.
1444
+ */
1445
+ branch?: string;
1446
+ /**
1447
+ * The clone URL of the repo.
1448
+ */
1449
+ repoCloneUrl?: string;
1450
+ }
1451
+ export interface GetAppSpecWorkerGithub {
1452
+ /**
1453
+ * The name of the branch to use.
1454
+ */
1455
+ branch?: string;
1456
+ /**
1457
+ * Whether to automatically deploy new commits made to the repo.
1458
+ */
1459
+ deployOnPush?: boolean;
1460
+ /**
1461
+ * The name of the repo in the format `owner/repo`.
1462
+ */
1463
+ repo?: string;
1464
+ }
1465
+ export interface GetAppSpecWorkerGitlab {
1466
+ /**
1467
+ * The name of the branch to use.
1468
+ */
1469
+ branch?: string;
1470
+ /**
1471
+ * Whether to automatically deploy new commits made to the repo.
1472
+ */
1473
+ deployOnPush?: boolean;
1474
+ /**
1475
+ * The name of the repo in the format `owner/repo`.
1476
+ */
1477
+ repo?: string;
1478
+ }
1479
+ export interface GetAppSpecWorkerImage {
1480
+ /**
1481
+ * The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
1482
+ */
1483
+ registry?: string;
1484
+ /**
1485
+ * The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
1486
+ */
1487
+ registryType: string;
1488
+ /**
1489
+ * The repository name.
1490
+ */
1491
+ repository: string;
1492
+ /**
1493
+ * The repository tag. Defaults to `latest` if not provided.
1494
+ */
1495
+ tag?: string;
1496
+ }
1497
+ export interface GetDatabaseClusterMaintenanceWindow {
1498
+ /**
1499
+ * The day of the week on which to apply maintenance updates.
1500
+ */
1501
+ day: string;
1502
+ /**
1503
+ * The hour in UTC at which maintenance updates will be applied in 24 hour format.
1504
+ */
1505
+ hour: string;
1506
+ }
1507
+ export interface GetDomainsDomain {
1508
+ /**
1509
+ * (Required) The name of the domain.
1510
+ * - `ttl`- The TTL of the domain.
1511
+ */
1512
+ name: string;
1513
+ ttl: number;
1514
+ /**
1515
+ * The uniform resource name of the domain
1516
+ */
1517
+ urn: string;
1518
+ }
1519
+ export interface GetDomainsFilter {
1520
+ /**
1521
+ * Set to `true` to require that a field match all of the `values` instead of just one or more of
1522
+ * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
1523
+ * that all of the `values` are present in the list or set.
1524
+ */
1525
+ all?: boolean;
1526
+ /**
1527
+ * Filter the domains by this key. This may be one of `name`, `urn`, and `ttl`.
1528
+ */
1529
+ key: string;
1530
+ /**
1531
+ * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
1532
+ * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
1533
+ * substrings to find within the string field.
1534
+ */
1535
+ matchBy?: string;
1536
+ /**
1537
+ * A list of values to match against the `key` field. Only retrieves domains
1538
+ * where the `key` field takes on one or more of the values provided here.
1539
+ */
1540
+ values: string[];
1541
+ }
1542
+ export interface GetDomainsSort {
1543
+ /**
1544
+ * The sort direction. This may be either `asc` or `desc`.
1545
+ */
1546
+ direction?: string;
1547
+ /**
1548
+ * Sort the domains by this key. This may be one of `name`, `urn`, and `ttl`.
1549
+ */
1550
+ key: string;
1551
+ }
1552
+ export interface GetDropletsDroplet {
1553
+ /**
1554
+ * Whether backups are enabled.
1555
+ */
1556
+ backups: boolean;
1557
+ createdAt: string;
1558
+ /**
1559
+ * The size of the Droplet's disk in GB.
1560
+ */
1561
+ disk: number;
1562
+ /**
1563
+ * The ID of the Droplet.
1564
+ */
1565
+ id: number;
1566
+ /**
1567
+ * The Droplet image ID or slug.
1568
+ */
1569
+ image: string;
1570
+ /**
1571
+ * The Droplet's public IPv4 address
1572
+ */
1573
+ ipv4Address: string;
1574
+ /**
1575
+ * The Droplet's private IPv4 address
1576
+ */
1577
+ ipv4AddressPrivate: string;
1578
+ /**
1579
+ * Whether IPv6 is enabled.
1580
+ */
1581
+ ipv6: boolean;
1582
+ /**
1583
+ * The Droplet's public IPv6 address
1584
+ */
1585
+ ipv6Address: string;
1586
+ /**
1587
+ * The Droplet's private IPv6 address
1588
+ */
1589
+ ipv6AddressPrivate: string;
1590
+ /**
1591
+ * Whether the Droplet is locked.
1592
+ */
1593
+ locked: boolean;
1594
+ /**
1595
+ * The amount of the Droplet's memory in MB.
1596
+ */
1597
+ memory: number;
1598
+ /**
1599
+ * Whether monitoring agent is installed.
1600
+ */
1601
+ monitoring: boolean;
1602
+ name: string;
1603
+ /**
1604
+ * Droplet hourly price.
1605
+ */
1606
+ priceHourly: number;
1607
+ /**
1608
+ * Droplet monthly price.
1609
+ */
1610
+ priceMonthly: number;
1611
+ /**
1612
+ * Whether private networks are enabled.
1613
+ */
1614
+ privateNetworking: boolean;
1615
+ /**
1616
+ * The region the Droplet is running in.
1617
+ */
1618
+ region: string;
1619
+ /**
1620
+ * The unique slug that identifies the type of Droplet.
1621
+ */
1622
+ size: string;
1623
+ /**
1624
+ * The status of the Droplet.
1625
+ */
1626
+ status: string;
1627
+ /**
1628
+ * A list of the tags associated to the Droplet.
1629
+ */
1630
+ tags: string[];
1631
+ /**
1632
+ * The uniform resource name of the Droplet
1633
+ */
1634
+ urn: string;
1635
+ /**
1636
+ * The number of the Droplet's virtual CPUs.
1637
+ */
1638
+ vcpus: number;
1639
+ /**
1640
+ * List of the IDs of each volumes attached to the Droplet.
1641
+ */
1642
+ volumeIds: string[];
1643
+ /**
1644
+ * The ID of the VPC where the Droplet is located.
1645
+ */
1646
+ vpcUuid: string;
1647
+ }
1648
+ export interface GetDropletsFilter {
1649
+ /**
1650
+ * Set to `true` to require that a field match all of the `values` instead of just one or more of
1651
+ * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
1652
+ * that all of the `values` are present in the list or set.
1653
+ */
1654
+ all?: boolean;
1655
+ /**
1656
+ * Filter the Droplets by this key. This may be one of `backups`, `createdAt`, `disk`, `id`,
1657
+ * `image`, `ipv4Address`, `ipv4AddressPrivate`, `ipv6`, `ipv6Address`, `ipv6AddressPrivate`, `locked`,
1658
+ * `memory`, `monitoring`, `name`, `priceHourly`, `priceMonthly`, `privateNetworking`, `region`, `size`,
1659
+ * `status`, `tags`, `urn`, `vcpus`, `volumeIds`, or `vpcUuid`.
1660
+ */
1661
+ key: string;
1662
+ /**
1663
+ * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
1664
+ * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
1665
+ * substrings to find within the string field.
1666
+ */
1667
+ matchBy?: string;
1668
+ /**
1669
+ * A list of values to match against the `key` field. Only retrieves Droplets
1670
+ * where the `key` field takes on one or more of the values provided here.
1671
+ */
1672
+ values: string[];
1673
+ }
1674
+ export interface GetDropletsSort {
1675
+ /**
1676
+ * The sort direction. This may be either `asc` or `desc`.
1677
+ */
1678
+ direction?: string;
1679
+ /**
1680
+ * Sort the Droplets by this key. This may be one of `backups`, `createdAt`, `disk`, `id`,
1681
+ * `image`, `ipv4Address`, `ipv4AddressPrivate`, `ipv6`, `ipv6Address`, `ipv6AddressPrivate`, `locked`,
1682
+ * `memory`, `monitoring`, `name`, `priceHourly`, `priceMonthly`, `privateNetworking`, `region`, `size`,
1683
+ * `status`, `urn`, `vcpus`, or `vpcUuid`.
1684
+ */
1685
+ key: string;
1686
+ }
1687
+ export interface GetFirewallInboundRule {
1688
+ /**
1689
+ * The ports on which traffic will be allowed
1690
+ * specified as a string containing a single port, a range (e.g. "8000-9000"),
1691
+ * or "1-65535" to open all ports for a protocol. Required for when protocol is
1692
+ * `tcp` or `udp`.
1693
+ */
1694
+ portRange?: string;
1695
+ /**
1696
+ * The type of traffic to be allowed.
1697
+ * This may be one of "tcp", "udp", or "icmp".
1698
+ */
1699
+ protocol: string;
1700
+ /**
1701
+ * An array of strings containing the IPv4
1702
+ * addresses, IPv6 addresses, IPv4 CIDRs, and/or IPv6 CIDRs from which the
1703
+ * inbound traffic will be accepted.
1704
+ */
1705
+ sourceAddresses?: string[];
1706
+ /**
1707
+ * An array containing the IDs of
1708
+ * the Droplets from which the inbound traffic will be accepted.
1709
+ */
1710
+ sourceDropletIds?: number[];
1711
+ /**
1712
+ * An array containing the IDs
1713
+ * of the Load Balancers from which the inbound traffic will be accepted.
1714
+ */
1715
+ sourceLoadBalancerUids?: string[];
1716
+ /**
1717
+ * A set of names of Tags corresponding to group of
1718
+ * Droplets from which the inbound traffic will be accepted.
1719
+ */
1720
+ sourceTags?: string[];
1721
+ }
1722
+ export interface GetFirewallOutboundRule {
1723
+ /**
1724
+ * An array of strings containing the IPv4
1725
+ * addresses, IPv6 addresses, IPv4 CIDRs, and/or IPv6 CIDRs to which the
1726
+ * outbound traffic will be allowed.
1727
+ */
1728
+ destinationAddresses?: string[];
1729
+ /**
1730
+ * An array containing the IDs of
1731
+ * the Droplets to which the outbound traffic will be allowed.
1732
+ */
1733
+ destinationDropletIds?: number[];
1734
+ /**
1735
+ * An array containing the IDs
1736
+ * of the Load Balancers to which the outbound traffic will be allowed.
1737
+ */
1738
+ destinationLoadBalancerUids?: string[];
1739
+ /**
1740
+ * An array containing the names of Tags
1741
+ * corresponding to groups of Droplets to which the outbound traffic will
1742
+ * be allowed.
1743
+ * traffic.
1744
+ */
1745
+ destinationTags?: string[];
1746
+ /**
1747
+ * The ports on which traffic will be allowed
1748
+ * specified as a string containing a single port, a range (e.g. "8000-9000"),
1749
+ * or "1-65535" to open all ports for a protocol. Required for when protocol is
1750
+ * `tcp` or `udp`.
1751
+ */
1752
+ portRange?: string;
1753
+ /**
1754
+ * The type of traffic to be allowed.
1755
+ * This may be one of "tcp", "udp", or "icmp".
1756
+ */
1757
+ protocol: string;
1758
+ }
1759
+ export interface GetFirewallPendingChange {
1760
+ dropletId?: number;
1761
+ removing?: boolean;
1762
+ /**
1763
+ * A status string indicating the current state of the Firewall.
1764
+ * This can be "waiting", "succeeded", or "failed".
1765
+ */
1766
+ status?: string;
1767
+ }
1768
+ export interface GetImagesFilter {
1769
+ /**
1770
+ * Set to `true` to require that a field match all of the `values` instead of just one or more of
1771
+ * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
1772
+ * that all of the `values` are present in the list or set.
1773
+ */
1774
+ all?: boolean;
1775
+ /**
1776
+ * Filter the images by this key. This may be one of `distribution`, `errorMessage`,
1777
+ * `id`, `image`, `minDiskSize`, `name`, `private`, `regions`, `sizeGigabytes`, `slug`, `status`,
1778
+ * `tags`, or `type`.
1779
+ */
1780
+ key: string;
1781
+ /**
1782
+ * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
1783
+ * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
1784
+ * substrings to find within the string field.
1785
+ */
1786
+ matchBy?: string;
1787
+ /**
1788
+ * A list of values to match against the `key` field. Only retrieves images
1789
+ * where the `key` field takes on one or more of the values provided here.
1790
+ */
1791
+ values: string[];
1792
+ }
1793
+ export interface GetImagesImage {
1794
+ created: string;
1795
+ description: string;
1796
+ /**
1797
+ * The name of the distribution of the OS of the image.
1798
+ * - `minDiskSize`: The minimum 'disk' required for the image.
1799
+ * - `sizeGigabytes`: The size of the image in GB.
1800
+ */
1801
+ distribution: string;
1802
+ errorMessage: string;
1803
+ id: number;
1804
+ /**
1805
+ * The id of the image (legacy parameter).
1806
+ */
1807
+ image: string;
1808
+ minDiskSize: number;
1809
+ name: string;
1810
+ /**
1811
+ * Is image a public image or not. Public images represent
1812
+ * Linux distributions or One-Click Applications, while non-public images represent
1813
+ * snapshots and backups and are only available within your account.
1814
+ * - `regions`: A set of the regions that the image is available in.
1815
+ * - `tags`: A set of tags applied to the image
1816
+ * - `created`: When the image was created
1817
+ * - `status`: Current status of the image
1818
+ * - `errorMessage`: Any applicable error message pertaining to the image
1819
+ */
1820
+ private: boolean;
1821
+ regions: string[];
1822
+ sizeGigabytes: number;
1823
+ slug: string;
1824
+ status: string;
1825
+ tags: string[];
1826
+ type: string;
1827
+ }
1828
+ export interface GetImagesSort {
1829
+ /**
1830
+ * The sort direction. This may be either `asc` or `desc`.
1831
+ */
1832
+ direction?: string;
1833
+ /**
1834
+ * Sort the images by this key. This may be one of `distribution`, `errorMessage`, `id`,
1835
+ * `image`, `minDiskSize`, `name`, `private`, `sizeGigabytes`, `slug`, `status`, or `type`.
1836
+ */
1837
+ key: string;
1838
+ }
1839
+ export interface GetKubernetesClusterKubeConfig {
1840
+ /**
1841
+ * The base64 encoded public certificate used by clients to access the cluster. Only available if token authentication is not supported on your cluster.
1842
+ */
1843
+ clientCertificate: string;
1844
+ /**
1845
+ * The base64 encoded private key used by clients to access the cluster. Only available if token authentication is not supported on your cluster.
1846
+ */
1847
+ clientKey: string;
1848
+ /**
1849
+ * The base64 encoded public certificate for the cluster's certificate authority.
1850
+ */
1851
+ clusterCaCertificate: string;
1852
+ /**
1853
+ * The date and time when the credentials will expire and need to be regenerated.
1854
+ */
1855
+ expiresAt: string;
1856
+ /**
1857
+ * The URL of the API server on the Kubernetes master node.
1858
+ */
1859
+ host: string;
1860
+ /**
1861
+ * The full contents of the Kubernetes cluster's kubeconfig file.
1862
+ */
1863
+ rawConfig: string;
1864
+ /**
1865
+ * The DigitalOcean API access token used by clients to access the cluster.
1866
+ */
1867
+ token: string;
1868
+ }
1869
+ export interface GetKubernetesClusterMaintenancePolicy {
1870
+ /**
1871
+ * The day for the service window of the Kubernetes cluster.
1872
+ */
1873
+ day: string;
1874
+ /**
1875
+ * The duration of the operation.
1876
+ */
1877
+ duration: string;
1878
+ /**
1879
+ * The start time of the upgrade operation.
1880
+ */
1881
+ startTime: string;
1882
+ }
1883
+ export interface GetKubernetesClusterNodePool {
1884
+ /**
1885
+ * The actual number of nodes in the node pool, which is especially useful when auto-scaling is enabled.
1886
+ */
1887
+ actualNodeCount: number;
1888
+ /**
1889
+ * A boolean indicating whether auto-scaling is enabled on the node pool.
1890
+ */
1891
+ autoScale: boolean;
1892
+ /**
1893
+ * A unique ID that can be used to identify and reference the node.
1894
+ */
1895
+ id: string;
1896
+ /**
1897
+ * A map of key/value pairs applied to nodes in the pool. The labels are exposed in the Kubernetes API as labels in the metadata of the corresponding [Node resources](https://kubernetes.io/docs/concepts/architecture/nodes/).
1898
+ */
1899
+ labels: {
1900
+ [key: string]: string;
1901
+ };
1902
+ /**
1903
+ * If auto-scaling is enabled, this represents the maximum number of nodes that the node pool can be scaled up to.
1904
+ */
1905
+ maxNodes: number;
1906
+ /**
1907
+ * If auto-scaling is enabled, this represents the minimum number of nodes that the node pool can be scaled down to.
1908
+ */
1909
+ minNodes: number;
1910
+ /**
1911
+ * The name of Kubernetes cluster.
1912
+ */
1913
+ name: string;
1914
+ /**
1915
+ * The number of Droplet instances in the node pool.
1916
+ */
1917
+ nodeCount: number;
1918
+ /**
1919
+ * A list of nodes in the pool. Each node exports the following attributes:
1920
+ */
1921
+ nodes: outputs.GetKubernetesClusterNodePoolNode[];
1922
+ /**
1923
+ * The slug identifier for the type of Droplet used as workers in the node pool.
1924
+ */
1925
+ size: string;
1926
+ /**
1927
+ * A list of tag names applied to the node pool.
1928
+ */
1929
+ tags: string[];
1930
+ /**
1931
+ * A list of taints applied to all nodes in the pool. Each taint exports the following attributes:
1932
+ */
1933
+ taints: outputs.GetKubernetesClusterNodePoolTaint[];
1934
+ }
1935
+ export interface GetKubernetesClusterNodePoolNode {
1936
+ /**
1937
+ * The date and time when the node was created.
1938
+ */
1939
+ createdAt: string;
1940
+ dropletId: string;
1941
+ /**
1942
+ * A unique ID that can be used to identify and reference the node.
1943
+ */
1944
+ id: string;
1945
+ /**
1946
+ * The name of Kubernetes cluster.
1947
+ */
1948
+ name: string;
1949
+ /**
1950
+ * A string indicating the current status of the individual node.
1951
+ */
1952
+ status: string;
1953
+ /**
1954
+ * The date and time when the node was last updated.
1955
+ */
1956
+ updatedAt: string;
1957
+ }
1958
+ export interface GetKubernetesClusterNodePoolTaint {
1959
+ /**
1960
+ * How the node reacts to pods that it won't tolerate. Available effect values are: "NoSchedule", "PreferNoSchedule", "NoExecute".
1961
+ */
1962
+ effect: string;
1963
+ /**
1964
+ * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
1965
+ */
1966
+ key: string;
1967
+ /**
1968
+ * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
1969
+ */
1970
+ value: string;
1971
+ }
1972
+ export interface GetLoadBalancerForwardingRule {
1973
+ certificateId: string;
1974
+ certificateName: string;
1975
+ entryPort: number;
1976
+ entryProtocol: string;
1977
+ targetPort: number;
1978
+ targetProtocol: string;
1979
+ tlsPassthrough: boolean;
1980
+ }
1981
+ export interface GetLoadBalancerHealthcheck {
1982
+ checkIntervalSeconds: number;
1983
+ healthyThreshold: number;
1984
+ path: string;
1985
+ port: number;
1986
+ protocol: string;
1987
+ responseTimeoutSeconds: number;
1988
+ unhealthyThreshold: number;
1989
+ }
1990
+ export interface GetLoadBalancerStickySession {
1991
+ cookieName: string;
1992
+ cookieTtlSeconds: number;
1993
+ type: string;
1994
+ }
1995
+ export interface GetProjectsFilter {
1996
+ /**
1997
+ * Set to `true` to require that a field match all of the `values` instead of just one or more of
1998
+ * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
1999
+ * that all of the `values` are present in the list or set.
2000
+ */
2001
+ all?: boolean;
2002
+ /**
2003
+ * Filter the projects by this key. This may be one of `name`,
2004
+ * `purpose`, `description`, `environment`, or `isDefault`.
2005
+ */
2006
+ key: string;
2007
+ /**
2008
+ * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
2009
+ * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
2010
+ * substrings to find within the string field.
2011
+ */
2012
+ matchBy?: string;
2013
+ /**
2014
+ * A list of values to match against the `key` field. Only retrieves projects
2015
+ * where the `key` field takes on one or more of the values provided here.
2016
+ */
2017
+ values: string[];
2018
+ }
2019
+ export interface GetProjectsProject {
2020
+ /**
2021
+ * The date and time when the project was created, (ISO8601)
2022
+ */
2023
+ createdAt: string;
2024
+ /**
2025
+ * The description of the project
2026
+ */
2027
+ description: string;
2028
+ /**
2029
+ * The environment of the project's resources. The possible values are: `Development`, `Staging`, `Production`.
2030
+ */
2031
+ environment: string;
2032
+ /**
2033
+ * The ID of the project
2034
+ */
2035
+ id: string;
2036
+ isDefault: boolean;
2037
+ /**
2038
+ * The name of the project
2039
+ */
2040
+ name: string;
2041
+ /**
2042
+ * The ID of the project owner
2043
+ */
2044
+ ownerId: number;
2045
+ /**
2046
+ * The unique universal identifier of the project owner
2047
+ */
2048
+ ownerUuid: string;
2049
+ /**
2050
+ * The purpose of the project (Default: "Web Application")
2051
+ */
2052
+ purpose: string;
2053
+ /**
2054
+ * A set of uniform resource names (URNs) for the resources associated with the project
2055
+ */
2056
+ resources: string[];
2057
+ /**
2058
+ * The date and time when the project was last updated, (ISO8601)
2059
+ */
2060
+ updatedAt: string;
2061
+ }
2062
+ export interface GetProjectsSort {
2063
+ /**
2064
+ * The sort direction. This may be either `asc` or `desc`.
2065
+ */
2066
+ direction?: string;
2067
+ /**
2068
+ * Sort the projects by this key. This may be one of `name`,
2069
+ * `purpose`, `description`, or `environment`.
2070
+ */
2071
+ key: string;
2072
+ }
2073
+ export interface GetRecordsFilter {
2074
+ /**
2075
+ * Set to `true` to require that a field match all of the `values` instead of just one or more of
2076
+ * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
2077
+ * that all of the `values` are present in the list or set.
2078
+ */
2079
+ all?: boolean;
2080
+ /**
2081
+ * Filter the DNS records by this key. This may be one of `domain`, `flags`, `name`, `port`,
2082
+ * `priority`, `tag`, `ttl`, `type`, `value`, or `weight`.
2083
+ */
2084
+ key: string;
2085
+ /**
2086
+ * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
2087
+ * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
2088
+ * substrings to find within the string field.
2089
+ */
2090
+ matchBy?: string;
2091
+ /**
2092
+ * A list of values to match against the `key` field. Only retrieves DNS records
2093
+ * where the `key` field takes on one or more of the values provided here.
2094
+ */
2095
+ values: string[];
2096
+ }
2097
+ export interface GetRecordsRecord {
2098
+ /**
2099
+ * The domain name to search for DNS records
2100
+ */
2101
+ domain: string;
2102
+ flags: number;
2103
+ id: number;
2104
+ name: string;
2105
+ port: number;
2106
+ priority: number;
2107
+ tag: string;
2108
+ ttl: number;
2109
+ type: string;
2110
+ value: string;
2111
+ weight: number;
2112
+ }
2113
+ export interface GetRecordsSort {
2114
+ /**
2115
+ * The sort direction. This may be either `asc` or `desc`.
2116
+ */
2117
+ direction?: string;
2118
+ /**
2119
+ * Sort the DNS records by this key. This may be one of `domain`, `flags`, `name`, `port`,
2120
+ * `priority`, `tag`, `ttl`, `type`, `value`, or `weight`.
2121
+ */
2122
+ key: string;
2123
+ }
2124
+ export interface GetRegionsFilter {
2125
+ /**
2126
+ * Set to `true` to require that a field match all of the `values` instead of just one or more of
2127
+ * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
2128
+ * that all of the `values` are present in the list or set.
2129
+ */
2130
+ all?: boolean;
2131
+ /**
2132
+ * Filter the regions by this key. This may be one of `slug`,
2133
+ * `name`, `available`, `features`, or `sizes`.
2134
+ */
2135
+ key: string;
2136
+ /**
2137
+ * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
2138
+ * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
2139
+ * substrings to find within the string field.
2140
+ */
2141
+ matchBy?: string;
2142
+ /**
2143
+ * A list of values to match against the `key` field. Only retrieves regions
2144
+ * where the `key` field takes on one or more of the values provided here.
2145
+ */
2146
+ values: string[];
2147
+ }
2148
+ export interface GetRegionsRegion {
2149
+ /**
2150
+ * A boolean value that represents whether new Droplets can be created in this region.
2151
+ */
2152
+ available: boolean;
2153
+ /**
2154
+ * A set of features available in this region.
2155
+ */
2156
+ features: string[];
2157
+ /**
2158
+ * The display name of the region.
2159
+ */
2160
+ name: string;
2161
+ /**
2162
+ * A set of identifying slugs for the Droplet sizes available in this region.
2163
+ */
2164
+ sizes: string[];
2165
+ /**
2166
+ * A human-readable string that is used as a unique identifier for each region.
2167
+ */
2168
+ slug: string;
2169
+ }
2170
+ export interface GetRegionsSort {
2171
+ /**
2172
+ * The sort direction. This may be either `asc` or `desc`.
2173
+ */
2174
+ direction?: string;
2175
+ /**
2176
+ * Sort the regions by this key. This may be one of `slug`,
2177
+ * `name`, or `available`.
2178
+ */
2179
+ key: string;
2180
+ }
2181
+ export interface GetSizesFilter {
2182
+ /**
2183
+ * Set to `true` to require that a field match all of the `values` instead of just one or more of
2184
+ * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
2185
+ * that all of the `values` are present in the list or set.
2186
+ */
2187
+ all?: boolean;
2188
+ /**
2189
+ * Filter the sizes by this key. This may be one of `slug`,
2190
+ * `regions`, `memory`, `vcpus`, `disk`, `transfer`, `priceMonthly`,
2191
+ * `priceHourly`, or `available`.
2192
+ */
2193
+ key: string;
2194
+ /**
2195
+ * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
2196
+ * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
2197
+ * substrings to find within the string field.
2198
+ */
2199
+ matchBy?: string;
2200
+ /**
2201
+ * Only retrieves sizes which keys has value that matches
2202
+ * one of the values provided here.
2203
+ */
2204
+ values: string[];
2205
+ }
2206
+ export interface GetSizesSize {
2207
+ /**
2208
+ * This represents whether new Droplets can be created with this size.
2209
+ */
2210
+ available: boolean;
2211
+ /**
2212
+ * The amount of disk space set aside for Droplets of this size. The value is measured in gigabytes.
2213
+ */
2214
+ disk: number;
2215
+ /**
2216
+ * The amount of RAM allocated to Droplets created of this size. The value is measured in megabytes.
2217
+ */
2218
+ memory: number;
2219
+ /**
2220
+ * The hourly cost of Droplets created in this size as measured hourly. The value is measured in US dollars.
2221
+ */
2222
+ priceHourly: number;
2223
+ /**
2224
+ * The monthly cost of Droplets created in this size if they are kept for an entire month. The value is measured in US dollars.
2225
+ */
2226
+ priceMonthly: number;
2227
+ /**
2228
+ * List of region slugs where Droplets can be created in this size.
2229
+ */
2230
+ regions: string[];
2231
+ /**
2232
+ * A human-readable string that is used to uniquely identify each size.
2233
+ */
2234
+ slug: string;
2235
+ /**
2236
+ * The amount of transfer bandwidth that is available for Droplets created in this size. This only counts traffic on the public interface. The value is given in terabytes.
2237
+ */
2238
+ transfer: number;
2239
+ /**
2240
+ * The number of CPUs allocated to Droplets of this size.
2241
+ */
2242
+ vcpus: number;
2243
+ }
2244
+ export interface GetSizesSort {
2245
+ /**
2246
+ * The sort direction. This may be either `asc` or `desc`.
2247
+ */
2248
+ direction?: string;
2249
+ /**
2250
+ * Sort the sizes by this key. This may be one of `slug`,
2251
+ * `memory`, `vcpus`, `disk`, `transfer`, `priceMonthly`, or `priceHourly`.
2252
+ */
2253
+ key: string;
2254
+ }
2255
+ export interface GetSpacesBucketsBucket {
2256
+ /**
2257
+ * The FQDN of the bucket (e.g. bucket-name.nyc3.digitaloceanspaces.com)
2258
+ */
2259
+ bucketDomainName: string;
2260
+ /**
2261
+ * The name of the Spaces bucket
2262
+ */
2263
+ name: string;
2264
+ /**
2265
+ * The slug of the region where the bucket is stored.
2266
+ */
2267
+ region: string;
2268
+ /**
2269
+ * The uniform resource name of the bucket
2270
+ */
2271
+ urn: string;
2272
+ }
2273
+ export interface GetSpacesBucketsFilter {
2274
+ /**
2275
+ * Set to `true` to require that a field match all of the `values` instead of just one or more of
2276
+ * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
2277
+ * that all of the `values` are present in the list or set.
2278
+ */
2279
+ all?: boolean;
2280
+ /**
2281
+ * Filter the images by this key. This may be one of `bucketDomainName`, `name`, `region`, or `urn`.
2282
+ */
2283
+ key: string;
2284
+ /**
2285
+ * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
2286
+ * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
2287
+ * substrings to find within the string field.
2288
+ */
2289
+ matchBy?: string;
2290
+ /**
2291
+ * A list of values to match against the `key` field. Only retrieves Spaces buckets
2292
+ * where the `key` field takes on one or more of the values provided here.
2293
+ */
2294
+ values: string[];
2295
+ }
2296
+ export interface GetSpacesBucketsSort {
2297
+ /**
2298
+ * The sort direction. This may be either `asc` or `desc`.
2299
+ */
2300
+ direction?: string;
2301
+ /**
2302
+ * Sort the images by this key. This may be one of `bucketDomainName`, `name`, `region`, or `urn`.
2303
+ */
2304
+ key: string;
2305
+ }
2306
+ export interface GetSshKeysFilter {
2307
+ all?: boolean;
2308
+ /**
2309
+ * Filter the SSH Keys by this key. This may be one of `name`, `publicKey`, or `fingerprint`.
2310
+ */
2311
+ key: string;
2312
+ matchBy?: string;
2313
+ values: string[];
2314
+ }
2315
+ export interface GetSshKeysSort {
2316
+ /**
2317
+ * The sort direction. This may be either `asc` or `desc`.
2318
+ */
2319
+ direction?: string;
2320
+ /**
2321
+ * Sort the SSH Keys by this key. This may be one of `name`, `publicKey`, or `fingerprint`.
2322
+ */
2323
+ key: string;
2324
+ }
2325
+ export interface GetSshKeysSshKey {
2326
+ fingerprint: string;
2327
+ /**
2328
+ * The ID of the ssh key.
2329
+ * * `name`: The name of the ssh key.
2330
+ * * `publicKey`: The public key of the ssh key.
2331
+ * * `fingerprint`: The fingerprint of the public key of the ssh key.
2332
+ */
2333
+ id: number;
2334
+ name: string;
2335
+ publicKey: string;
2336
+ }
2337
+ export interface GetTagsFilter {
2338
+ /**
2339
+ * Set to `true` to require that a field match all of the `values` instead of just one or more of
2340
+ * them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure
2341
+ * that all of the `values` are present in the list or set.
2342
+ */
2343
+ all?: boolean;
2344
+ /**
2345
+ * Filter the tags by this key. This may be one of `name`, `totalResourceCount`, `dropletsCount`, `imagesCount`, `volumesCount`, `volumeSnapshotsCount`, or `databasesCount`.
2346
+ */
2347
+ key: string;
2348
+ /**
2349
+ * One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to
2350
+ * match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as
2351
+ * substrings to find within the string field.
2352
+ */
2353
+ matchBy?: string;
2354
+ /**
2355
+ * Only retrieves tags which keys has value that matches
2356
+ * one of the values provided here.
2357
+ */
2358
+ values: string[];
2359
+ }
2360
+ export interface GetTagsSort {
2361
+ /**
2362
+ * The sort direction. This may be either `asc` or `desc`.
2363
+ */
2364
+ direction?: string;
2365
+ /**
2366
+ * Sort the tags by this key. This may be one of `name`, `totalResourceCount`, `dropletsCount`, `imagesCount`, `volumesCount`, `volumeSnapshotsCount`, or `databasesCount`.
2367
+ */
2368
+ key: string;
2369
+ }
2370
+ export interface GetTagsTag {
2371
+ /**
2372
+ * A count of the database clusters that the tag is applied to.
2373
+ */
2374
+ databasesCount: number;
2375
+ /**
2376
+ * A count of the Droplets the tag is applied to.
2377
+ */
2378
+ dropletsCount: number;
2379
+ /**
2380
+ * A count of the images that the tag is applied to.
2381
+ */
2382
+ imagesCount: number;
2383
+ /**
2384
+ * The name of the tag.
2385
+ */
2386
+ name: string;
2387
+ /**
2388
+ * A count of the total number of resources that the tag is applied to.
2389
+ */
2390
+ totalResourceCount: number;
2391
+ /**
2392
+ * A count of the volume snapshots that the tag is applied to.
2393
+ */
2394
+ volumeSnapshotsCount: number;
2395
+ /**
2396
+ * A count of the volumes that the tag is applied to.
2397
+ */
2398
+ volumesCount: number;
2399
+ }
2400
+ export interface KubernetesClusterKubeConfig {
2401
+ /**
2402
+ * The base64 encoded public certificate used by clients to access the cluster. Only available if token authentication is not supported on your cluster.
2403
+ */
2404
+ clientCertificate: string;
2405
+ /**
2406
+ * The base64 encoded private key used by clients to access the cluster. Only available if token authentication is not supported on your cluster.
2407
+ */
2408
+ clientKey: string;
2409
+ /**
2410
+ * The base64 encoded public certificate for the cluster's certificate authority.
2411
+ */
2412
+ clusterCaCertificate: string;
2413
+ /**
2414
+ * The date and time when the credentials will expire and need to be regenerated.
2415
+ */
2416
+ expiresAt: string;
2417
+ /**
2418
+ * The URL of the API server on the Kubernetes master node.
2419
+ */
2420
+ host: string;
2421
+ /**
2422
+ * The full contents of the Kubernetes cluster's kubeconfig file.
2423
+ */
2424
+ rawConfig: string;
2425
+ /**
2426
+ * The DigitalOcean API access token used by clients to access the cluster.
2427
+ */
2428
+ token: string;
2429
+ }
2430
+ export interface KubernetesClusterMaintenancePolicy {
2431
+ /**
2432
+ * The day of the maintenance window policy. May be one of "monday" through "sunday", or "any" to indicate an arbitrary week day.
2433
+ */
2434
+ day: string;
2435
+ duration: string;
2436
+ /**
2437
+ * The start time in UTC of the maintenance window policy in 24-hour clock format / HH:MM notation (e.g., 15:00).
2438
+ */
2439
+ startTime: string;
2440
+ }
2441
+ export interface KubernetesClusterNodePool {
2442
+ /**
2443
+ * A computed field representing the actual number of nodes in the node pool, which is especially useful when auto-scaling is enabled.
2444
+ */
2445
+ actualNodeCount: number;
2446
+ /**
2447
+ * Enable auto-scaling of the number of nodes in the node pool within the given min/max range.
2448
+ */
2449
+ autoScale?: boolean;
2450
+ /**
2451
+ * A unique ID that can be used to identify and reference the node.
2452
+ */
2453
+ id: string;
2454
+ /**
2455
+ * A map of key/value pairs to apply to nodes in the pool. The labels are exposed in the Kubernetes API as labels in the metadata of the corresponding [Node resources](https://kubernetes.io/docs/concepts/architecture/nodes/).
2456
+ */
2457
+ labels?: {
2458
+ [key: string]: string;
2459
+ };
2460
+ /**
2461
+ * If auto-scaling is enabled, this represents the maximum number of nodes that the node pool can be scaled up to.
2462
+ */
2463
+ maxNodes?: number;
2464
+ /**
2465
+ * If auto-scaling is enabled, this represents the minimum number of nodes that the node pool can be scaled down to.
2466
+ */
2467
+ minNodes?: number;
2468
+ /**
2469
+ * A name for the node pool.
2470
+ */
2471
+ name: string;
2472
+ /**
2473
+ * The number of Droplet instances in the node pool. If auto-scaling is enabled, this should only be set if the desired result is to explicitly reset the number of nodes to this value. If auto-scaling is enabled, and the node count is outside of the given min/max range, it will use the min nodes value.
2474
+ */
2475
+ nodeCount?: number;
2476
+ /**
2477
+ * A list of nodes in the pool. Each node exports the following attributes:
2478
+ */
2479
+ nodes: outputs.KubernetesClusterNodePoolNode[];
2480
+ /**
2481
+ * The slug identifier for the type of Droplet to be used as workers in the node pool.
2482
+ */
2483
+ size: string;
2484
+ /**
2485
+ * A list of tag names to be applied to the Kubernetes cluster.
2486
+ */
2487
+ tags?: string[];
2488
+ /**
2489
+ * A block representing a taint applied to all nodes in the pool. Each taint exports the following attributes (taints must be unique by key and effect pair):
2490
+ */
2491
+ taints?: outputs.KubernetesClusterNodePoolTaint[];
2492
+ }
2493
+ export interface KubernetesClusterNodePoolNode {
2494
+ /**
2495
+ * The date and time when the node was created.
2496
+ */
2497
+ createdAt: string;
2498
+ /**
2499
+ * The id of the node's droplet
2500
+ */
2501
+ dropletId: string;
2502
+ /**
2503
+ * A unique ID that can be used to identify and reference the node.
2504
+ */
2505
+ id: string;
2506
+ /**
2507
+ * A name for the node pool.
2508
+ */
2509
+ name: string;
2510
+ /**
2511
+ * A string indicating the current status of the individual node.
2512
+ */
2513
+ status: string;
2514
+ /**
2515
+ * The date and time when the node was last updated.
2516
+ */
2517
+ updatedAt: string;
2518
+ }
2519
+ export interface KubernetesClusterNodePoolTaint {
2520
+ /**
2521
+ * How the node reacts to pods that it won't tolerate. Available effect values are: "NoSchedule", "PreferNoSchedule", "NoExecute".
2522
+ */
2523
+ effect: string;
2524
+ /**
2525
+ * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
2526
+ */
2527
+ key: string;
2528
+ /**
2529
+ * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
2530
+ */
2531
+ value: string;
2532
+ }
2533
+ export interface KubernetesNodePoolNode {
2534
+ /**
2535
+ * The date and time when the node was created.
2536
+ */
2537
+ createdAt: string;
2538
+ /**
2539
+ * The id of the node's droplet
2540
+ */
2541
+ dropletId: string;
2542
+ /**
2543
+ * A unique ID that can be used to identify and reference the node.
2544
+ */
2545
+ id: string;
2546
+ /**
2547
+ * A name for the node pool.
2548
+ */
2549
+ name: string;
2550
+ /**
2551
+ * A string indicating the current status of the individual node.
2552
+ */
2553
+ status: string;
2554
+ /**
2555
+ * The date and time when the node was last updated.
2556
+ */
2557
+ updatedAt: string;
2558
+ }
2559
+ export interface KubernetesNodePoolTaint {
2560
+ /**
2561
+ * How the node reacts to pods that it won't tolerate. Available effect values are: "NoSchedule", "PreferNoSchedule", "NoExecute".
2562
+ */
2563
+ effect: string;
2564
+ /**
2565
+ * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
2566
+ */
2567
+ key: string;
2568
+ /**
2569
+ * An arbitrary string. The "key" and "value" fields of the "taint" object form a key-value pair.
2570
+ */
2571
+ value: string;
2572
+ }
2573
+ export interface LoadBalancerForwardingRule {
2574
+ /**
2575
+ * **Deprecated** The ID of the TLS certificate to be used for SSL termination.
2576
+ *
2577
+ * @deprecated Certificate IDs may change, for example when a Let's Encrypt certificate is auto-renewed. Please specify 'certificate_name' instead.
2578
+ */
2579
+ certificateId: string;
2580
+ /**
2581
+ * The unique name of the TLS certificate to be used for SSL termination.
2582
+ */
2583
+ certificateName: string;
2584
+ /**
2585
+ * An integer representing the port on which the Load Balancer instance will listen.
2586
+ */
2587
+ entryPort: number;
2588
+ /**
2589
+ * The protocol used for traffic to the Load Balancer. The possible values are: `http`, `https`, `http2` or `tcp`.
2590
+ */
2591
+ entryProtocol: string;
2592
+ /**
2593
+ * An integer representing the port on the backend Droplets to which the Load Balancer will send traffic.
2594
+ */
2595
+ targetPort: number;
2596
+ /**
2597
+ * The protocol used for traffic from the Load Balancer to the backend Droplets. The possible values are: `http`, `https`, `http2` or `tcp`.
2598
+ */
2599
+ targetProtocol: string;
2600
+ /**
2601
+ * A boolean value indicating whether SSL encrypted traffic will be passed through to the backend Droplets. The default value is `false`.
2602
+ */
2603
+ tlsPassthrough?: boolean;
2604
+ }
2605
+ export interface LoadBalancerHealthcheck {
2606
+ /**
2607
+ * The number of seconds between between two consecutive health checks. If not specified, the default value is `10`.
2608
+ */
2609
+ checkIntervalSeconds?: number;
2610
+ /**
2611
+ * The number of times a health check must pass for a backend Droplet to be marked "healthy" and be re-added to the pool. If not specified, the default value is `5`.
2612
+ */
2613
+ healthyThreshold?: number;
2614
+ /**
2615
+ * The path on the backend Droplets to which the Load Balancer instance will send a request.
2616
+ */
2617
+ path?: string;
2618
+ /**
2619
+ * An integer representing the port on the backend Droplets on which the health check will attempt a connection.
2620
+ */
2621
+ port: number;
2622
+ /**
2623
+ * The protocol used for health checks sent to the backend Droplets. The possible values are `http`, `https` or `tcp`.
2624
+ */
2625
+ protocol: string;
2626
+ /**
2627
+ * The number of seconds the Load Balancer instance will wait for a response until marking a health check as failed. If not specified, the default value is `5`.
2628
+ */
2629
+ responseTimeoutSeconds?: number;
2630
+ /**
2631
+ * The number of times a health check must fail for a backend Droplet to be marked "unhealthy" and be removed from the pool. If not specified, the default value is `3`.
2632
+ */
2633
+ unhealthyThreshold?: number;
2634
+ }
2635
+ export interface LoadBalancerStickySessions {
2636
+ /**
2637
+ * The name to be used for the cookie sent to the client. This attribute is required when using `cookies` for the sticky sessions type.
2638
+ */
2639
+ cookieName?: string;
2640
+ /**
2641
+ * The number of seconds until the cookie set by the Load Balancer expires. This attribute is required when using `cookies` for the sticky sessions type.
2642
+ */
2643
+ cookieTtlSeconds?: number;
2644
+ /**
2645
+ * An attribute indicating how and if requests from a client will be persistently served by the same backend Droplet. The possible values are `cookies` or `none`. If not specified, the default value is `none`.
2646
+ */
2647
+ type?: string;
2648
+ }
2649
+ export interface MonitorAlertAlerts {
2650
+ emails?: string[];
2651
+ slacks?: outputs.MonitorAlertAlertsSlack[];
2652
+ }
2653
+ export interface MonitorAlertAlertsSlack {
2654
+ channel: string;
2655
+ url: string;
2656
+ }
2657
+ export interface SpacesBucketCorsRule {
2658
+ /**
2659
+ * A list of headers that will be included in the CORS preflight request's `Access-Control-Request-Headers`. A header may contain one wildcard (e.g. `x-amz-*`).
2660
+ */
2661
+ allowedHeaders?: string[];
2662
+ /**
2663
+ * A list of HTTP methods (e.g. `GET`) which are allowed from the specified origin.
2664
+ */
2665
+ allowedMethods: string[];
2666
+ /**
2667
+ * A list of hosts from which requests using the specified methods are allowed. A host may contain one wildcard (e.g. http://*.example.com).
2668
+ */
2669
+ allowedOrigins: string[];
2670
+ /**
2671
+ * The time in seconds that browser can cache the response for a preflight request.
2672
+ */
2673
+ maxAgeSeconds?: number;
2674
+ }
2675
+ export interface SpacesBucketLifecycleRule {
2676
+ /**
2677
+ * Specifies the number of days after initiating a multipart
2678
+ * upload when the multipart upload must be completed or else Spaces will abort the upload.
2679
+ */
2680
+ abortIncompleteMultipartUploadDays?: number;
2681
+ /**
2682
+ * Specifies lifecycle rule status.
2683
+ */
2684
+ enabled: boolean;
2685
+ /**
2686
+ * Specifies a time period after which applicable objects expire (documented below).
2687
+ */
2688
+ expiration?: outputs.SpacesBucketLifecycleRuleExpiration;
2689
+ /**
2690
+ * Unique identifier for the rule.
2691
+ */
2692
+ id: string;
2693
+ /**
2694
+ * Specifies when non-current object versions expire (documented below).
2695
+ */
2696
+ noncurrentVersionExpiration?: outputs.SpacesBucketLifecycleRuleNoncurrentVersionExpiration;
2697
+ /**
2698
+ * Object key prefix identifying one or more objects to which the rule applies.
2699
+ */
2700
+ prefix?: string;
2701
+ }
2702
+ export interface SpacesBucketLifecycleRuleExpiration {
2703
+ /**
2704
+ * Specifies the date/time after which you want applicable objects to expire. The argument uses
2705
+ * RFC3339 format, e.g. "2020-03-22T15:03:55Z" or parts thereof e.g. "2019-02-28".
2706
+ */
2707
+ date?: string;
2708
+ /**
2709
+ * Specifies the number of days after object creation when the applicable objects will expire.
2710
+ */
2711
+ days?: number;
2712
+ /**
2713
+ * On a versioned bucket (versioning-enabled or versioning-suspended
2714
+ * bucket), setting this to true directs Spaces to delete expired object delete markers.
2715
+ */
2716
+ expiredObjectDeleteMarker?: boolean;
2717
+ }
2718
+ export interface SpacesBucketLifecycleRuleNoncurrentVersionExpiration {
2719
+ /**
2720
+ * Specifies the number of days after which an object's non-current versions expire.
2721
+ */
2722
+ days?: number;
2723
+ }
2724
+ export interface SpacesBucketVersioning {
2725
+ /**
2726
+ * Enable versioning. Once you version-enable a bucket, it can never return to an unversioned
2727
+ * state. You can, however, suspend versioning on that bucket.
2728
+ */
2729
+ enabled?: boolean;
2730
+ }