@upcloud/pulumi-upcloud 0.0.5

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 (198) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +61 -0
  3. package/config/index.d.ts +1 -0
  4. package/config/index.js +21 -0
  5. package/config/index.js.map +1 -0
  6. package/config/vars.d.ts +25 -0
  7. package/config/vars.js +43 -0
  8. package/config/vars.js.map +1 -0
  9. package/floatingIpAddress.d.ts +128 -0
  10. package/floatingIpAddress.js +90 -0
  11. package/floatingIpAddress.js.map +1 -0
  12. package/gateway.d.ts +206 -0
  13. package/gateway.js +111 -0
  14. package/gateway.js.map +1 -0
  15. package/gatewayConnection.d.ts +157 -0
  16. package/gatewayConnection.js +105 -0
  17. package/gatewayConnection.js.map +1 -0
  18. package/gatewayConnectionTunnel.d.ts +129 -0
  19. package/gatewayConnectionTunnel.js +78 -0
  20. package/gatewayConnectionTunnel.js.map +1 -0
  21. package/getHosts.d.ts +55 -0
  22. package/getHosts.js +52 -0
  23. package/getHosts.js.map +1 -0
  24. package/getIpAddresses.d.ts +51 -0
  25. package/getIpAddresses.js +48 -0
  26. package/getIpAddresses.js.map +1 -0
  27. package/getKubernetesCluster.d.ts +33 -0
  28. package/getKubernetesCluster.js +28 -0
  29. package/getKubernetesCluster.js.map +1 -0
  30. package/getLoadBalancerDnsChallengeDomain.d.ts +40 -0
  31. package/getLoadBalancerDnsChallengeDomain.js +42 -0
  32. package/getLoadBalancerDnsChallengeDomain.js.map +1 -0
  33. package/getManagedDatabaseMysqlSessions.d.ts +83 -0
  34. package/getManagedDatabaseMysqlSessions.js +74 -0
  35. package/getManagedDatabaseMysqlSessions.js.map +1 -0
  36. package/getManagedDatabaseOpensearchIndices.d.ts +82 -0
  37. package/getManagedDatabaseOpensearchIndices.js +76 -0
  38. package/getManagedDatabaseOpensearchIndices.js.map +1 -0
  39. package/getManagedDatabasePostgresqlSessions.d.ts +83 -0
  40. package/getManagedDatabasePostgresqlSessions.js +74 -0
  41. package/getManagedDatabasePostgresqlSessions.js.map +1 -0
  42. package/getManagedDatabaseRedisSessions.d.ts +87 -0
  43. package/getManagedDatabaseRedisSessions.js +78 -0
  44. package/getManagedDatabaseRedisSessions.js.map +1 -0
  45. package/getManagedDatabaseValkeySessions.d.ts +83 -0
  46. package/getManagedDatabaseValkeySessions.js +74 -0
  47. package/getManagedDatabaseValkeySessions.js.map +1 -0
  48. package/getManagedObjectStoragePolicies.d.ts +33 -0
  49. package/getManagedObjectStoragePolicies.js +28 -0
  50. package/getManagedObjectStoragePolicies.js.map +1 -0
  51. package/getManagedObjectStorageRegions.d.ts +33 -0
  52. package/getManagedObjectStorageRegions.js +30 -0
  53. package/getManagedObjectStorageRegions.js.map +1 -0
  54. package/getNetworks.d.ts +60 -0
  55. package/getNetworks.js +56 -0
  56. package/getNetworks.js.map +1 -0
  57. package/getStorage.d.ts +163 -0
  58. package/getStorage.js +122 -0
  59. package/getStorage.js.map +1 -0
  60. package/getTags.d.ts +20 -0
  61. package/getTags.js +24 -0
  62. package/getTags.js.map +1 -0
  63. package/getZone.d.ts +42 -0
  64. package/getZone.js +32 -0
  65. package/getZone.js.map +1 -0
  66. package/getZones.d.ts +29 -0
  67. package/getZones.js +30 -0
  68. package/getZones.js.map +1 -0
  69. package/index.d.ts +177 -0
  70. package/index.js +287 -0
  71. package/index.js.map +1 -0
  72. package/kubernetesCluster.d.ts +237 -0
  73. package/kubernetesCluster.js +131 -0
  74. package/kubernetesCluster.js.map +1 -0
  75. package/kubernetesNodeGroup.d.ts +243 -0
  76. package/kubernetesNodeGroup.js +120 -0
  77. package/kubernetesNodeGroup.js.map +1 -0
  78. package/loadbalancer.d.ts +261 -0
  79. package/loadbalancer.js +122 -0
  80. package/loadbalancer.js.map +1 -0
  81. package/loadbalancerBackend.d.ts +121 -0
  82. package/loadbalancerBackend.js +90 -0
  83. package/loadbalancerBackend.js.map +1 -0
  84. package/loadbalancerBackendTlsConfig.d.ts +75 -0
  85. package/loadbalancerBackendTlsConfig.js +62 -0
  86. package/loadbalancerBackendTlsConfig.js.map +1 -0
  87. package/loadbalancerDynamicBackendMember.d.ts +169 -0
  88. package/loadbalancerDynamicBackendMember.js +119 -0
  89. package/loadbalancerDynamicBackendMember.js.map +1 -0
  90. package/loadbalancerDynamicCertificateBundle.d.ts +114 -0
  91. package/loadbalancerDynamicCertificateBundle.js +83 -0
  92. package/loadbalancerDynamicCertificateBundle.js.map +1 -0
  93. package/loadbalancerFrontend.d.ts +184 -0
  94. package/loadbalancerFrontend.js +126 -0
  95. package/loadbalancerFrontend.js.map +1 -0
  96. package/loadbalancerFrontendRule.d.ts +170 -0
  97. package/loadbalancerFrontendRule.js +125 -0
  98. package/loadbalancerFrontendRule.js.map +1 -0
  99. package/loadbalancerFrontendTlsConfig.d.ts +114 -0
  100. package/loadbalancerFrontendTlsConfig.js +101 -0
  101. package/loadbalancerFrontendTlsConfig.js.map +1 -0
  102. package/loadbalancerManualCertificateBundle.d.ts +111 -0
  103. package/loadbalancerManualCertificateBundle.js +72 -0
  104. package/loadbalancerManualCertificateBundle.js.map +1 -0
  105. package/loadbalancerResolver.d.ts +171 -0
  106. package/loadbalancerResolver.js +120 -0
  107. package/loadbalancerResolver.js.map +1 -0
  108. package/loadbalancerStaticBackendMember.d.ts +156 -0
  109. package/loadbalancerStaticBackendMember.js +106 -0
  110. package/loadbalancerStaticBackendMember.js.map +1 -0
  111. package/managedDatabaseLogicalDatabase.d.ts +109 -0
  112. package/managedDatabaseLogicalDatabase.js +83 -0
  113. package/managedDatabaseLogicalDatabase.js.map +1 -0
  114. package/managedDatabaseMysql.d.ts +298 -0
  115. package/managedDatabaseMysql.js +139 -0
  116. package/managedDatabaseMysql.js.map +1 -0
  117. package/managedDatabaseOpensearch.d.ts +317 -0
  118. package/managedDatabaseOpensearch.js +132 -0
  119. package/managedDatabaseOpensearch.js.map +1 -0
  120. package/managedDatabasePostgresql.d.ts +295 -0
  121. package/managedDatabasePostgresql.js +130 -0
  122. package/managedDatabasePostgresql.js.map +1 -0
  123. package/managedDatabaseRedis.d.ts +287 -0
  124. package/managedDatabaseRedis.js +128 -0
  125. package/managedDatabaseRedis.js.map +1 -0
  126. package/managedDatabaseUser.d.ts +163 -0
  127. package/managedDatabaseUser.js +94 -0
  128. package/managedDatabaseUser.js.map +1 -0
  129. package/managedDatabaseValkey.d.ts +285 -0
  130. package/managedDatabaseValkey.js +126 -0
  131. package/managedDatabaseValkey.js.map +1 -0
  132. package/managedObjectStorage.d.ts +178 -0
  133. package/managedObjectStorage.js +107 -0
  134. package/managedObjectStorage.js.map +1 -0
  135. package/managedObjectStorageBucket.d.ts +94 -0
  136. package/managedObjectStorageBucket.js +76 -0
  137. package/managedObjectStorageBucket.js.map +1 -0
  138. package/managedObjectStorageCustomDomain.d.ts +105 -0
  139. package/managedObjectStorageCustomDomain.js +89 -0
  140. package/managedObjectStorageCustomDomain.js.map +1 -0
  141. package/managedObjectStoragePolicy.d.ts +155 -0
  142. package/managedObjectStoragePolicy.js +93 -0
  143. package/managedObjectStoragePolicy.js.map +1 -0
  144. package/managedObjectStorageUser.d.ts +101 -0
  145. package/managedObjectStorageUser.js +80 -0
  146. package/managedObjectStorageUser.js.map +1 -0
  147. package/managedObjectStorageUserAccessKey.d.ts +128 -0
  148. package/managedObjectStorageUserAccessKey.js +96 -0
  149. package/managedObjectStorageUserAccessKey.js.map +1 -0
  150. package/managedObjectStorageUserPolicy.d.ts +100 -0
  151. package/managedObjectStorageUserPolicy.js +87 -0
  152. package/managedObjectStorageUserPolicy.js.map +1 -0
  153. package/network.d.ts +142 -0
  154. package/network.js +95 -0
  155. package/network.js.map +1 -0
  156. package/networkPeering.d.ts +137 -0
  157. package/networkPeering.js +96 -0
  158. package/networkPeering.js.map +1 -0
  159. package/objectStorage.d.ts +196 -0
  160. package/objectStorage.js +132 -0
  161. package/objectStorage.js.map +1 -0
  162. package/package.json +29 -0
  163. package/provider.d.ts +60 -0
  164. package/provider.js +50 -0
  165. package/provider.js.map +1 -0
  166. package/router.d.ts +124 -0
  167. package/router.js +77 -0
  168. package/router.js.map +1 -0
  169. package/server.d.ts +332 -0
  170. package/server.js +106 -0
  171. package/server.js.map +1 -0
  172. package/serverFirewallRules.d.ts +124 -0
  173. package/serverFirewallRules.js +107 -0
  174. package/serverFirewallRules.js.map +1 -0
  175. package/serverGroup.d.ts +160 -0
  176. package/serverGroup.js +91 -0
  177. package/serverGroup.js.map +1 -0
  178. package/storage.d.ts +210 -0
  179. package/storage.js +91 -0
  180. package/storage.js.map +1 -0
  181. package/storageTemplate.d.ts +151 -0
  182. package/storageTemplate.js +90 -0
  183. package/storageTemplate.js.map +1 -0
  184. package/tag.d.ts +75 -0
  185. package/tag.js +56 -0
  186. package/tag.js.map +1 -0
  187. package/types/index.d.ts +3 -0
  188. package/types/index.js +11 -0
  189. package/types/index.js.map +1 -0
  190. package/types/input.d.ts +3721 -0
  191. package/types/input.js +5 -0
  192. package/types/input.js.map +1 -0
  193. package/types/output.d.ts +3459 -0
  194. package/types/output.js +5 -0
  195. package/types/output.js.map +1 -0
  196. package/utilities.d.ts +8 -0
  197. package/utilities.js +101 -0
  198. package/utilities.js.map +1 -0
