@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
package/customImage.js ADDED
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const pulumi = require("@pulumi/pulumi");
6
+ const utilities = require("./utilities");
7
+ /**
8
+ * Provides a resource which can be used to create a [custom image](https://www.digitalocean.com/docs/images/custom-images/)
9
+ * from a URL. The URL must point to an image in one of the following file formats:
10
+ *
11
+ * - Raw (.img) with an MBR or GPT partition table
12
+ * - qcow2
13
+ * - VHDX
14
+ * - VDI
15
+ * - VMDK
16
+ *
17
+ * The image may be compressed using gzip or bzip2. See the DigitalOcean Custom
18
+ * Image documentation for [additional requirements](https://www.digitalocean.com/docs/images/custom-images/#image-requirements).
19
+ *
20
+ * ## Example Usage
21
+ *
22
+ * ```typescript
23
+ * import * as pulumi from "@pulumi/pulumi";
24
+ * import * as digitalocean from "@pulumi/digitalocean";
25
+ *
26
+ * const flatcar = new digitalocean.CustomImage("flatcar", {
27
+ * url: "https://stable.release.flatcar-linux.net/amd64-usr/2605.7.0/flatcar_production_digitalocean_image.bin.bz2",
28
+ * regions: ["nyc3"],
29
+ * });
30
+ * const example = new digitalocean.Droplet("example", {
31
+ * image: flatcar.id,
32
+ * region: "nyc3",
33
+ * size: "s-1vcpu-1gb",
34
+ * sshKeys: [12345],
35
+ * });
36
+ * ```
37
+ */
38
+ class CustomImage extends pulumi.CustomResource {
39
+ constructor(name, argsOrState, opts) {
40
+ let inputs = {};
41
+ opts = opts || {};
42
+ if (opts.id) {
43
+ const state = argsOrState;
44
+ inputs["createdAt"] = state ? state.createdAt : undefined;
45
+ inputs["description"] = state ? state.description : undefined;
46
+ inputs["distribution"] = state ? state.distribution : undefined;
47
+ inputs["imageId"] = state ? state.imageId : undefined;
48
+ inputs["minDiskSize"] = state ? state.minDiskSize : undefined;
49
+ inputs["name"] = state ? state.name : undefined;
50
+ inputs["public"] = state ? state.public : undefined;
51
+ inputs["regions"] = state ? state.regions : undefined;
52
+ inputs["sizeGigabytes"] = state ? state.sizeGigabytes : undefined;
53
+ inputs["slug"] = state ? state.slug : undefined;
54
+ inputs["status"] = state ? state.status : undefined;
55
+ inputs["tags"] = state ? state.tags : undefined;
56
+ inputs["type"] = state ? state.type : undefined;
57
+ inputs["url"] = state ? state.url : undefined;
58
+ }
59
+ else {
60
+ const args = argsOrState;
61
+ if ((!args || args.regions === undefined) && !opts.urn) {
62
+ throw new Error("Missing required property 'regions'");
63
+ }
64
+ if ((!args || args.url === undefined) && !opts.urn) {
65
+ throw new Error("Missing required property 'url'");
66
+ }
67
+ inputs["description"] = args ? args.description : undefined;
68
+ inputs["distribution"] = args ? args.distribution : undefined;
69
+ inputs["name"] = args ? args.name : undefined;
70
+ inputs["regions"] = args ? args.regions : undefined;
71
+ inputs["tags"] = args ? args.tags : undefined;
72
+ inputs["url"] = args ? args.url : undefined;
73
+ inputs["createdAt"] = undefined /*out*/;
74
+ inputs["imageId"] = undefined /*out*/;
75
+ inputs["minDiskSize"] = undefined /*out*/;
76
+ inputs["public"] = undefined /*out*/;
77
+ inputs["sizeGigabytes"] = undefined /*out*/;
78
+ inputs["slug"] = undefined /*out*/;
79
+ inputs["status"] = undefined /*out*/;
80
+ inputs["type"] = undefined /*out*/;
81
+ }
82
+ if (!opts.version) {
83
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
84
+ }
85
+ super(CustomImage.__pulumiType, name, inputs, opts);
86
+ }
87
+ /**
88
+ * Get an existing CustomImage resource's state with the given name, ID, and optional extra
89
+ * properties used to qualify the lookup.
90
+ *
91
+ * @param name The _unique_ name of the resulting resource.
92
+ * @param id The _unique_ provider ID of the resource to lookup.
93
+ * @param state Any extra arguments used during the lookup.
94
+ * @param opts Optional settings to control the behavior of the CustomResource.
95
+ */
96
+ static get(name, id, state, opts) {
97
+ return new CustomImage(name, state, Object.assign(Object.assign({}, opts), { id: id }));
98
+ }
99
+ /**
100
+ * Returns true if the given object is an instance of CustomImage. This is designed to work even
101
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
102
+ */
103
+ static isInstance(obj) {
104
+ if (obj === undefined || obj === null) {
105
+ return false;
106
+ }
107
+ return obj['__pulumiType'] === CustomImage.__pulumiType;
108
+ }
109
+ }
110
+ exports.CustomImage = CustomImage;
111
+ /** @internal */
112
+ CustomImage.__pulumiType = 'digitalocean:index/customImage:CustomImage';
113
+ //# sourceMappingURL=customImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customImage.js","sourceRoot":"","sources":["../customImage.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAa,WAAY,SAAQ,MAAM,CAAC,cAAc;IAqElD,YAAY,IAAY,EAAE,WAAgD,EAAE,IAAmC;QAC3G,IAAI,MAAM,GAAkB,EAAE,CAAC;QAC/B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA2C,CAAC;YAC1D,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YACpD,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,MAAM,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;SACjD;aAAM;YACH,MAAM,IAAI,GAAG,WAA0C,CAAC;YACxD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aAC1D;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAChD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;aACtD;YACD,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9C,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5C,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACxC,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACtC,MAAM,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACrC,MAAM,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACnC,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SACtC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,EAAC,CAAC,CAAC;SACxE;QACD,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAlHD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAwB,EAAE,IAAmC;QACtH,OAAO,IAAI,WAAW,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAClE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,WAAW,CAAC,YAAY,CAAC;IAC5D,CAAC;;AA1BL,kCAoHC;AAtGG,gBAAgB;AACO,wBAAY,GAAG,4CAA4C,CAAC"}
@@ -0,0 +1,306 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import { input as inputs, output as outputs, enums } from "./types";
3
+ /**
4
+ * Provides a DigitalOcean database cluster resource.
5
+ *
6
+ * ## Example Usage
7
+ * ### Create a new PostgreSQL database cluster
8
+ * ```typescript
9
+ * import * as pulumi from "@pulumi/pulumi";
10
+ * import * as digitalocean from "@pulumi/digitalocean";
11
+ *
12
+ * const postgres_example = new digitalocean.DatabaseCluster("postgres-example", {
13
+ * engine: "pg",
14
+ * nodeCount: 1,
15
+ * region: "nyc1",
16
+ * size: "db-s-1vcpu-1gb",
17
+ * version: "11",
18
+ * });
19
+ * ```
20
+ * ### Create a new MySQL database cluster
21
+ * ```typescript
22
+ * import * as pulumi from "@pulumi/pulumi";
23
+ * import * as digitalocean from "@pulumi/digitalocean";
24
+ *
25
+ * const mysql_example = new digitalocean.DatabaseCluster("mysql-example", {
26
+ * engine: "mysql",
27
+ * nodeCount: 1,
28
+ * region: "nyc1",
29
+ * size: "db-s-1vcpu-1gb",
30
+ * version: "8",
31
+ * });
32
+ * ```
33
+ * ### Create a new Redis database cluster
34
+ * ```typescript
35
+ * import * as pulumi from "@pulumi/pulumi";
36
+ * import * as digitalocean from "@pulumi/digitalocean";
37
+ *
38
+ * const redis_example = new digitalocean.DatabaseCluster("redis-example", {
39
+ * engine: "redis",
40
+ * nodeCount: 1,
41
+ * region: "nyc1",
42
+ * size: "db-s-1vcpu-1gb",
43
+ * version: "6",
44
+ * });
45
+ * ```
46
+ * ### Create a new MongoDB database cluster
47
+ * ```typescript
48
+ * import * as pulumi from "@pulumi/pulumi";
49
+ * import * as digitalocean from "@pulumi/digitalocean";
50
+ *
51
+ * const mongodb_example = new digitalocean.DatabaseCluster("mongodb-example", {
52
+ * engine: "mongodb",
53
+ * nodeCount: 1,
54
+ * region: "nyc3",
55
+ * size: "db-s-1vcpu-1gb",
56
+ * version: "4",
57
+ * });
58
+ * ```
59
+ *
60
+ * ## Import
61
+ *
62
+ * Database clusters can be imported using the `id` returned from DigitalOcean, e.g.
63
+ *
64
+ * ```sh
65
+ * $ pulumi import digitalocean:index/databaseCluster:DatabaseCluster mycluster 245bcfd0-7f31-4ce6-a2bc-475a116cca97
66
+ * ```
67
+ */
68
+ export declare class DatabaseCluster extends pulumi.CustomResource {
69
+ /**
70
+ * Get an existing DatabaseCluster resource's state with the given name, ID, and optional extra
71
+ * properties used to qualify the lookup.
72
+ *
73
+ * @param name The _unique_ name of the resulting resource.
74
+ * @param id The _unique_ provider ID of the resource to lookup.
75
+ * @param state Any extra arguments used during the lookup.
76
+ * @param opts Optional settings to control the behavior of the CustomResource.
77
+ */
78
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: DatabaseClusterState, opts?: pulumi.CustomResourceOptions): DatabaseCluster;
79
+ /**
80
+ * Returns true if the given object is an instance of DatabaseCluster. This is designed to work even
81
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
82
+ */
83
+ static isInstance(obj: any): obj is DatabaseCluster;
84
+ /**
85
+ * The uniform resource name of the database cluster.
86
+ */
87
+ readonly clusterUrn: pulumi.Output<string>;
88
+ /**
89
+ * Name of the cluster's default database.
90
+ */
91
+ readonly database: pulumi.Output<string>;
92
+ /**
93
+ * Database engine used by the cluster (ex. `pg` for PostreSQL, `mysql` for MySQL, `redis` for Redis, or `mongodb` for MongoDB).
94
+ */
95
+ readonly engine: pulumi.Output<string>;
96
+ /**
97
+ * A string specifying the eviction policy for a Redis cluster. Valid values are: `noeviction`, `allkeysLru`, `allkeysRandom`, `volatileLru`, `volatileRandom`, or `volatileTtl`.
98
+ */
99
+ readonly evictionPolicy: pulumi.Output<string | undefined>;
100
+ /**
101
+ * Database cluster's hostname.
102
+ */
103
+ readonly host: pulumi.Output<string>;
104
+ /**
105
+ * Defines when the automatic maintenance should be performed for the database cluster.
106
+ */
107
+ readonly maintenanceWindows: pulumi.Output<outputs.DatabaseClusterMaintenanceWindow[] | undefined>;
108
+ /**
109
+ * The name of the database cluster.
110
+ */
111
+ readonly name: pulumi.Output<string>;
112
+ /**
113
+ * Number of nodes that will be included in the cluster.
114
+ */
115
+ readonly nodeCount: pulumi.Output<number>;
116
+ /**
117
+ * Password for the cluster's default user.
118
+ */
119
+ readonly password: pulumi.Output<string>;
120
+ /**
121
+ * Network port that the database cluster is listening on.
122
+ */
123
+ readonly port: pulumi.Output<number>;
124
+ /**
125
+ * Same as `host`, but only accessible from resources within the account and in the same region.
126
+ */
127
+ readonly privateHost: pulumi.Output<string>;
128
+ /**
129
+ * The ID of the VPC where the database cluster will be located.
130
+ */
131
+ readonly privateNetworkUuid: pulumi.Output<string>;
132
+ /**
133
+ * Same as `uri`, but only accessible from resources within the account and in the same region.
134
+ */
135
+ readonly privateUri: pulumi.Output<string>;
136
+ /**
137
+ * DigitalOcean region where the cluster will reside.
138
+ */
139
+ readonly region: pulumi.Output<string>;
140
+ /**
141
+ * Database Droplet size associated with the cluster (ex. `db-s-1vcpu-1gb`). See here for a [list of valid size slugs](https://docs.digitalocean.com/reference/api/api-reference/#tag/Databases).
142
+ */
143
+ readonly size: pulumi.Output<string>;
144
+ /**
145
+ * A comma separated string specifying the SQL modes for a MySQL cluster.
146
+ */
147
+ readonly sqlMode: pulumi.Output<string | undefined>;
148
+ /**
149
+ * A list of tag names to be applied to the database cluster.
150
+ */
151
+ readonly tags: pulumi.Output<string[] | undefined>;
152
+ /**
153
+ * The full URI for connecting to the database cluster.
154
+ */
155
+ readonly uri: pulumi.Output<string>;
156
+ /**
157
+ * Username for the cluster's default user.
158
+ */
159
+ readonly user: pulumi.Output<string>;
160
+ /**
161
+ * Engine version used by the cluster (ex. `11` for PostgreSQL 11).
162
+ */
163
+ readonly version: pulumi.Output<string | undefined>;
164
+ /**
165
+ * Create a DatabaseCluster resource with the given unique name, arguments, and options.
166
+ *
167
+ * @param name The _unique_ name of the resource.
168
+ * @param args The arguments to use to populate this resource's properties.
169
+ * @param opts A bag of options that control this resource's behavior.
170
+ */
171
+ constructor(name: string, args: DatabaseClusterArgs, opts?: pulumi.CustomResourceOptions);
172
+ }
173
+ /**
174
+ * Input properties used for looking up and filtering DatabaseCluster resources.
175
+ */
176
+ export interface DatabaseClusterState {
177
+ /**
178
+ * The uniform resource name of the database cluster.
179
+ */
180
+ clusterUrn?: pulumi.Input<string>;
181
+ /**
182
+ * Name of the cluster's default database.
183
+ */
184
+ database?: pulumi.Input<string>;
185
+ /**
186
+ * Database engine used by the cluster (ex. `pg` for PostreSQL, `mysql` for MySQL, `redis` for Redis, or `mongodb` for MongoDB).
187
+ */
188
+ engine?: pulumi.Input<string>;
189
+ /**
190
+ * A string specifying the eviction policy for a Redis cluster. Valid values are: `noeviction`, `allkeysLru`, `allkeysRandom`, `volatileLru`, `volatileRandom`, or `volatileTtl`.
191
+ */
192
+ evictionPolicy?: pulumi.Input<string>;
193
+ /**
194
+ * Database cluster's hostname.
195
+ */
196
+ host?: pulumi.Input<string>;
197
+ /**
198
+ * Defines when the automatic maintenance should be performed for the database cluster.
199
+ */
200
+ maintenanceWindows?: pulumi.Input<pulumi.Input<inputs.DatabaseClusterMaintenanceWindow>[]>;
201
+ /**
202
+ * The name of the database cluster.
203
+ */
204
+ name?: pulumi.Input<string>;
205
+ /**
206
+ * Number of nodes that will be included in the cluster.
207
+ */
208
+ nodeCount?: pulumi.Input<number>;
209
+ /**
210
+ * Password for the cluster's default user.
211
+ */
212
+ password?: pulumi.Input<string>;
213
+ /**
214
+ * Network port that the database cluster is listening on.
215
+ */
216
+ port?: pulumi.Input<number>;
217
+ /**
218
+ * Same as `host`, but only accessible from resources within the account and in the same region.
219
+ */
220
+ privateHost?: pulumi.Input<string>;
221
+ /**
222
+ * The ID of the VPC where the database cluster will be located.
223
+ */
224
+ privateNetworkUuid?: pulumi.Input<string>;
225
+ /**
226
+ * Same as `uri`, but only accessible from resources within the account and in the same region.
227
+ */
228
+ privateUri?: pulumi.Input<string>;
229
+ /**
230
+ * DigitalOcean region where the cluster will reside.
231
+ */
232
+ region?: pulumi.Input<string | enums.Region>;
233
+ /**
234
+ * Database Droplet size associated with the cluster (ex. `db-s-1vcpu-1gb`). See here for a [list of valid size slugs](https://docs.digitalocean.com/reference/api/api-reference/#tag/Databases).
235
+ */
236
+ size?: pulumi.Input<string | enums.DatabaseSlug>;
237
+ /**
238
+ * A comma separated string specifying the SQL modes for a MySQL cluster.
239
+ */
240
+ sqlMode?: pulumi.Input<string>;
241
+ /**
242
+ * A list of tag names to be applied to the database cluster.
243
+ */
244
+ tags?: pulumi.Input<pulumi.Input<string>[]>;
245
+ /**
246
+ * The full URI for connecting to the database cluster.
247
+ */
248
+ uri?: pulumi.Input<string>;
249
+ /**
250
+ * Username for the cluster's default user.
251
+ */
252
+ user?: pulumi.Input<string>;
253
+ /**
254
+ * Engine version used by the cluster (ex. `11` for PostgreSQL 11).
255
+ */
256
+ version?: pulumi.Input<string>;
257
+ }
258
+ /**
259
+ * The set of arguments for constructing a DatabaseCluster resource.
260
+ */
261
+ export interface DatabaseClusterArgs {
262
+ /**
263
+ * Database engine used by the cluster (ex. `pg` for PostreSQL, `mysql` for MySQL, `redis` for Redis, or `mongodb` for MongoDB).
264
+ */
265
+ engine: pulumi.Input<string>;
266
+ /**
267
+ * A string specifying the eviction policy for a Redis cluster. Valid values are: `noeviction`, `allkeysLru`, `allkeysRandom`, `volatileLru`, `volatileRandom`, or `volatileTtl`.
268
+ */
269
+ evictionPolicy?: pulumi.Input<string>;
270
+ /**
271
+ * Defines when the automatic maintenance should be performed for the database cluster.
272
+ */
273
+ maintenanceWindows?: pulumi.Input<pulumi.Input<inputs.DatabaseClusterMaintenanceWindow>[]>;
274
+ /**
275
+ * The name of the database cluster.
276
+ */
277
+ name?: pulumi.Input<string>;
278
+ /**
279
+ * Number of nodes that will be included in the cluster.
280
+ */
281
+ nodeCount: pulumi.Input<number>;
282
+ /**
283
+ * The ID of the VPC where the database cluster will be located.
284
+ */
285
+ privateNetworkUuid?: pulumi.Input<string>;
286
+ /**
287
+ * DigitalOcean region where the cluster will reside.
288
+ */
289
+ region: pulumi.Input<string | enums.Region>;
290
+ /**
291
+ * Database Droplet size associated with the cluster (ex. `db-s-1vcpu-1gb`). See here for a [list of valid size slugs](https://docs.digitalocean.com/reference/api/api-reference/#tag/Databases).
292
+ */
293
+ size: pulumi.Input<string | enums.DatabaseSlug>;
294
+ /**
295
+ * A comma separated string specifying the SQL modes for a MySQL cluster.
296
+ */
297
+ sqlMode?: pulumi.Input<string>;
298
+ /**
299
+ * A list of tag names to be applied to the database cluster.
300
+ */
301
+ tags?: pulumi.Input<pulumi.Input<string>[]>;
302
+ /**
303
+ * Engine version used by the cluster (ex. `11` for PostgreSQL 11).
304
+ */
305
+ version?: pulumi.Input<string>;
306
+ }
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const pulumi = require("@pulumi/pulumi");
6
+ const utilities = require("./utilities");
7
+ /**
8
+ * Provides a DigitalOcean database cluster resource.
9
+ *
10
+ * ## Example Usage
11
+ * ### Create a new PostgreSQL database cluster
12
+ * ```typescript
13
+ * import * as pulumi from "@pulumi/pulumi";
14
+ * import * as digitalocean from "@pulumi/digitalocean";
15
+ *
16
+ * const postgres_example = new digitalocean.DatabaseCluster("postgres-example", {
17
+ * engine: "pg",
18
+ * nodeCount: 1,
19
+ * region: "nyc1",
20
+ * size: "db-s-1vcpu-1gb",
21
+ * version: "11",
22
+ * });
23
+ * ```
24
+ * ### Create a new MySQL database cluster
25
+ * ```typescript
26
+ * import * as pulumi from "@pulumi/pulumi";
27
+ * import * as digitalocean from "@pulumi/digitalocean";
28
+ *
29
+ * const mysql_example = new digitalocean.DatabaseCluster("mysql-example", {
30
+ * engine: "mysql",
31
+ * nodeCount: 1,
32
+ * region: "nyc1",
33
+ * size: "db-s-1vcpu-1gb",
34
+ * version: "8",
35
+ * });
36
+ * ```
37
+ * ### Create a new Redis database cluster
38
+ * ```typescript
39
+ * import * as pulumi from "@pulumi/pulumi";
40
+ * import * as digitalocean from "@pulumi/digitalocean";
41
+ *
42
+ * const redis_example = new digitalocean.DatabaseCluster("redis-example", {
43
+ * engine: "redis",
44
+ * nodeCount: 1,
45
+ * region: "nyc1",
46
+ * size: "db-s-1vcpu-1gb",
47
+ * version: "6",
48
+ * });
49
+ * ```
50
+ * ### Create a new MongoDB database cluster
51
+ * ```typescript
52
+ * import * as pulumi from "@pulumi/pulumi";
53
+ * import * as digitalocean from "@pulumi/digitalocean";
54
+ *
55
+ * const mongodb_example = new digitalocean.DatabaseCluster("mongodb-example", {
56
+ * engine: "mongodb",
57
+ * nodeCount: 1,
58
+ * region: "nyc3",
59
+ * size: "db-s-1vcpu-1gb",
60
+ * version: "4",
61
+ * });
62
+ * ```
63
+ *
64
+ * ## Import
65
+ *
66
+ * Database clusters can be imported using the `id` returned from DigitalOcean, e.g.
67
+ *
68
+ * ```sh
69
+ * $ pulumi import digitalocean:index/databaseCluster:DatabaseCluster mycluster 245bcfd0-7f31-4ce6-a2bc-475a116cca97
70
+ * ```
71
+ */
72
+ class DatabaseCluster extends pulumi.CustomResource {
73
+ constructor(name, argsOrState, opts) {
74
+ let inputs = {};
75
+ opts = opts || {};
76
+ if (opts.id) {
77
+ const state = argsOrState;
78
+ inputs["clusterUrn"] = state ? state.clusterUrn : undefined;
79
+ inputs["database"] = state ? state.database : undefined;
80
+ inputs["engine"] = state ? state.engine : undefined;
81
+ inputs["evictionPolicy"] = state ? state.evictionPolicy : undefined;
82
+ inputs["host"] = state ? state.host : undefined;
83
+ inputs["maintenanceWindows"] = state ? state.maintenanceWindows : undefined;
84
+ inputs["name"] = state ? state.name : undefined;
85
+ inputs["nodeCount"] = state ? state.nodeCount : undefined;
86
+ inputs["password"] = state ? state.password : undefined;
87
+ inputs["port"] = state ? state.port : undefined;
88
+ inputs["privateHost"] = state ? state.privateHost : undefined;
89
+ inputs["privateNetworkUuid"] = state ? state.privateNetworkUuid : undefined;
90
+ inputs["privateUri"] = state ? state.privateUri : undefined;
91
+ inputs["region"] = state ? state.region : undefined;
92
+ inputs["size"] = state ? state.size : undefined;
93
+ inputs["sqlMode"] = state ? state.sqlMode : undefined;
94
+ inputs["tags"] = state ? state.tags : undefined;
95
+ inputs["uri"] = state ? state.uri : undefined;
96
+ inputs["user"] = state ? state.user : undefined;
97
+ inputs["version"] = state ? state.version : undefined;
98
+ }
99
+ else {
100
+ const args = argsOrState;
101
+ if ((!args || args.engine === undefined) && !opts.urn) {
102
+ throw new Error("Missing required property 'engine'");
103
+ }
104
+ if ((!args || args.nodeCount === undefined) && !opts.urn) {
105
+ throw new Error("Missing required property 'nodeCount'");
106
+ }
107
+ if ((!args || args.region === undefined) && !opts.urn) {
108
+ throw new Error("Missing required property 'region'");
109
+ }
110
+ if ((!args || args.size === undefined) && !opts.urn) {
111
+ throw new Error("Missing required property 'size'");
112
+ }
113
+ inputs["engine"] = args ? args.engine : undefined;
114
+ inputs["evictionPolicy"] = args ? args.evictionPolicy : undefined;
115
+ inputs["maintenanceWindows"] = args ? args.maintenanceWindows : undefined;
116
+ inputs["name"] = args ? args.name : undefined;
117
+ inputs["nodeCount"] = args ? args.nodeCount : undefined;
118
+ inputs["privateNetworkUuid"] = args ? args.privateNetworkUuid : undefined;
119
+ inputs["region"] = args ? args.region : undefined;
120
+ inputs["size"] = args ? args.size : undefined;
121
+ inputs["sqlMode"] = args ? args.sqlMode : undefined;
122
+ inputs["tags"] = args ? args.tags : undefined;
123
+ inputs["version"] = args ? args.version : undefined;
124
+ inputs["clusterUrn"] = undefined /*out*/;
125
+ inputs["database"] = undefined /*out*/;
126
+ inputs["host"] = undefined /*out*/;
127
+ inputs["password"] = undefined /*out*/;
128
+ inputs["port"] = undefined /*out*/;
129
+ inputs["privateHost"] = undefined /*out*/;
130
+ inputs["privateUri"] = undefined /*out*/;
131
+ inputs["uri"] = undefined /*out*/;
132
+ inputs["user"] = undefined /*out*/;
133
+ }
134
+ if (!opts.version) {
135
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
136
+ }
137
+ super(DatabaseCluster.__pulumiType, name, inputs, opts);
138
+ }
139
+ /**
140
+ * Get an existing DatabaseCluster resource's state with the given name, ID, and optional extra
141
+ * properties used to qualify the lookup.
142
+ *
143
+ * @param name The _unique_ name of the resulting resource.
144
+ * @param id The _unique_ provider ID of the resource to lookup.
145
+ * @param state Any extra arguments used during the lookup.
146
+ * @param opts Optional settings to control the behavior of the CustomResource.
147
+ */
148
+ static get(name, id, state, opts) {
149
+ return new DatabaseCluster(name, state, Object.assign(Object.assign({}, opts), { id: id }));
150
+ }
151
+ /**
152
+ * Returns true if the given object is an instance of DatabaseCluster. This is designed to work even
153
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
154
+ */
155
+ static isInstance(obj) {
156
+ if (obj === undefined || obj === null) {
157
+ return false;
158
+ }
159
+ return obj['__pulumiType'] === DatabaseCluster.__pulumiType;
160
+ }
161
+ }
162
+ exports.DatabaseCluster = DatabaseCluster;
163
+ /** @internal */
164
+ DatabaseCluster.__pulumiType = 'digitalocean:index/databaseCluster:DatabaseCluster';
165
+ //# sourceMappingURL=databaseCluster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"databaseCluster.js","sourceRoot":"","sources":["../databaseCluster.ts"],"names":[],"mappings":"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"}