@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,83 @@
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.LoadbalancerDynamicCertificateBundle = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * This resource represents dynamic certificate bundle
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 lbCbD1 = new upcloud.LoadbalancerDynamicCertificateBundle("lbCbD1", {
18
+ * hostnames: [
19
+ * "example.com",
20
+ * "app.example.net",
21
+ * ],
22
+ * keyType: "rsa",
23
+ * });
24
+ * ```
25
+ */
26
+ class LoadbalancerDynamicCertificateBundle extends pulumi.CustomResource {
27
+ /**
28
+ * Get an existing LoadbalancerDynamicCertificateBundle resource's state with the given name, ID, and optional extra
29
+ * properties used to qualify the lookup.
30
+ *
31
+ * @param name The _unique_ name of the resulting resource.
32
+ * @param id The _unique_ provider ID of the resource to lookup.
33
+ * @param state Any extra arguments used during the lookup.
34
+ * @param opts Optional settings to control the behavior of the CustomResource.
35
+ */
36
+ static get(name, id, state, opts) {
37
+ return new LoadbalancerDynamicCertificateBundle(name, state, Object.assign(Object.assign({}, opts), { id: id }));
38
+ }
39
+ /**
40
+ * Returns true if the given object is an instance of LoadbalancerDynamicCertificateBundle. This is designed to work even
41
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
42
+ */
43
+ static isInstance(obj) {
44
+ if (obj === undefined || obj === null) {
45
+ return false;
46
+ }
47
+ return obj['__pulumiType'] === LoadbalancerDynamicCertificateBundle.__pulumiType;
48
+ }
49
+ constructor(name, argsOrState, opts) {
50
+ let resourceInputs = {};
51
+ opts = opts || {};
52
+ if (opts.id) {
53
+ const state = argsOrState;
54
+ resourceInputs["hostnames"] = state ? state.hostnames : undefined;
55
+ resourceInputs["keyType"] = state ? state.keyType : undefined;
56
+ resourceInputs["name"] = state ? state.name : undefined;
57
+ resourceInputs["notAfter"] = state ? state.notAfter : undefined;
58
+ resourceInputs["notBefore"] = state ? state.notBefore : undefined;
59
+ resourceInputs["operationalState"] = state ? state.operationalState : undefined;
60
+ }
61
+ else {
62
+ const args = argsOrState;
63
+ if ((!args || args.hostnames === undefined) && !opts.urn) {
64
+ throw new Error("Missing required property 'hostnames'");
65
+ }
66
+ if ((!args || args.keyType === undefined) && !opts.urn) {
67
+ throw new Error("Missing required property 'keyType'");
68
+ }
69
+ resourceInputs["hostnames"] = args ? args.hostnames : undefined;
70
+ resourceInputs["keyType"] = args ? args.keyType : undefined;
71
+ resourceInputs["name"] = args ? args.name : undefined;
72
+ resourceInputs["notAfter"] = undefined /*out*/;
73
+ resourceInputs["notBefore"] = undefined /*out*/;
74
+ resourceInputs["operationalState"] = undefined /*out*/;
75
+ }
76
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
77
+ super(LoadbalancerDynamicCertificateBundle.__pulumiType, name, resourceInputs, opts);
78
+ }
79
+ }
80
+ exports.LoadbalancerDynamicCertificateBundle = LoadbalancerDynamicCertificateBundle;
81
+ /** @internal */
82
+ LoadbalancerDynamicCertificateBundle.__pulumiType = 'upcloud:index/loadbalancerDynamicCertificateBundle:LoadbalancerDynamicCertificateBundle';
83
+ //# sourceMappingURL=loadbalancerDynamicCertificateBundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadbalancerDynamicCertificateBundle.js","sourceRoot":"","sources":["../loadbalancerDynamicCertificateBundle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "./types/input";
3
+ import * as outputs from "./types/output";
4
+ /**
5
+ * This resource represents load balancer frontend service.
6
+ *
7
+ * ## Example Usage
8
+ *
9
+ * ```typescript
10
+ * import * as pulumi from "@pulumi/pulumi";
11
+ * import * as upcloud from "@upcloud/pulumi-upcloud";
12
+ *
13
+ * const config = new pulumi.Config();
14
+ * const lbZone = config.get("lbZone") || "fi-hel2";
15
+ * const lbNetwork = new upcloud.Network("lbNetwork", {
16
+ * zone: lbZone,
17
+ * ipNetwork: {
18
+ * address: "10.0.0.0/24",
19
+ * dhcp: true,
20
+ * family: "IPv4",
21
+ * },
22
+ * });
23
+ * const lbFe1 = new upcloud.LoadbalancerFrontend("lbFe1", {
24
+ * loadbalancer: resource.upcloud_loadbalancer.lb.id,
25
+ * mode: "http",
26
+ * port: 8080,
27
+ * defaultBackendName: resource.upcloud_loadbalancer_backend.lb_be_1.name,
28
+ * networks: [{
29
+ * name: resource.upcloud_loadbalancer.lb.networks[1].name,
30
+ * }],
31
+ * });
32
+ * const lb = new upcloud.Loadbalancer("lb", {
33
+ * configuredStatus: "started",
34
+ * plan: "development",
35
+ * zone: lbZone,
36
+ * networks: [
37
+ * {
38
+ * name: "Private-Net",
39
+ * type: "private",
40
+ * family: "IPv4",
41
+ * network: resource.upcloud_network.lb_network.id,
42
+ * },
43
+ * {
44
+ * name: "Public-Net",
45
+ * type: "public",
46
+ * family: "IPv4",
47
+ * },
48
+ * ],
49
+ * });
50
+ * const lbBe1 = new upcloud.LoadbalancerBackend("lbBe1", {loadbalancer: resource.upcloud_loadbalancer.lb.id});
51
+ * ```
52
+ */
53
+ export declare class LoadbalancerFrontend extends pulumi.CustomResource {
54
+ /**
55
+ * Get an existing LoadbalancerFrontend resource's state with the given name, ID, and optional extra
56
+ * properties used to qualify the lookup.
57
+ *
58
+ * @param name The _unique_ name of the resulting resource.
59
+ * @param id The _unique_ provider ID of the resource to lookup.
60
+ * @param state Any extra arguments used during the lookup.
61
+ * @param opts Optional settings to control the behavior of the CustomResource.
62
+ */
63
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: LoadbalancerFrontendState, opts?: pulumi.CustomResourceOptions): LoadbalancerFrontend;
64
+ /**
65
+ * Returns true if the given object is an instance of LoadbalancerFrontend. This is designed to work even
66
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
67
+ */
68
+ static isInstance(obj: any): obj is LoadbalancerFrontend;
69
+ /**
70
+ * The name of the default backend where traffic will be routed. Note, default backend can be overwritten in frontend
71
+ * rules.
72
+ */
73
+ readonly defaultBackendName: pulumi.Output<string>;
74
+ /**
75
+ * UUID of the load balancer to which the frontend is connected.
76
+ */
77
+ readonly loadbalancer: pulumi.Output<string>;
78
+ /**
79
+ * When load balancer operating in `tcp` mode it acts as a layer 4 proxy. In `http` mode it acts as a layer 7 proxy.
80
+ */
81
+ readonly mode: pulumi.Output<string>;
82
+ /**
83
+ * The name of the frontend. Must be unique within the load balancer service.
84
+ */
85
+ readonly name: pulumi.Output<string>;
86
+ /**
87
+ * Networks that frontend will be listening. Networks are required if load balancer has `networks` defined. This field will
88
+ * be required when deprecated field `network` is removed from load balancer resource.
89
+ */
90
+ readonly networks: pulumi.Output<outputs.LoadbalancerFrontendNetwork[] | undefined>;
91
+ /**
92
+ * Port to listen for incoming requests.
93
+ */
94
+ readonly port: pulumi.Output<number>;
95
+ readonly properties: pulumi.Output<outputs.LoadbalancerFrontendProperties | undefined>;
96
+ /**
97
+ * Set of frontend rule names.
98
+ */
99
+ readonly rules: pulumi.Output<string[]>;
100
+ /**
101
+ * Set of TLS config names.
102
+ */
103
+ readonly tlsConfigs: pulumi.Output<string[]>;
104
+ /**
105
+ * Create a LoadbalancerFrontend resource with the given unique name, arguments, and options.
106
+ *
107
+ * @param name The _unique_ name of the resource.
108
+ * @param args The arguments to use to populate this resource's properties.
109
+ * @param opts A bag of options that control this resource's behavior.
110
+ */
111
+ constructor(name: string, args: LoadbalancerFrontendArgs, opts?: pulumi.CustomResourceOptions);
112
+ }
113
+ /**
114
+ * Input properties used for looking up and filtering LoadbalancerFrontend resources.
115
+ */
116
+ export interface LoadbalancerFrontendState {
117
+ /**
118
+ * The name of the default backend where traffic will be routed. Note, default backend can be overwritten in frontend
119
+ * rules.
120
+ */
121
+ defaultBackendName?: pulumi.Input<string>;
122
+ /**
123
+ * UUID of the load balancer to which the frontend is connected.
124
+ */
125
+ loadbalancer?: pulumi.Input<string>;
126
+ /**
127
+ * When load balancer operating in `tcp` mode it acts as a layer 4 proxy. In `http` mode it acts as a layer 7 proxy.
128
+ */
129
+ mode?: pulumi.Input<string>;
130
+ /**
131
+ * The name of the frontend. Must be unique within the load balancer service.
132
+ */
133
+ name?: pulumi.Input<string>;
134
+ /**
135
+ * Networks that frontend will be listening. Networks are required if load balancer has `networks` defined. This field will
136
+ * be required when deprecated field `network` is removed from load balancer resource.
137
+ */
138
+ networks?: pulumi.Input<pulumi.Input<inputs.LoadbalancerFrontendNetwork>[]>;
139
+ /**
140
+ * Port to listen for incoming requests.
141
+ */
142
+ port?: pulumi.Input<number>;
143
+ properties?: pulumi.Input<inputs.LoadbalancerFrontendProperties>;
144
+ /**
145
+ * Set of frontend rule names.
146
+ */
147
+ rules?: pulumi.Input<pulumi.Input<string>[]>;
148
+ /**
149
+ * Set of TLS config names.
150
+ */
151
+ tlsConfigs?: pulumi.Input<pulumi.Input<string>[]>;
152
+ }
153
+ /**
154
+ * The set of arguments for constructing a LoadbalancerFrontend resource.
155
+ */
156
+ export interface LoadbalancerFrontendArgs {
157
+ /**
158
+ * The name of the default backend where traffic will be routed. Note, default backend can be overwritten in frontend
159
+ * rules.
160
+ */
161
+ defaultBackendName: pulumi.Input<string>;
162
+ /**
163
+ * UUID of the load balancer to which the frontend is connected.
164
+ */
165
+ loadbalancer: pulumi.Input<string>;
166
+ /**
167
+ * When load balancer operating in `tcp` mode it acts as a layer 4 proxy. In `http` mode it acts as a layer 7 proxy.
168
+ */
169
+ mode: pulumi.Input<string>;
170
+ /**
171
+ * The name of the frontend. Must be unique within the load balancer service.
172
+ */
173
+ name?: pulumi.Input<string>;
174
+ /**
175
+ * Networks that frontend will be listening. Networks are required if load balancer has `networks` defined. This field will
176
+ * be required when deprecated field `network` is removed from load balancer resource.
177
+ */
178
+ networks?: pulumi.Input<pulumi.Input<inputs.LoadbalancerFrontendNetwork>[]>;
179
+ /**
180
+ * Port to listen for incoming requests.
181
+ */
182
+ port: pulumi.Input<number>;
183
+ properties?: pulumi.Input<inputs.LoadbalancerFrontendProperties>;
184
+ }
@@ -0,0 +1,126 @@
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.LoadbalancerFrontend = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * This resource represents load balancer frontend service.
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 lbFe1 = new upcloud.LoadbalancerFrontend("lbFe1", {
28
+ * loadbalancer: resource.upcloud_loadbalancer.lb.id,
29
+ * mode: "http",
30
+ * port: 8080,
31
+ * defaultBackendName: resource.upcloud_loadbalancer_backend.lb_be_1.name,
32
+ * networks: [{
33
+ * name: resource.upcloud_loadbalancer.lb.networks[1].name,
34
+ * }],
35
+ * });
36
+ * const lb = new upcloud.Loadbalancer("lb", {
37
+ * configuredStatus: "started",
38
+ * plan: "development",
39
+ * zone: lbZone,
40
+ * networks: [
41
+ * {
42
+ * name: "Private-Net",
43
+ * type: "private",
44
+ * family: "IPv4",
45
+ * network: resource.upcloud_network.lb_network.id,
46
+ * },
47
+ * {
48
+ * name: "Public-Net",
49
+ * type: "public",
50
+ * family: "IPv4",
51
+ * },
52
+ * ],
53
+ * });
54
+ * const lbBe1 = new upcloud.LoadbalancerBackend("lbBe1", {loadbalancer: resource.upcloud_loadbalancer.lb.id});
55
+ * ```
56
+ */
57
+ class LoadbalancerFrontend extends pulumi.CustomResource {
58
+ /**
59
+ * Get an existing LoadbalancerFrontend resource's state with the given name, ID, and optional extra
60
+ * properties used to qualify the lookup.
61
+ *
62
+ * @param name The _unique_ name of the resulting resource.
63
+ * @param id The _unique_ provider ID of the resource to lookup.
64
+ * @param state Any extra arguments used during the lookup.
65
+ * @param opts Optional settings to control the behavior of the CustomResource.
66
+ */
67
+ static get(name, id, state, opts) {
68
+ return new LoadbalancerFrontend(name, state, Object.assign(Object.assign({}, opts), { id: id }));
69
+ }
70
+ /**
71
+ * Returns true if the given object is an instance of LoadbalancerFrontend. This is designed to work even
72
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
73
+ */
74
+ static isInstance(obj) {
75
+ if (obj === undefined || obj === null) {
76
+ return false;
77
+ }
78
+ return obj['__pulumiType'] === LoadbalancerFrontend.__pulumiType;
79
+ }
80
+ constructor(name, argsOrState, opts) {
81
+ let resourceInputs = {};
82
+ opts = opts || {};
83
+ if (opts.id) {
84
+ const state = argsOrState;
85
+ resourceInputs["defaultBackendName"] = state ? state.defaultBackendName : undefined;
86
+ resourceInputs["loadbalancer"] = state ? state.loadbalancer : undefined;
87
+ resourceInputs["mode"] = state ? state.mode : undefined;
88
+ resourceInputs["name"] = state ? state.name : undefined;
89
+ resourceInputs["networks"] = state ? state.networks : undefined;
90
+ resourceInputs["port"] = state ? state.port : undefined;
91
+ resourceInputs["properties"] = state ? state.properties : undefined;
92
+ resourceInputs["rules"] = state ? state.rules : undefined;
93
+ resourceInputs["tlsConfigs"] = state ? state.tlsConfigs : undefined;
94
+ }
95
+ else {
96
+ const args = argsOrState;
97
+ if ((!args || args.defaultBackendName === undefined) && !opts.urn) {
98
+ throw new Error("Missing required property 'defaultBackendName'");
99
+ }
100
+ if ((!args || args.loadbalancer === undefined) && !opts.urn) {
101
+ throw new Error("Missing required property 'loadbalancer'");
102
+ }
103
+ if ((!args || args.mode === undefined) && !opts.urn) {
104
+ throw new Error("Missing required property 'mode'");
105
+ }
106
+ if ((!args || args.port === undefined) && !opts.urn) {
107
+ throw new Error("Missing required property 'port'");
108
+ }
109
+ resourceInputs["defaultBackendName"] = args ? args.defaultBackendName : undefined;
110
+ resourceInputs["loadbalancer"] = args ? args.loadbalancer : undefined;
111
+ resourceInputs["mode"] = args ? args.mode : undefined;
112
+ resourceInputs["name"] = args ? args.name : undefined;
113
+ resourceInputs["networks"] = args ? args.networks : undefined;
114
+ resourceInputs["port"] = args ? args.port : undefined;
115
+ resourceInputs["properties"] = args ? args.properties : undefined;
116
+ resourceInputs["rules"] = undefined /*out*/;
117
+ resourceInputs["tlsConfigs"] = undefined /*out*/;
118
+ }
119
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
120
+ super(LoadbalancerFrontend.__pulumiType, name, resourceInputs, opts);
121
+ }
122
+ }
123
+ exports.LoadbalancerFrontend = LoadbalancerFrontend;
124
+ /** @internal */
125
+ LoadbalancerFrontend.__pulumiType = 'upcloud:index/loadbalancerFrontend:LoadbalancerFrontend';
126
+ //# sourceMappingURL=loadbalancerFrontend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadbalancerFrontend.js","sourceRoot":"","sources":["../loadbalancerFrontend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "./types/input";
3
+ import * as outputs from "./types/output";
4
+ /**
5
+ * This resource represents load balancer frontend rule.
6
+ *
7
+ * ## Example Usage
8
+ *
9
+ * ```typescript
10
+ * import * as pulumi from "@pulumi/pulumi";
11
+ * import * as upcloud from "@upcloud/pulumi-upcloud";
12
+ *
13
+ * const config = new pulumi.Config();
14
+ * const lbZone = config.get("lbZone") || "fi-hel2";
15
+ * const lbNetwork = new upcloud.Network("lbNetwork", {
16
+ * zone: lbZone,
17
+ * ipNetwork: {
18
+ * address: "10.0.0.0/24",
19
+ * dhcp: true,
20
+ * family: "IPv4",
21
+ * },
22
+ * });
23
+ * const lbFe1R1 = new upcloud.LoadbalancerFrontendRule("lbFe1R1", {
24
+ * frontend: resource.upcloud_loadbalancer_frontend.lb_fe_1.id,
25
+ * priority: 10,
26
+ * matchers: {
27
+ * srcIps: [{
28
+ * value: "192.168.0.0/24",
29
+ * }],
30
+ * },
31
+ * actions: {
32
+ * useBackends: [{
33
+ * backendName: resource.upcloud_loadbalancer_backend.lb_be_1.name,
34
+ * }],
35
+ * },
36
+ * });
37
+ * const lbFe1 = new upcloud.LoadbalancerFrontend("lbFe1", {
38
+ * loadbalancer: resource.upcloud_loadbalancer.lb.id,
39
+ * mode: "http",
40
+ * port: 8080,
41
+ * defaultBackendName: resource.upcloud_loadbalancer_backend.lb_be_1.name,
42
+ * });
43
+ * const lb = new upcloud.Loadbalancer("lb", {
44
+ * configuredStatus: "started",
45
+ * plan: "development",
46
+ * zone: lbZone,
47
+ * networks: [
48
+ * {
49
+ * type: "public",
50
+ * family: "IPv4",
51
+ * name: "public",
52
+ * },
53
+ * {
54
+ * type: "private",
55
+ * family: "IPv4",
56
+ * name: "private",
57
+ * network: resource.upcloud_network.lb_network.id,
58
+ * },
59
+ * ],
60
+ * });
61
+ * const lbBe1 = new upcloud.LoadbalancerBackend("lbBe1", {loadbalancer: resource.upcloud_loadbalancer.lb.id});
62
+ * ```
63
+ */
64
+ export declare class LoadbalancerFrontendRule extends pulumi.CustomResource {
65
+ /**
66
+ * Get an existing LoadbalancerFrontendRule resource's state with the given name, ID, and optional extra
67
+ * properties used to qualify the lookup.
68
+ *
69
+ * @param name The _unique_ name of the resulting resource.
70
+ * @param id The _unique_ provider ID of the resource to lookup.
71
+ * @param state Any extra arguments used during the lookup.
72
+ * @param opts Optional settings to control the behavior of the CustomResource.
73
+ */
74
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: LoadbalancerFrontendRuleState, opts?: pulumi.CustomResourceOptions): LoadbalancerFrontendRule;
75
+ /**
76
+ * Returns true if the given object is an instance of LoadbalancerFrontendRule. This is designed to work even
77
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
78
+ */
79
+ static isInstance(obj: any): obj is LoadbalancerFrontendRule;
80
+ /**
81
+ * Rule actions.
82
+ */
83
+ readonly actions: pulumi.Output<outputs.LoadbalancerFrontendRuleActions | undefined>;
84
+ /**
85
+ * ID of the load balancer frontend to which the frontend rule is connected.
86
+ */
87
+ readonly frontend: pulumi.Output<string>;
88
+ /**
89
+ * Set of rule matchers. If rule doesn't have matchers, then action applies to all incoming requests.
90
+ */
91
+ readonly matchers: pulumi.Output<outputs.LoadbalancerFrontendRuleMatchers | undefined>;
92
+ /**
93
+ * Defines boolean operator used to combine multiple matchers. Defaults to `and`.
94
+ */
95
+ readonly matchingCondition: pulumi.Output<string>;
96
+ /**
97
+ * The name of the frontend rule. Must be unique within the frontend.
98
+ */
99
+ readonly name: pulumi.Output<string>;
100
+ /**
101
+ * Rule with the higher priority goes first. Rules with the same priority processed in alphabetical order.
102
+ */
103
+ readonly priority: pulumi.Output<number>;
104
+ /**
105
+ * Create a LoadbalancerFrontendRule resource with the given unique name, arguments, and options.
106
+ *
107
+ * @param name The _unique_ name of the resource.
108
+ * @param args The arguments to use to populate this resource's properties.
109
+ * @param opts A bag of options that control this resource's behavior.
110
+ */
111
+ constructor(name: string, args: LoadbalancerFrontendRuleArgs, opts?: pulumi.CustomResourceOptions);
112
+ }
113
+ /**
114
+ * Input properties used for looking up and filtering LoadbalancerFrontendRule resources.
115
+ */
116
+ export interface LoadbalancerFrontendRuleState {
117
+ /**
118
+ * Rule actions.
119
+ */
120
+ actions?: pulumi.Input<inputs.LoadbalancerFrontendRuleActions>;
121
+ /**
122
+ * ID of the load balancer frontend to which the frontend rule is connected.
123
+ */
124
+ frontend?: pulumi.Input<string>;
125
+ /**
126
+ * Set of rule matchers. If rule doesn't have matchers, then action applies to all incoming requests.
127
+ */
128
+ matchers?: pulumi.Input<inputs.LoadbalancerFrontendRuleMatchers>;
129
+ /**
130
+ * Defines boolean operator used to combine multiple matchers. Defaults to `and`.
131
+ */
132
+ matchingCondition?: pulumi.Input<string>;
133
+ /**
134
+ * The name of the frontend rule. Must be unique within the frontend.
135
+ */
136
+ name?: pulumi.Input<string>;
137
+ /**
138
+ * Rule with the higher priority goes first. Rules with the same priority processed in alphabetical order.
139
+ */
140
+ priority?: pulumi.Input<number>;
141
+ }
142
+ /**
143
+ * The set of arguments for constructing a LoadbalancerFrontendRule resource.
144
+ */
145
+ export interface LoadbalancerFrontendRuleArgs {
146
+ /**
147
+ * Rule actions.
148
+ */
149
+ actions?: pulumi.Input<inputs.LoadbalancerFrontendRuleActions>;
150
+ /**
151
+ * ID of the load balancer frontend to which the frontend rule is connected.
152
+ */
153
+ frontend: pulumi.Input<string>;
154
+ /**
155
+ * Set of rule matchers. If rule doesn't have matchers, then action applies to all incoming requests.
156
+ */
157
+ matchers?: pulumi.Input<inputs.LoadbalancerFrontendRuleMatchers>;
158
+ /**
159
+ * Defines boolean operator used to combine multiple matchers. Defaults to `and`.
160
+ */
161
+ matchingCondition?: pulumi.Input<string>;
162
+ /**
163
+ * The name of the frontend rule. Must be unique within the frontend.
164
+ */
165
+ name?: pulumi.Input<string>;
166
+ /**
167
+ * Rule with the higher priority goes first. Rules with the same priority processed in alphabetical order.
168
+ */
169
+ priority: pulumi.Input<number>;
170
+ }