@@ -0,0 +1,125 @@
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
+ exports.LoadbalancerFrontendRule = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * This resource represents load balancer frontend rule.
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as upcloud from "@upcloud/pulumi-upcloud";
16
+ *
17
+ * const config = new pulumi.Config();
18
+ * const lbZone = config.get("lbZone") || "fi-hel2";
19
+ * const lbNetwork = new upcloud.Network("lbNetwork", {
20
+ * zone: lbZone,
21
+ * ipNetwork: {
22
+ * address: "10.0.0.0/24",
23
+ * dhcp: true,
24
+ * family: "IPv4",
25
+ * },
26
+ * });
27
+ * const lbFe1R1 = new upcloud.LoadbalancerFrontendRule("lbFe1R1", {
28
+ * frontend: resource.upcloud_loadbalancer_frontend.lb_fe_1.id,
29
+ * priority: 10,
30
+ * matchers: {
31
+ * srcIps: [{
32
+ * value: "192.168.0.0/24",
33
+ * }],
34
+ * },
35
+ * actions: {
36
+ * useBackends: [{
37
+ * backendName: resource.upcloud_loadbalancer_backend.lb_be_1.name,
38
+ * }],
39
+ * },
40
+ * });
41
+ * const lbFe1 = new upcloud.LoadbalancerFrontend("lbFe1", {
42
+ * loadbalancer: resource.upcloud_loadbalancer.lb.id,
43
+ * mode: "http",
44
+ * port: 8080,
45
+ * defaultBackendName: resource.upcloud_loadbalancer_backend.lb_be_1.name,
46
+ * });
47
+ * const lb = new upcloud.Loadbalancer("lb", {
48
+ * configuredStatus: "started",
49
+ * plan: "development",
50
+ * zone: lbZone,
51
+ * networks: [
52
+ * {
53
+ * type: "public",
54
+ * family: "IPv4",
55
+ * name: "public",
56
+ * },
57
+ * {
58
+ * type: "private",
59
+ * family: "IPv4",
60
+ * name: "private",
61
+ * network: resource.upcloud_network.lb_network.id,
62
+ * },
63
+ * ],
64
+ * });
65
+ * const lbBe1 = new upcloud.LoadbalancerBackend("lbBe1", {loadbalancer: resource.upcloud_loadbalancer.lb.id});
66
+ * ```
67
+ */
68
+ class LoadbalancerFrontendRule extends pulumi.CustomResource {
69
+ /**
70
+ * Get an existing LoadbalancerFrontendRule 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, id, state, opts) {
79
+ return new LoadbalancerFrontendRule(name, state, Object.assign(Object.assign({}, opts), { id: id }));
80
+ }
81
+ /**
82
+ * Returns true if the given object is an instance of LoadbalancerFrontendRule. This is designed to work even
83
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
84
+ */
85
+ static isInstance(obj) {
86
+ if (obj === undefined || obj === null) {
87
+ return false;
88
+ }
89
+ return obj['__pulumiType'] === LoadbalancerFrontendRule.__pulumiType;
90
+ }
91
+ constructor(name, argsOrState, opts) {
92
+ let resourceInputs = {};
93
+ opts = opts || {};
94
+ if (opts.id) {
95
+ const state = argsOrState;
96
+ resourceInputs["actions"] = state ? state.actions : undefined;
97
+ resourceInputs["frontend"] = state ? state.frontend : undefined;
98
+ resourceInputs["matchers"] = state ? state.matchers : undefined;
99
+ resourceInputs["matchingCondition"] = state ? state.matchingCondition : undefined;
100
+ resourceInputs["name"] = state ? state.name : undefined;
101
+ resourceInputs["priority"] = state ? state.priority : undefined;
102
+ }
103
+ else {
104
+ const args = argsOrState;
105
+ if ((!args || args.frontend === undefined) && !opts.urn) {
106
+ throw new Error("Missing required property 'frontend'");
107
+ }
108
+ if ((!args || args.priority === undefined) && !opts.urn) {
109
+ throw new Error("Missing required property 'priority'");
110
+ }
111
+ resourceInputs["actions"] = args ? args.actions : undefined;
112
+ resourceInputs["frontend"] = args ? args.frontend : undefined;
113
+ resourceInputs["matchers"] = args ? args.matchers : undefined;
114
+ resourceInputs["matchingCondition"] = args ? args.matchingCondition : undefined;
115
+ resourceInputs["name"] = args ? args.name : undefined;
116
+ resourceInputs["priority"] = args ? args.priority : undefined;
117
+ }
118
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
119
+ super(LoadbalancerFrontendRule.__pulumiType, name, resourceInputs, opts);
120
+ }
121
+ }
122
+ exports.LoadbalancerFrontendRule = LoadbalancerFrontendRule;
123
+ /** @internal */
124
+ LoadbalancerFrontendRule.__pulumiType = 'upcloud:index/loadbalancerFrontendRule:LoadbalancerFrontendRule';
125
+ //# sourceMappingURL=loadbalancerFrontendRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadbalancerFrontendRule.js","sourceRoot":"","sources":["../loadbalancerFrontendRule.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAa,wBAAyB,SAAQ,MAAM,CAAC,cAAc;IAC/D;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAqC,EAAE,IAAmC;QACnI,OAAO,IAAI,wBAAwB,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAC/E,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,wBAAwB,CAAC,YAAY,CAAC;IACzE,CAAC;IAmCD,YAAY,IAAY,EAAE,WAA0E,EAAE,IAAmC;QACrI,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAwD,CAAC;YACvE,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;YAClF,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;SACnE;aAAM;YACH,MAAM,IAAI,GAAG,WAAuD,CAAC;YACrE,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;aAC3D;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;aAC3D;YACD,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;YAChF,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;SACjE;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,wBAAwB,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;;AAzFL,4DA0FC;AA5EG,gBAAgB;AACO,qCAAY,GAAG,iEAAiE,CAAC"}
@@ -0,0 +1,114 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * This resource represents frontend TLS config
4
+ *
5
+ * ## Example Usage
6
+ *
7
+ * ```typescript
8
+ * import * as pulumi from "@pulumi/pulumi";
9
+ * import * as upcloud from "@upcloud/pulumi-upcloud";
10
+ *
11
+ * const lbFe1Tls1 = new upcloud.LoadbalancerFrontendTlsConfig("lbFe1Tls1", {
12
+ * frontend: resource.upcloud_loadbalancer_frontend.lb_fe_1.id,
13
+ * certificateBundle: resource.upcloud_loadbalancer_manual_certificate_bundle["lb-cb-m1"].id,
14
+ * });
15
+ * const config = new pulumi.Config();
16
+ * const lbZone = config.get("lbZone") || "fi-hel2";
17
+ * const lbNetwork = new upcloud.Network("lbNetwork", {
18
+ * zone: lbZone,
19
+ * ipNetwork: {
20
+ * address: "10.0.0.0/24",
21
+ * dhcp: true,
22
+ * family: "IPv4",
23
+ * },
24
+ * });
25
+ * const lb_cb_m1 = new upcloud.LoadbalancerManualCertificateBundle("lb-cb-m1", {
26
+ * certificate: "LS0tLS1CRUdJTiBDRVJ...",
27
+ * privateKey: "LS0tLS1CRUdJTiBQUkl...",
28
+ * });
29
+ * const lbFe1 = new upcloud.LoadbalancerFrontend("lbFe1", {
30
+ * loadbalancer: resource.upcloud_loadbalancer.lb.id,
31
+ * mode: "http",
32
+ * port: 8080,
33
+ * defaultBackendName: resource.upcloud_loadbalancer_backend.lb_be_1.name,
34
+ * });
35
+ * const lb = new upcloud.Loadbalancer("lb", {
36
+ * configuredStatus: "started",
37
+ * plan: "development",
38
+ * zone: lbZone,
39
+ * network: resource.upcloud_network.lb_network.id,
40
+ * });
41
+ * const lbBe1 = new upcloud.LoadbalancerBackend("lbBe1", {loadbalancer: resource.upcloud_loadbalancer.lb.id});
42
+ * ```
43
+ */
44
+ export declare class LoadbalancerFrontendTlsConfig extends pulumi.CustomResource {
45
+ /**
46
+ * Get an existing LoadbalancerFrontendTlsConfig resource's state with the given name, ID, and optional extra
47
+ * properties used to qualify the lookup.
48
+ *
49
+ * @param name The _unique_ name of the resulting resource.
50
+ * @param id The _unique_ provider ID of the resource to lookup.
51
+ * @param state Any extra arguments used during the lookup.
52
+ * @param opts Optional settings to control the behavior of the CustomResource.
53
+ */
54
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: LoadbalancerFrontendTlsConfigState, opts?: pulumi.CustomResourceOptions): LoadbalancerFrontendTlsConfig;
55
+ /**
56
+ * Returns true if the given object is an instance of LoadbalancerFrontendTlsConfig. This is designed to work even
57
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
58
+ */
59
+ static isInstance(obj: any): obj is LoadbalancerFrontendTlsConfig;
60
+ /**
61
+ * Reference to certificate bundle ID.
62
+ */
63
+ readonly certificateBundle: pulumi.Output<string>;
64
+ /**
65
+ * ID of the load balancer frontend to which the TLS config is connected.
66
+ */
67
+ readonly frontend: pulumi.Output<string>;
68
+ /**
69
+ * The name of the TLS config. Must be unique within customer account.
70
+ */
71
+ readonly name: pulumi.Output<string>;
72
+ /**
73
+ * Create a LoadbalancerFrontendTlsConfig resource with the given unique name, arguments, and options.
74
+ *
75
+ * @param name The _unique_ name of the resource.
76
+ * @param args The arguments to use to populate this resource's properties.
77
+ * @param opts A bag of options that control this resource's behavior.
78
+ */
79
+ constructor(name: string, args: LoadbalancerFrontendTlsConfigArgs, opts?: pulumi.CustomResourceOptions);
80
+ }
81
+ /**
82
+ * Input properties used for looking up and filtering LoadbalancerFrontendTlsConfig resources.
83
+ */
84
+ export interface LoadbalancerFrontendTlsConfigState {
85
+ /**
86
+ * Reference to certificate bundle ID.
87
+ */
88
+ certificateBundle?: pulumi.Input<string>;
89
+ /**
90
+ * ID of the load balancer frontend to which the TLS config is connected.
91
+ */
92
+ frontend?: pulumi.Input<string>;
93
+ /**
94
+ * The name of the TLS config. Must be unique within customer account.
95
+ */
96
+ name?: pulumi.Input<string>;
97
+ }
98
+ /**
99
+ * The set of arguments for constructing a LoadbalancerFrontendTlsConfig resource.
100
+ */
101
+ export interface LoadbalancerFrontendTlsConfigArgs {
102
+ /**
103
+ * Reference to certificate bundle ID.
104
+ */
105
+ certificateBundle: pulumi.Input<string>;
106
+ /**
107
+ * ID of the load balancer frontend to which the TLS config is connected.
108
+ */
109
+ frontend: pulumi.Input<string>;
110
+ /**
111
+ * The name of the TLS config. Must be unique within customer account.
112
+ */
113
+ name?: pulumi.Input<string>;
114
+ }
@@ -0,0 +1,101 @@
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
+ exports.LoadbalancerFrontendTlsConfig = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * This resource represents frontend TLS config
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as upcloud from "@upcloud/pulumi-upcloud";
16
+ *
17
+ * const lbFe1Tls1 = new upcloud.LoadbalancerFrontendTlsConfig("lbFe1Tls1", {
18
+ * frontend: resource.upcloud_loadbalancer_frontend.lb_fe_1.id,
19
+ * certificateBundle: resource.upcloud_loadbalancer_manual_certificate_bundle["lb-cb-m1"].id,
20
+ * });
21
+ * const config = new pulumi.Config();
22
+ * const lbZone = config.get("lbZone") || "fi-hel2";
23
+ * const lbNetwork = new upcloud.Network("lbNetwork", {
24
+ * zone: lbZone,
25
+ * ipNetwork: {
26
+ * address: "10.0.0.0/24",
27
+ * dhcp: true,
28
+ * family: "IPv4",
29
+ * },
30
+ * });
31
+ * const lb_cb_m1 = new upcloud.LoadbalancerManualCertificateBundle("lb-cb-m1", {
32
+ * certificate: "LS0tLS1CRUdJTiBDRVJ...",
33
+ * privateKey: "LS0tLS1CRUdJTiBQUkl...",
34
+ * });
35
+ * const lbFe1 = new upcloud.LoadbalancerFrontend("lbFe1", {
36
+ * loadbalancer: resource.upcloud_loadbalancer.lb.id,
37
+ * mode: "http",
38
+ * port: 8080,
39
+ * defaultBackendName: resource.upcloud_loadbalancer_backend.lb_be_1.name,
40
+ * });
41
+ * const lb = new upcloud.Loadbalancer("lb", {
42
+ * configuredStatus: "started",
43
+ * plan: "development",
44
+ * zone: lbZone,
45
+ * network: resource.upcloud_network.lb_network.id,
46
+ * });
47
+ * const lbBe1 = new upcloud.LoadbalancerBackend("lbBe1", {loadbalancer: resource.upcloud_loadbalancer.lb.id});
48
+ * ```
49
+ */
50
+ class LoadbalancerFrontendTlsConfig extends pulumi.CustomResource {
51
+ /**
52
+ * Get an existing LoadbalancerFrontendTlsConfig resource's state with the given name, ID, and optional extra
53
+ * properties used to qualify the lookup.
54
+ *
55
+ * @param name The _unique_ name of the resulting resource.
56
+ * @param id The _unique_ provider ID of the resource to lookup.
57
+ * @param state Any extra arguments used during the lookup.
58
+ * @param opts Optional settings to control the behavior of the CustomResource.
59
+ */
60
+ static get(name, id, state, opts) {
61
+ return new LoadbalancerFrontendTlsConfig(name, state, Object.assign(Object.assign({}, opts), { id: id }));
62
+ }
63
+ /**
64
+ * Returns true if the given object is an instance of LoadbalancerFrontendTlsConfig. This is designed to work even
65
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
66
+ */
67
+ static isInstance(obj) {
68
+ if (obj === undefined || obj === null) {
69
+ return false;
70
+ }
71
+ return obj['__pulumiType'] === LoadbalancerFrontendTlsConfig.__pulumiType;
72
+ }
73
+ constructor(name, argsOrState, opts) {
74
+ let resourceInputs = {};
75
+ opts = opts || {};
76
+ if (opts.id) {
77
+ const state = argsOrState;
78
+ resourceInputs["certificateBundle"] = state ? state.certificateBundle : undefined;
79
+ resourceInputs["frontend"] = state ? state.frontend : undefined;
80
+ resourceInputs["name"] = state ? state.name : undefined;
81
+ }
82
+ else {
83
+ const args = argsOrState;
84
+ if ((!args || args.certificateBundle === undefined) && !opts.urn) {
85
+ throw new Error("Missing required property 'certificateBundle'");
86
+ }
87
+ if ((!args || args.frontend === undefined) && !opts.urn) {
88
+ throw new Error("Missing required property 'frontend'");
89
+ }
90
+ resourceInputs["certificateBundle"] = args ? args.certificateBundle : undefined;
91
+ resourceInputs["frontend"] = args ? args.frontend : undefined;
92
+ resourceInputs["name"] = args ? args.name : undefined;
93
+ }
94
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
95
+ super(LoadbalancerFrontendTlsConfig.__pulumiType, name, resourceInputs, opts);
96
+ }
97
+ }
98
+ exports.LoadbalancerFrontendTlsConfig = LoadbalancerFrontendTlsConfig;
99
+ /** @internal */
100
+ LoadbalancerFrontendTlsConfig.__pulumiType = 'upcloud:index/loadbalancerFrontendTlsConfig:LoadbalancerFrontendTlsConfig';
101
+ //# sourceMappingURL=loadbalancerFrontendTlsConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadbalancerFrontendTlsConfig.js","sourceRoot":"","sources":["../loadbalancerFrontendTlsConfig.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAa,6BAA8B,SAAQ,MAAM,CAAC,cAAc;IACpE;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA0C,EAAE,IAAmC;QACxI,OAAO,IAAI,6BAA6B,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IACpF,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,6BAA6B,CAAC,YAAY,CAAC;IAC9E,CAAC;IAuBD,YAAY,IAAY,EAAE,WAAoF,EAAE,IAAmC;QAC/I,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA6D,CAAC;YAC5E,cAAc,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;YAClF,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3D;aAAM;YACH,MAAM,IAAI,GAAG,WAA4D,CAAC;YAC1E,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC9D,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;aACpE;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;aAC3D;YACD,cAAc,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;YAChF,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SACzD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,6BAA6B,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAClF,CAAC;;AAvEL,sEAwEC;AA1DG,gBAAgB;AACO,0CAAY,GAAG,2EAA2E,CAAC"}
@@ -0,0 +1,111 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * This resource represents manual certificate bundle
4
+ */
5
+ export declare class LoadbalancerManualCertificateBundle extends pulumi.CustomResource {
6
+ /**
7
+ * Get an existing LoadbalancerManualCertificateBundle resource's state with the given name, ID, and optional extra
8
+ * properties used to qualify the lookup.
9
+ *
10
+ * @param name The _unique_ name of the resulting resource.
11
+ * @param id The _unique_ provider ID of the resource to lookup.
12
+ * @param state Any extra arguments used during the lookup.
13
+ * @param opts Optional settings to control the behavior of the CustomResource.
14
+ */
15
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: LoadbalancerManualCertificateBundleState, opts?: pulumi.CustomResourceOptions): LoadbalancerManualCertificateBundle;
16
+ /**
17
+ * Returns true if the given object is an instance of LoadbalancerManualCertificateBundle. This is designed to work even
18
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
19
+ */
20
+ static isInstance(obj: any): obj is LoadbalancerManualCertificateBundle;
21
+ /**
22
+ * Certificate as base64 encoded string. Must be in PEM format.
23
+ */
24
+ readonly certificate: pulumi.Output<string>;
25
+ /**
26
+ * Intermediate certificates as base64 encoded string. Must be in PEM format.
27
+ */
28
+ readonly intermediates: pulumi.Output<string>;
29
+ /**
30
+ * The name of the certificate bundle. Must be unique within customer account.
31
+ */
32
+ readonly name: pulumi.Output<string>;
33
+ /**
34
+ * The time after which a certificate is no longer valid.
35
+ */
36
+ readonly notAfter: pulumi.Output<string>;
37
+ /**
38
+ * The time on which a certificate becomes valid.
39
+ */
40
+ readonly notBefore: pulumi.Output<string>;
41
+ /**
42
+ * The service operational state indicates the service's current operational, effective state. Managed by the system.
43
+ */
44
+ readonly operationalState: pulumi.Output<string>;
45
+ /**
46
+ * Private key as base64 encoded string. Must be in PEM format.
47
+ */
48
+ readonly privateKey: pulumi.Output<string>;
49
+ /**
50
+ * Create a LoadbalancerManualCertificateBundle resource with the given unique name, arguments, and options.
51
+ *
52
+ * @param name The _unique_ name of the resource.
53
+ * @param args The arguments to use to populate this resource's properties.
54
+ * @param opts A bag of options that control this resource's behavior.
55
+ */
56
+ constructor(name: string, args: LoadbalancerManualCertificateBundleArgs, opts?: pulumi.CustomResourceOptions);
57
+ }
58
+ /**
59
+ * Input properties used for looking up and filtering LoadbalancerManualCertificateBundle resources.
60
+ */
61
+ export interface LoadbalancerManualCertificateBundleState {
62
+ /**
63
+ * Certificate as base64 encoded string. Must be in PEM format.
64
+ */
65
+ certificate?: pulumi.Input<string>;
66
+ /**
67
+ * Intermediate certificates as base64 encoded string. Must be in PEM format.
68
+ */
69
+ intermediates?: pulumi.Input<string>;
70
+ /**
71
+ * The name of the certificate bundle. Must be unique within customer account.
72
+ */
73
+ name?: pulumi.Input<string>;
74
+ /**
75
+ * The time after which a certificate is no longer valid.
76
+ */
77
+ notAfter?: pulumi.Input<string>;
78
+ /**
79
+ * The time on which a certificate becomes valid.
80
+ */
81
+ notBefore?: pulumi.Input<string>;
82
+ /**
83
+ * The service operational state indicates the service's current operational, effective state. Managed by the system.
84
+ */
85
+ operationalState?: pulumi.Input<string>;
86
+ /**
87
+ * Private key as base64 encoded string. Must be in PEM format.
88
+ */
89
+ privateKey?: pulumi.Input<string>;
90
+ }
91
+ /**
92
+ * The set of arguments for constructing a LoadbalancerManualCertificateBundle resource.
93
+ */
94
+ export interface LoadbalancerManualCertificateBundleArgs {
95
+ /**
96
+ * Certificate as base64 encoded string. Must be in PEM format.
97
+ */
98
+ certificate: pulumi.Input<string>;
99
+ /**
100
+ * Intermediate certificates as base64 encoded string. Must be in PEM format.
101
+ */
102
+ intermediates?: pulumi.Input<string>;
103
+ /**
104
+ * The name of the certificate bundle. Must be unique within customer account.
105
+ */
106
+ name?: pulumi.Input<string>;
107
+ /**
108
+ * Private key as base64 encoded string. Must be in PEM format.
109
+ */
110
+ privateKey: pulumi.Input<string>;
111
+ }
@@ -0,0 +1,72 @@
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
+ exports.LoadbalancerManualCertificateBundle = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * This resource represents manual certificate bundle
10
+ */
11
+ class LoadbalancerManualCertificateBundle extends pulumi.CustomResource {
12
+ /**
13
+ * Get an existing LoadbalancerManualCertificateBundle resource's state with the given name, ID, and optional extra
14
+ * properties used to qualify the lookup.
15
+ *
16
+ * @param name The _unique_ name of the resulting resource.
17
+ * @param id The _unique_ provider ID of the resource to lookup.
18
+ * @param state Any extra arguments used during the lookup.
19
+ * @param opts Optional settings to control the behavior of the CustomResource.
20
+ */
21
+ static get(name, id, state, opts) {
22
+ return new LoadbalancerManualCertificateBundle(name, state, Object.assign(Object.assign({}, opts), { id: id }));
23
+ }
24
+ /**
25
+ * Returns true if the given object is an instance of LoadbalancerManualCertificateBundle. This is designed to work even
26
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
27
+ */
28
+ static isInstance(obj) {
29
+ if (obj === undefined || obj === null) {
30
+ return false;
31
+ }
32
+ return obj['__pulumiType'] === LoadbalancerManualCertificateBundle.__pulumiType;
33
+ }
34
+ constructor(name, argsOrState, opts) {
35
+ let resourceInputs = {};
36
+ opts = opts || {};
37
+ if (opts.id) {
38
+ const state = argsOrState;
39
+ resourceInputs["certificate"] = state ? state.certificate : undefined;
40
+ resourceInputs["intermediates"] = state ? state.intermediates : undefined;
41
+ resourceInputs["name"] = state ? state.name : undefined;
42
+ resourceInputs["notAfter"] = state ? state.notAfter : undefined;
43
+ resourceInputs["notBefore"] = state ? state.notBefore : undefined;
44
+ resourceInputs["operationalState"] = state ? state.operationalState : undefined;
45
+ resourceInputs["privateKey"] = state ? state.privateKey : undefined;
46
+ }
47
+ else {
48
+ const args = argsOrState;
49
+ if ((!args || args.certificate === undefined) && !opts.urn) {
50
+ throw new Error("Missing required property 'certificate'");
51
+ }
52
+ if ((!args || args.privateKey === undefined) && !opts.urn) {
53
+ throw new Error("Missing required property 'privateKey'");
54
+ }
55
+ resourceInputs["certificate"] = args ? args.certificate : undefined;
56
+ resourceInputs["intermediates"] = args ? args.intermediates : undefined;
57
+ resourceInputs["name"] = args ? args.name : undefined;
58
+ resourceInputs["privateKey"] = (args === null || args === void 0 ? void 0 : args.privateKey) ? pulumi.secret(args.privateKey) : undefined;
59
+ resourceInputs["notAfter"] = undefined /*out*/;
60
+ resourceInputs["notBefore"] = undefined /*out*/;
61
+ resourceInputs["operationalState"] = undefined /*out*/;
62
+ }
63
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
64
+ const secretOpts = { additionalSecretOutputs: ["privateKey"] };
65
+ opts = pulumi.mergeOptions(opts, secretOpts);
66
+ super(LoadbalancerManualCertificateBundle.__pulumiType, name, resourceInputs, opts);
67
+ }
68
+ }
69
+ exports.LoadbalancerManualCertificateBundle = LoadbalancerManualCertificateBundle;
70
+ /** @internal */
71
+ LoadbalancerManualCertificateBundle.__pulumiType = 'upcloud:index/loadbalancerManualCertificateBundle:LoadbalancerManualCertificateBundle';
72
+ //# sourceMappingURL=loadbalancerManualCertificateBundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadbalancerManualCertificateBundle.js","sourceRoot":"","sources":["../loadbalancerManualCertificateBundle.ts"],"names":[],"mappings":"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"}