@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,98 @@
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
+ * Assign resources to a DigitalOcean Project. This is useful if you need to assign resources
9
+ * managed via this provider to a DigitalOcean Project managed outside of the provider.
10
+ *
11
+ * The following resource types can be associated with a project:
12
+ *
13
+ * * Database Clusters
14
+ * * Domains
15
+ * * Droplets
16
+ * * Floating IP
17
+ * * Load Balancers
18
+ * * Spaces Bucket
19
+ * * Volume
20
+ *
21
+ * ## Example Usage
22
+ *
23
+ * The following example assigns a droplet to a Project managed outside of the provider:
24
+ *
25
+ * ```typescript
26
+ * import * as pulumi from "@pulumi/pulumi";
27
+ * import * as digitalocean from "@pulumi/digitalocean";
28
+ *
29
+ * const playground = digitalocean.getProject({
30
+ * name: "playground",
31
+ * });
32
+ * const foobar = new digitalocean.Droplet("foobar", {
33
+ * size: "512mb",
34
+ * image: "centos-7-x64",
35
+ * region: "nyc3",
36
+ * });
37
+ * const barfoo = new digitalocean.ProjectResources("barfoo", {
38
+ * project: data.digitalocean_project.foo.id,
39
+ * resources: [foobar.dropletUrn],
40
+ * });
41
+ * ```
42
+ *
43
+ * ## Import
44
+ *
45
+ * Importing this resource is not supported.
46
+ */
47
+ class ProjectResources extends pulumi.CustomResource {
48
+ constructor(name, argsOrState, opts) {
49
+ let inputs = {};
50
+ opts = opts || {};
51
+ if (opts.id) {
52
+ const state = argsOrState;
53
+ inputs["project"] = state ? state.project : undefined;
54
+ inputs["resources"] = state ? state.resources : undefined;
55
+ }
56
+ else {
57
+ const args = argsOrState;
58
+ if ((!args || args.project === undefined) && !opts.urn) {
59
+ throw new Error("Missing required property 'project'");
60
+ }
61
+ if ((!args || args.resources === undefined) && !opts.urn) {
62
+ throw new Error("Missing required property 'resources'");
63
+ }
64
+ inputs["project"] = args ? args.project : undefined;
65
+ inputs["resources"] = args ? args.resources : undefined;
66
+ }
67
+ if (!opts.version) {
68
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
69
+ }
70
+ super(ProjectResources.__pulumiType, name, inputs, opts);
71
+ }
72
+ /**
73
+ * Get an existing ProjectResources resource's state with the given name, ID, and optional extra
74
+ * properties used to qualify the lookup.
75
+ *
76
+ * @param name The _unique_ name of the resulting resource.
77
+ * @param id The _unique_ provider ID of the resource to lookup.
78
+ * @param state Any extra arguments used during the lookup.
79
+ * @param opts Optional settings to control the behavior of the CustomResource.
80
+ */
81
+ static get(name, id, state, opts) {
82
+ return new ProjectResources(name, state, Object.assign(Object.assign({}, opts), { id: id }));
83
+ }
84
+ /**
85
+ * Returns true if the given object is an instance of ProjectResources. This is designed to work even
86
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
87
+ */
88
+ static isInstance(obj) {
89
+ if (obj === undefined || obj === null) {
90
+ return false;
91
+ }
92
+ return obj['__pulumiType'] === ProjectResources.__pulumiType;
93
+ }
94
+ }
95
+ exports.ProjectResources = ProjectResources;
96
+ /** @internal */
97
+ ProjectResources.__pulumiType = 'digitalocean:index/projectResources:ProjectResources';
98
+ //# sourceMappingURL=projectResources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectResources.js","sourceRoot":"","sources":["../projectResources.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAa,gBAAiB,SAAQ,MAAM,CAAC,cAAc;IA6CvD,YAAY,IAAY,EAAE,WAA0D,EAAE,IAAmC;QACrH,IAAI,MAAM,GAAkB,EAAE,CAAC;QAC/B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAgD,CAAC;YAC/D,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;SAC7D;aAAM;YACH,MAAM,IAAI,GAAG,WAA+C,CAAC;YAC7D,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,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;aAC5D;YACD,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACpD,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3D;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,gBAAgB,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAlED;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA6B,EAAE,IAAmC;QAC3H,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IACvE,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,gBAAgB,CAAC,YAAY,CAAC;IACjE,CAAC;;AA1BL,4CAoEC;AAtDG,gBAAgB;AACO,6BAAY,GAAG,sDAAsD,CAAC"}
package/provider.d.ts ADDED
@@ -0,0 +1,67 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * The provider type for the digitalocean package. By default, resources use package-wide configuration
4
+ * settings, however an explicit `Provider` instance may be created and passed during resource
5
+ * construction to achieve fine-grained programmatic control over provider settings. See the
6
+ * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
7
+ */
8
+ export declare class Provider extends pulumi.ProviderResource {
9
+ /**
10
+ * Returns true if the given object is an instance of Provider. This is designed to work even
11
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
12
+ */
13
+ static isInstance(obj: any): obj is Provider;
14
+ /**
15
+ * The URL to use for the DigitalOcean API.
16
+ */
17
+ readonly apiEndpoint: pulumi.Output<string | undefined>;
18
+ /**
19
+ * The access key ID for Spaces API operations.
20
+ */
21
+ readonly spacesAccessId: pulumi.Output<string | undefined>;
22
+ /**
23
+ * The URL to use for the DigitalOcean Spaces API.
24
+ */
25
+ readonly spacesEndpoint: pulumi.Output<string | undefined>;
26
+ /**
27
+ * The secret access key for Spaces API operations.
28
+ */
29
+ readonly spacesSecretKey: pulumi.Output<string | undefined>;
30
+ /**
31
+ * The token key for API operations.
32
+ */
33
+ readonly token: pulumi.Output<string | undefined>;
34
+ /**
35
+ * Create a Provider resource with the given unique name, arguments, and options.
36
+ *
37
+ * @param name The _unique_ name of the resource.
38
+ * @param args The arguments to use to populate this resource's properties.
39
+ * @param opts A bag of options that control this resource's behavior.
40
+ */
41
+ constructor(name: string, args?: ProviderArgs, opts?: pulumi.ResourceOptions);
42
+ }
43
+ /**
44
+ * The set of arguments for constructing a Provider resource.
45
+ */
46
+ export interface ProviderArgs {
47
+ /**
48
+ * The URL to use for the DigitalOcean API.
49
+ */
50
+ apiEndpoint?: pulumi.Input<string>;
51
+ /**
52
+ * The access key ID for Spaces API operations.
53
+ */
54
+ spacesAccessId?: pulumi.Input<string>;
55
+ /**
56
+ * The URL to use for the DigitalOcean Spaces API.
57
+ */
58
+ spacesEndpoint?: pulumi.Input<string>;
59
+ /**
60
+ * The secret access key for Spaces API operations.
61
+ */
62
+ spacesSecretKey?: pulumi.Input<string>;
63
+ /**
64
+ * The token key for API operations.
65
+ */
66
+ token?: pulumi.Input<string>;
67
+ }
package/provider.js ADDED
@@ -0,0 +1,51 @@
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
+ * The provider type for the digitalocean package. By default, resources use package-wide configuration
9
+ * settings, however an explicit `Provider` instance may be created and passed during resource
10
+ * construction to achieve fine-grained programmatic control over provider settings. See the
11
+ * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
12
+ */
13
+ class Provider extends pulumi.ProviderResource {
14
+ /**
15
+ * Create a Provider resource with the given unique name, arguments, and options.
16
+ *
17
+ * @param name The _unique_ name of the resource.
18
+ * @param args The arguments to use to populate this resource's properties.
19
+ * @param opts A bag of options that control this resource's behavior.
20
+ */
21
+ constructor(name, args, opts) {
22
+ var _a, _b;
23
+ let inputs = {};
24
+ opts = opts || {};
25
+ {
26
+ inputs["apiEndpoint"] = (_a = (args ? args.apiEndpoint : undefined), (_a !== null && _a !== void 0 ? _a : (utilities.getEnv("DIGITALOCEAN_API_URL") || "https://api.digitalocean.com")));
27
+ inputs["spacesAccessId"] = args ? args.spacesAccessId : undefined;
28
+ inputs["spacesEndpoint"] = (_b = (args ? args.spacesEndpoint : undefined), (_b !== null && _b !== void 0 ? _b : utilities.getEnv("SPACES_ENDPOINT_URL")));
29
+ inputs["spacesSecretKey"] = args ? args.spacesSecretKey : undefined;
30
+ inputs["token"] = args ? args.token : undefined;
31
+ }
32
+ if (!opts.version) {
33
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
34
+ }
35
+ super(Provider.__pulumiType, name, inputs, opts);
36
+ }
37
+ /**
38
+ * Returns true if the given object is an instance of Provider. This is designed to work even
39
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
40
+ */
41
+ static isInstance(obj) {
42
+ if (obj === undefined || obj === null) {
43
+ return false;
44
+ }
45
+ return obj['__pulumiType'] === Provider.__pulumiType;
46
+ }
47
+ }
48
+ exports.Provider = Provider;
49
+ /** @internal */
50
+ Provider.__pulumiType = 'digitalocean';
51
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../provider.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;GAKG;AACH,MAAa,QAAS,SAAQ,MAAM,CAAC,gBAAgB;IAoCjD;;;;;;OAMG;IACH,YAAY,IAAY,EAAE,IAAmB,EAAE,IAA6B;;QACxE,IAAI,MAAM,GAAkB,EAAE,CAAC;QAC/B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB;YACI,MAAM,CAAC,aAAa,CAAC,SAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,uCAAI,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,8BAA8B,CAAC,EAAA,CAAC;YAC9I,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,MAAM,CAAC,gBAAgB,CAAC,SAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,uCAAI,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAA,CAAC;YAC/G,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;SACnD;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,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IArDD;;;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,QAAQ,CAAC,YAAY,CAAC;IACzD,CAAC;;AAbL,4BA0DC;AAzDG,gBAAgB;AACO,qBAAY,GAAG,cAAc,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var childProcess = require("child_process");
3
+
4
+ var args = process.argv.slice(2);
5
+ var res = childProcess.spawnSync("pulumi", ["plugin", "install"].concat(args), {
6
+ stdio: ["ignore", "inherit", "inherit"]
7
+ });
8
+
9
+ if (res.error && res.error.code === "ENOENT") {
10
+ console.error("\nThere was an error installing the resource provider plugin. " +
11
+ "It looks like `pulumi` is not installed on your system. " +
12
+ "Please visit https://pulumi.com/ to install the Pulumi CLI.\n" +
13
+ "You may try manually installing the plugin by running " +
14
+ "`pulumi plugin install " + args.join(" ") + "`");
15
+ } else if (res.error || res.status !== 0) {
16
+ console.error("\nThere was an error installing the resource provider plugin. " +
17
+ "You may try to manually installing the plugin by running " +
18
+ "`pulumi plugin install " + args.join(" ") + "`");
19
+ }
20
+
21
+ process.exit(0);
@@ -0,0 +1,210 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import { input as inputs, output as outputs, enums } from "./types";
3
+ /**
4
+ * Provides a bucket resource for Spaces, DigitalOcean's object storage product.
5
+ *
6
+ * The [Spaces API](https://docs.digitalocean.com/reference/api/spaces-api/) was
7
+ * designed to be interoperable with Amazon's AWS S3 API. This allows users to
8
+ * interact with the service while using the tools they already know. Spaces
9
+ * mirrors S3's authentication framework and requests to Spaces require a key pair
10
+ * similar to Amazon's Access ID and Secret Key.
11
+ *
12
+ * The authentication requirement can be met by either setting the
13
+ * `SPACES_ACCESS_KEY_ID` and `SPACES_SECRET_ACCESS_KEY` environment variables or
14
+ * the provider's `spacesAccessId` and `spacesSecretKey` arguments to the
15
+ * access ID and secret you generate via the DigitalOcean control panel. For
16
+ * example:
17
+ *
18
+ * ```typescript
19
+ * import * as pulumi from "@pulumi/pulumi";
20
+ * import * as digitalocean from "@pulumi/digitalocean";
21
+ *
22
+ * const static_assets = new digitalocean.SpacesBucket("static-assets", {});
23
+ * // ...
24
+ * ```
25
+ *
26
+ * For more information, See [An Introduction to DigitalOcean Spaces](https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-spaces)
27
+ *
28
+ * ## Example Usage
29
+ * ### Create a New Bucket
30
+ *
31
+ * ```typescript
32
+ * import * as pulumi from "@pulumi/pulumi";
33
+ * import * as digitalocean from "@pulumi/digitalocean";
34
+ *
35
+ * const foobar = new digitalocean.SpacesBucket("foobar", {
36
+ * region: "nyc3",
37
+ * });
38
+ * ```
39
+ * ### Create a New Bucket With CORS Rules
40
+ *
41
+ * ```typescript
42
+ * import * as pulumi from "@pulumi/pulumi";
43
+ * import * as digitalocean from "@pulumi/digitalocean";
44
+ *
45
+ * const foobar = new digitalocean.SpacesBucket("foobar", {
46
+ * corsRules: [
47
+ * {
48
+ * allowedHeaders: ["*"],
49
+ * allowedMethods: ["GET"],
50
+ * allowedOrigins: ["*"],
51
+ * maxAgeSeconds: 3000,
52
+ * },
53
+ * {
54
+ * allowedHeaders: ["*"],
55
+ * allowedMethods: [
56
+ * "PUT",
57
+ * "POST",
58
+ * "DELETE",
59
+ * ],
60
+ * allowedOrigins: ["https://www.example.com"],
61
+ * maxAgeSeconds: 3000,
62
+ * },
63
+ * ],
64
+ * region: "nyc3",
65
+ * });
66
+ * ```
67
+ *
68
+ * ## Import
69
+ *
70
+ * Buckets can be imported using the `region` and `name` attributes (delimited by a comma)
71
+ *
72
+ * ```sh
73
+ * $ pulumi import digitalocean:index/spacesBucket:SpacesBucket foobar `region`,`name`
74
+ * ```
75
+ */
76
+ export declare class SpacesBucket extends pulumi.CustomResource {
77
+ /**
78
+ * Get an existing SpacesBucket resource's state with the given name, ID, and optional extra
79
+ * properties used to qualify the lookup.
80
+ *
81
+ * @param name The _unique_ name of the resulting resource.
82
+ * @param id The _unique_ provider ID of the resource to lookup.
83
+ * @param state Any extra arguments used during the lookup.
84
+ * @param opts Optional settings to control the behavior of the CustomResource.
85
+ */
86
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: SpacesBucketState, opts?: pulumi.CustomResourceOptions): SpacesBucket;
87
+ /**
88
+ * Returns true if the given object is an instance of SpacesBucket. This is designed to work even
89
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
90
+ */
91
+ static isInstance(obj: any): obj is SpacesBucket;
92
+ /**
93
+ * Canned ACL applied on bucket creation (`private` or `public-read`)
94
+ */
95
+ readonly acl: pulumi.Output<string | undefined>;
96
+ /**
97
+ * The FQDN of the bucket (e.g. bucket-name.nyc3.digitaloceanspaces.com)
98
+ */
99
+ readonly bucketDomainName: pulumi.Output<string>;
100
+ /**
101
+ * The uniform resource name for the bucket
102
+ */
103
+ readonly bucketUrn: pulumi.Output<string>;
104
+ /**
105
+ * A rule of Cross-Origin Resource Sharing (documented below).
106
+ */
107
+ readonly corsRules: pulumi.Output<outputs.SpacesBucketCorsRule[] | undefined>;
108
+ /**
109
+ * Unless `true`, the bucket will only be destroyed if empty (Defaults to `false`)
110
+ */
111
+ readonly forceDestroy: pulumi.Output<boolean | undefined>;
112
+ /**
113
+ * A configuration of object lifecycle management (documented below).
114
+ */
115
+ readonly lifecycleRules: pulumi.Output<outputs.SpacesBucketLifecycleRule[] | undefined>;
116
+ /**
117
+ * The name of the bucket
118
+ */
119
+ readonly name: pulumi.Output<string>;
120
+ /**
121
+ * The region where the bucket resides (Defaults to `nyc3`)
122
+ */
123
+ readonly region: pulumi.Output<string | undefined>;
124
+ /**
125
+ * A state of versioning (documented below)
126
+ */
127
+ readonly versioning: pulumi.Output<outputs.SpacesBucketVersioning | undefined>;
128
+ /**
129
+ * Create a SpacesBucket resource with the given unique name, arguments, and options.
130
+ *
131
+ * @param name The _unique_ name of the resource.
132
+ * @param args The arguments to use to populate this resource's properties.
133
+ * @param opts A bag of options that control this resource's behavior.
134
+ */
135
+ constructor(name: string, args?: SpacesBucketArgs, opts?: pulumi.CustomResourceOptions);
136
+ }
137
+ /**
138
+ * Input properties used for looking up and filtering SpacesBucket resources.
139
+ */
140
+ export interface SpacesBucketState {
141
+ /**
142
+ * Canned ACL applied on bucket creation (`private` or `public-read`)
143
+ */
144
+ acl?: pulumi.Input<string>;
145
+ /**
146
+ * The FQDN of the bucket (e.g. bucket-name.nyc3.digitaloceanspaces.com)
147
+ */
148
+ bucketDomainName?: pulumi.Input<string>;
149
+ /**
150
+ * The uniform resource name for the bucket
151
+ */
152
+ bucketUrn?: pulumi.Input<string>;
153
+ /**
154
+ * A rule of Cross-Origin Resource Sharing (documented below).
155
+ */
156
+ corsRules?: pulumi.Input<pulumi.Input<inputs.SpacesBucketCorsRule>[]>;
157
+ /**
158
+ * Unless `true`, the bucket will only be destroyed if empty (Defaults to `false`)
159
+ */
160
+ forceDestroy?: pulumi.Input<boolean>;
161
+ /**
162
+ * A configuration of object lifecycle management (documented below).
163
+ */
164
+ lifecycleRules?: pulumi.Input<pulumi.Input<inputs.SpacesBucketLifecycleRule>[]>;
165
+ /**
166
+ * The name of the bucket
167
+ */
168
+ name?: pulumi.Input<string>;
169
+ /**
170
+ * The region where the bucket resides (Defaults to `nyc3`)
171
+ */
172
+ region?: pulumi.Input<string | enums.Region>;
173
+ /**
174
+ * A state of versioning (documented below)
175
+ */
176
+ versioning?: pulumi.Input<inputs.SpacesBucketVersioning>;
177
+ }
178
+ /**
179
+ * The set of arguments for constructing a SpacesBucket resource.
180
+ */
181
+ export interface SpacesBucketArgs {
182
+ /**
183
+ * Canned ACL applied on bucket creation (`private` or `public-read`)
184
+ */
185
+ acl?: pulumi.Input<string>;
186
+ /**
187
+ * A rule of Cross-Origin Resource Sharing (documented below).
188
+ */
189
+ corsRules?: pulumi.Input<pulumi.Input<inputs.SpacesBucketCorsRule>[]>;
190
+ /**
191
+ * Unless `true`, the bucket will only be destroyed if empty (Defaults to `false`)
192
+ */
193
+ forceDestroy?: pulumi.Input<boolean>;
194
+ /**
195
+ * A configuration of object lifecycle management (documented below).
196
+ */
197
+ lifecycleRules?: pulumi.Input<pulumi.Input<inputs.SpacesBucketLifecycleRule>[]>;
198
+ /**
199
+ * The name of the bucket
200
+ */
201
+ name?: pulumi.Input<string>;
202
+ /**
203
+ * The region where the bucket resides (Defaults to `nyc3`)
204
+ */
205
+ region?: pulumi.Input<string | enums.Region>;
206
+ /**
207
+ * A state of versioning (documented below)
208
+ */
209
+ versioning?: pulumi.Input<inputs.SpacesBucketVersioning>;
210
+ }
@@ -0,0 +1,139 @@
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 bucket resource for Spaces, DigitalOcean's object storage product.
9
+ *
10
+ * The [Spaces API](https://docs.digitalocean.com/reference/api/spaces-api/) was
11
+ * designed to be interoperable with Amazon's AWS S3 API. This allows users to
12
+ * interact with the service while using the tools they already know. Spaces
13
+ * mirrors S3's authentication framework and requests to Spaces require a key pair
14
+ * similar to Amazon's Access ID and Secret Key.
15
+ *
16
+ * The authentication requirement can be met by either setting the
17
+ * `SPACES_ACCESS_KEY_ID` and `SPACES_SECRET_ACCESS_KEY` environment variables or
18
+ * the provider's `spacesAccessId` and `spacesSecretKey` arguments to the
19
+ * access ID and secret you generate via the DigitalOcean control panel. For
20
+ * example:
21
+ *
22
+ * ```typescript
23
+ * import * as pulumi from "@pulumi/pulumi";
24
+ * import * as digitalocean from "@pulumi/digitalocean";
25
+ *
26
+ * const static_assets = new digitalocean.SpacesBucket("static-assets", {});
27
+ * // ...
28
+ * ```
29
+ *
30
+ * For more information, See [An Introduction to DigitalOcean Spaces](https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-spaces)
31
+ *
32
+ * ## Example Usage
33
+ * ### Create a New Bucket
34
+ *
35
+ * ```typescript
36
+ * import * as pulumi from "@pulumi/pulumi";
37
+ * import * as digitalocean from "@pulumi/digitalocean";
38
+ *
39
+ * const foobar = new digitalocean.SpacesBucket("foobar", {
40
+ * region: "nyc3",
41
+ * });
42
+ * ```
43
+ * ### Create a New Bucket With CORS Rules
44
+ *
45
+ * ```typescript
46
+ * import * as pulumi from "@pulumi/pulumi";
47
+ * import * as digitalocean from "@pulumi/digitalocean";
48
+ *
49
+ * const foobar = new digitalocean.SpacesBucket("foobar", {
50
+ * corsRules: [
51
+ * {
52
+ * allowedHeaders: ["*"],
53
+ * allowedMethods: ["GET"],
54
+ * allowedOrigins: ["*"],
55
+ * maxAgeSeconds: 3000,
56
+ * },
57
+ * {
58
+ * allowedHeaders: ["*"],
59
+ * allowedMethods: [
60
+ * "PUT",
61
+ * "POST",
62
+ * "DELETE",
63
+ * ],
64
+ * allowedOrigins: ["https://www.example.com"],
65
+ * maxAgeSeconds: 3000,
66
+ * },
67
+ * ],
68
+ * region: "nyc3",
69
+ * });
70
+ * ```
71
+ *
72
+ * ## Import
73
+ *
74
+ * Buckets can be imported using the `region` and `name` attributes (delimited by a comma)
75
+ *
76
+ * ```sh
77
+ * $ pulumi import digitalocean:index/spacesBucket:SpacesBucket foobar `region`,`name`
78
+ * ```
79
+ */
80
+ class SpacesBucket extends pulumi.CustomResource {
81
+ constructor(name, argsOrState, opts) {
82
+ let inputs = {};
83
+ opts = opts || {};
84
+ if (opts.id) {
85
+ const state = argsOrState;
86
+ inputs["acl"] = state ? state.acl : undefined;
87
+ inputs["bucketDomainName"] = state ? state.bucketDomainName : undefined;
88
+ inputs["bucketUrn"] = state ? state.bucketUrn : undefined;
89
+ inputs["corsRules"] = state ? state.corsRules : undefined;
90
+ inputs["forceDestroy"] = state ? state.forceDestroy : undefined;
91
+ inputs["lifecycleRules"] = state ? state.lifecycleRules : undefined;
92
+ inputs["name"] = state ? state.name : undefined;
93
+ inputs["region"] = state ? state.region : undefined;
94
+ inputs["versioning"] = state ? state.versioning : undefined;
95
+ }
96
+ else {
97
+ const args = argsOrState;
98
+ inputs["acl"] = args ? args.acl : undefined;
99
+ inputs["corsRules"] = args ? args.corsRules : undefined;
100
+ inputs["forceDestroy"] = args ? args.forceDestroy : undefined;
101
+ inputs["lifecycleRules"] = args ? args.lifecycleRules : undefined;
102
+ inputs["name"] = args ? args.name : undefined;
103
+ inputs["region"] = args ? args.region : undefined;
104
+ inputs["versioning"] = args ? args.versioning : undefined;
105
+ inputs["bucketDomainName"] = undefined /*out*/;
106
+ inputs["bucketUrn"] = undefined /*out*/;
107
+ }
108
+ if (!opts.version) {
109
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
110
+ }
111
+ super(SpacesBucket.__pulumiType, name, inputs, opts);
112
+ }
113
+ /**
114
+ * Get an existing SpacesBucket resource's state with the given name, ID, and optional extra
115
+ * properties used to qualify the lookup.
116
+ *
117
+ * @param name The _unique_ name of the resulting resource.
118
+ * @param id The _unique_ provider ID of the resource to lookup.
119
+ * @param state Any extra arguments used during the lookup.
120
+ * @param opts Optional settings to control the behavior of the CustomResource.
121
+ */
122
+ static get(name, id, state, opts) {
123
+ return new SpacesBucket(name, state, Object.assign(Object.assign({}, opts), { id: id }));
124
+ }
125
+ /**
126
+ * Returns true if the given object is an instance of SpacesBucket. This is designed to work even
127
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
128
+ */
129
+ static isInstance(obj) {
130
+ if (obj === undefined || obj === null) {
131
+ return false;
132
+ }
133
+ return obj['__pulumiType'] === SpacesBucket.__pulumiType;
134
+ }
135
+ }
136
+ exports.SpacesBucket = SpacesBucket;
137
+ /** @internal */
138
+ SpacesBucket.__pulumiType = 'digitalocean:index/spacesBucket:SpacesBucket';
139
+ //# sourceMappingURL=spacesBucket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacesBucket.js","sourceRoot":"","sources":["../spacesBucket.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;AAEjF,yCAAyC;AAEzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,MAAa,YAAa,SAAQ,MAAM,CAAC,cAAc;IAyEnD,YAAY,IAAY,EAAE,WAAkD,EAAE,IAAmC;QAC7G,IAAI,MAAM,GAAkB,EAAE,CAAC;QAC/B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA4C,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9C,MAAM,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,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,YAAY,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;SAC/D;aAAM;YACH,MAAM,IAAI,GAAG,WAA2C,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5C,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9C,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAClD,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,MAAM,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SAC3C;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,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAtGD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAyB,EAAE,IAAmC;QACvH,OAAO,IAAI,YAAY,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IACnE,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,YAAY,CAAC,YAAY,CAAC;IAC7D,CAAC;;AA1BL,oCAwGC;AA1FG,gBAAgB;AACO,yBAAY,GAAG,8CAA8C,CAAC"}