@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.
- package/LICENSE +202 -0
- package/README.md +61 -0
- package/config/index.d.ts +1 -0
- package/config/index.js +21 -0
- package/config/index.js.map +1 -0
- package/config/vars.d.ts +25 -0
- package/config/vars.js +43 -0
- package/config/vars.js.map +1 -0
- package/floatingIpAddress.d.ts +128 -0
- package/floatingIpAddress.js +90 -0
- package/floatingIpAddress.js.map +1 -0
- package/gateway.d.ts +206 -0
- package/gateway.js +111 -0
- package/gateway.js.map +1 -0
- package/gatewayConnection.d.ts +157 -0
- package/gatewayConnection.js +105 -0
- package/gatewayConnection.js.map +1 -0
- package/gatewayConnectionTunnel.d.ts +129 -0
- package/gatewayConnectionTunnel.js +78 -0
- package/gatewayConnectionTunnel.js.map +1 -0
- package/getHosts.d.ts +55 -0
- package/getHosts.js +52 -0
- package/getHosts.js.map +1 -0
- package/getIpAddresses.d.ts +51 -0
- package/getIpAddresses.js +48 -0
- package/getIpAddresses.js.map +1 -0
- package/getKubernetesCluster.d.ts +33 -0
- package/getKubernetesCluster.js +28 -0
- package/getKubernetesCluster.js.map +1 -0
- package/getLoadBalancerDnsChallengeDomain.d.ts +40 -0
- package/getLoadBalancerDnsChallengeDomain.js +42 -0
- package/getLoadBalancerDnsChallengeDomain.js.map +1 -0
- package/getManagedDatabaseMysqlSessions.d.ts +83 -0
- package/getManagedDatabaseMysqlSessions.js +74 -0
- package/getManagedDatabaseMysqlSessions.js.map +1 -0
- package/getManagedDatabaseOpensearchIndices.d.ts +82 -0
- package/getManagedDatabaseOpensearchIndices.js +76 -0
- package/getManagedDatabaseOpensearchIndices.js.map +1 -0
- package/getManagedDatabasePostgresqlSessions.d.ts +83 -0
- package/getManagedDatabasePostgresqlSessions.js +74 -0
- package/getManagedDatabasePostgresqlSessions.js.map +1 -0
- package/getManagedDatabaseRedisSessions.d.ts +87 -0
- package/getManagedDatabaseRedisSessions.js +78 -0
- package/getManagedDatabaseRedisSessions.js.map +1 -0
- package/getManagedDatabaseValkeySessions.d.ts +83 -0
- package/getManagedDatabaseValkeySessions.js +74 -0
- package/getManagedDatabaseValkeySessions.js.map +1 -0
- package/getManagedObjectStoragePolicies.d.ts +33 -0
- package/getManagedObjectStoragePolicies.js +28 -0
- package/getManagedObjectStoragePolicies.js.map +1 -0
- package/getManagedObjectStorageRegions.d.ts +33 -0
- package/getManagedObjectStorageRegions.js +30 -0
- package/getManagedObjectStorageRegions.js.map +1 -0
- package/getNetworks.d.ts +60 -0
- package/getNetworks.js +56 -0
- package/getNetworks.js.map +1 -0
- package/getStorage.d.ts +163 -0
- package/getStorage.js +122 -0
- package/getStorage.js.map +1 -0
- package/getTags.d.ts +20 -0
- package/getTags.js +24 -0
- package/getTags.js.map +1 -0
- package/getZone.d.ts +42 -0
- package/getZone.js +32 -0
- package/getZone.js.map +1 -0
- package/getZones.d.ts +29 -0
- package/getZones.js +30 -0
- package/getZones.js.map +1 -0
- package/index.d.ts +177 -0
- package/index.js +287 -0
- package/index.js.map +1 -0
- package/kubernetesCluster.d.ts +237 -0
- package/kubernetesCluster.js +131 -0
- package/kubernetesCluster.js.map +1 -0
- package/kubernetesNodeGroup.d.ts +243 -0
- package/kubernetesNodeGroup.js +120 -0
- package/kubernetesNodeGroup.js.map +1 -0
- package/loadbalancer.d.ts +261 -0
- package/loadbalancer.js +122 -0
- package/loadbalancer.js.map +1 -0
- package/loadbalancerBackend.d.ts +121 -0
- package/loadbalancerBackend.js +90 -0
- package/loadbalancerBackend.js.map +1 -0
- package/loadbalancerBackendTlsConfig.d.ts +75 -0
- package/loadbalancerBackendTlsConfig.js +62 -0
- package/loadbalancerBackendTlsConfig.js.map +1 -0
- package/loadbalancerDynamicBackendMember.d.ts +169 -0
- package/loadbalancerDynamicBackendMember.js +119 -0
- package/loadbalancerDynamicBackendMember.js.map +1 -0
- package/loadbalancerDynamicCertificateBundle.d.ts +114 -0
- package/loadbalancerDynamicCertificateBundle.js +83 -0
- package/loadbalancerDynamicCertificateBundle.js.map +1 -0
- package/loadbalancerFrontend.d.ts +184 -0
- package/loadbalancerFrontend.js +126 -0
- package/loadbalancerFrontend.js.map +1 -0
- package/loadbalancerFrontendRule.d.ts +170 -0
- package/loadbalancerFrontendRule.js +125 -0
- package/loadbalancerFrontendRule.js.map +1 -0
- package/loadbalancerFrontendTlsConfig.d.ts +114 -0
- package/loadbalancerFrontendTlsConfig.js +101 -0
- package/loadbalancerFrontendTlsConfig.js.map +1 -0
- package/loadbalancerManualCertificateBundle.d.ts +111 -0
- package/loadbalancerManualCertificateBundle.js +72 -0
- package/loadbalancerManualCertificateBundle.js.map +1 -0
- package/loadbalancerResolver.d.ts +171 -0
- package/loadbalancerResolver.js +120 -0
- package/loadbalancerResolver.js.map +1 -0
- package/loadbalancerStaticBackendMember.d.ts +156 -0
- package/loadbalancerStaticBackendMember.js +106 -0
- package/loadbalancerStaticBackendMember.js.map +1 -0
- package/managedDatabaseLogicalDatabase.d.ts +109 -0
- package/managedDatabaseLogicalDatabase.js +83 -0
- package/managedDatabaseLogicalDatabase.js.map +1 -0
- package/managedDatabaseMysql.d.ts +298 -0
- package/managedDatabaseMysql.js +139 -0
- package/managedDatabaseMysql.js.map +1 -0
- package/managedDatabaseOpensearch.d.ts +317 -0
- package/managedDatabaseOpensearch.js +132 -0
- package/managedDatabaseOpensearch.js.map +1 -0
- package/managedDatabasePostgresql.d.ts +295 -0
- package/managedDatabasePostgresql.js +130 -0
- package/managedDatabasePostgresql.js.map +1 -0
- package/managedDatabaseRedis.d.ts +287 -0
- package/managedDatabaseRedis.js +128 -0
- package/managedDatabaseRedis.js.map +1 -0
- package/managedDatabaseUser.d.ts +163 -0
- package/managedDatabaseUser.js +94 -0
- package/managedDatabaseUser.js.map +1 -0
- package/managedDatabaseValkey.d.ts +285 -0
- package/managedDatabaseValkey.js +126 -0
- package/managedDatabaseValkey.js.map +1 -0
- package/managedObjectStorage.d.ts +178 -0
- package/managedObjectStorage.js +107 -0
- package/managedObjectStorage.js.map +1 -0
- package/managedObjectStorageBucket.d.ts +94 -0
- package/managedObjectStorageBucket.js +76 -0
- package/managedObjectStorageBucket.js.map +1 -0
- package/managedObjectStorageCustomDomain.d.ts +105 -0
- package/managedObjectStorageCustomDomain.js +89 -0
- package/managedObjectStorageCustomDomain.js.map +1 -0
- package/managedObjectStoragePolicy.d.ts +155 -0
- package/managedObjectStoragePolicy.js +93 -0
- package/managedObjectStoragePolicy.js.map +1 -0
- package/managedObjectStorageUser.d.ts +101 -0
- package/managedObjectStorageUser.js +80 -0
- package/managedObjectStorageUser.js.map +1 -0
- package/managedObjectStorageUserAccessKey.d.ts +128 -0
- package/managedObjectStorageUserAccessKey.js +96 -0
- package/managedObjectStorageUserAccessKey.js.map +1 -0
- package/managedObjectStorageUserPolicy.d.ts +100 -0
- package/managedObjectStorageUserPolicy.js +87 -0
- package/managedObjectStorageUserPolicy.js.map +1 -0
- package/network.d.ts +142 -0
- package/network.js +95 -0
- package/network.js.map +1 -0
- package/networkPeering.d.ts +137 -0
- package/networkPeering.js +96 -0
- package/networkPeering.js.map +1 -0
- package/objectStorage.d.ts +196 -0
- package/objectStorage.js +132 -0
- package/objectStorage.js.map +1 -0
- package/package.json +29 -0
- package/provider.d.ts +60 -0
- package/provider.js +50 -0
- package/provider.js.map +1 -0
- package/router.d.ts +124 -0
- package/router.js +77 -0
- package/router.js.map +1 -0
- package/server.d.ts +332 -0
- package/server.js +106 -0
- package/server.js.map +1 -0
- package/serverFirewallRules.d.ts +124 -0
- package/serverFirewallRules.js +107 -0
- package/serverFirewallRules.js.map +1 -0
- package/serverGroup.d.ts +160 -0
- package/serverGroup.js +91 -0
- package/serverGroup.js.map +1 -0
- package/storage.d.ts +210 -0
- package/storage.js +91 -0
- package/storage.js.map +1 -0
- package/storageTemplate.d.ts +151 -0
- package/storageTemplate.js +90 -0
- package/storageTemplate.js.map +1 -0
- package/tag.d.ts +75 -0
- package/tag.js +56 -0
- package/tag.js.map +1 -0
- package/types/index.d.ts +3 -0
- package/types/index.js +11 -0
- package/types/index.js.map +1 -0
- package/types/input.d.ts +3721 -0
- package/types/input.js +5 -0
- package/types/input.js.map +1 -0
- package/types/output.d.ts +3459 -0
- package/types/output.js +5 -0
- package/types/output.js.map +1 -0
- package/utilities.d.ts +8 -0
- package/utilities.js +101 -0
- package/utilities.js.map +1 -0
|
@@ -0,0 +1,120 @@
|
|
|
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.KubernetesNodeGroup = void 0;
|
|
6
|
+
const pulumi = require("@pulumi/pulumi");
|
|
7
|
+
const utilities = require("./utilities");
|
|
8
|
+
/**
|
|
9
|
+
* This resource represents a [Managed Kubernetes](https://upcloud.com/products/managed-kubernetes) cluster.
|
|
10
|
+
*
|
|
11
|
+
* ## Example Usage
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
15
|
+
* import * as upcloud from "@upcloud/pulumi-upcloud";
|
|
16
|
+
*
|
|
17
|
+
* // Create a network for the Kubernetes cluster
|
|
18
|
+
* const exampleNetwork = new upcloud.Network("exampleNetwork", {
|
|
19
|
+
* zone: "de-fra1",
|
|
20
|
+
* ipNetwork: {
|
|
21
|
+
* address: "172.16.1.0/24",
|
|
22
|
+
* dhcp: true,
|
|
23
|
+
* family: "IPv4",
|
|
24
|
+
* },
|
|
25
|
+
* });
|
|
26
|
+
* // Create a Kubernetes cluster
|
|
27
|
+
* const exampleKubernetesCluster = new upcloud.KubernetesCluster("exampleKubernetesCluster", {
|
|
28
|
+
* controlPlaneIpFilters: ["0.0.0.0/0"],
|
|
29
|
+
* network: exampleNetwork.id,
|
|
30
|
+
* zone: "de-fra1",
|
|
31
|
+
* });
|
|
32
|
+
* // Create a Kubernetes cluster node group
|
|
33
|
+
* const group = new upcloud.KubernetesNodeGroup("group", {
|
|
34
|
+
* cluster: resource.upcloud_kubernetes_cluster.example.id,
|
|
35
|
+
* nodeCount: 2,
|
|
36
|
+
* plan: "2xCPU-4GB",
|
|
37
|
+
* labels: {
|
|
38
|
+
* managedBy: "terraform",
|
|
39
|
+
* },
|
|
40
|
+
* taints: [{
|
|
41
|
+
* effect: "NoExecute",
|
|
42
|
+
* key: "taintKey",
|
|
43
|
+
* value: "taintValue",
|
|
44
|
+
* }],
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
class KubernetesNodeGroup extends pulumi.CustomResource {
|
|
49
|
+
/**
|
|
50
|
+
* Get an existing KubernetesNodeGroup resource's state with the given name, ID, and optional extra
|
|
51
|
+
* properties used to qualify the lookup.
|
|
52
|
+
*
|
|
53
|
+
* @param name The _unique_ name of the resulting resource.
|
|
54
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
55
|
+
* @param state Any extra arguments used during the lookup.
|
|
56
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
57
|
+
*/
|
|
58
|
+
static get(name, id, state, opts) {
|
|
59
|
+
return new KubernetesNodeGroup(name, state, Object.assign(Object.assign({}, opts), { id: id }));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Returns true if the given object is an instance of KubernetesNodeGroup. This is designed to work even
|
|
63
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
64
|
+
*/
|
|
65
|
+
static isInstance(obj) {
|
|
66
|
+
if (obj === undefined || obj === null) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return obj['__pulumiType'] === KubernetesNodeGroup.__pulumiType;
|
|
70
|
+
}
|
|
71
|
+
constructor(name, argsOrState, opts) {
|
|
72
|
+
let resourceInputs = {};
|
|
73
|
+
opts = opts || {};
|
|
74
|
+
if (opts.id) {
|
|
75
|
+
const state = argsOrState;
|
|
76
|
+
resourceInputs["antiAffinity"] = state ? state.antiAffinity : undefined;
|
|
77
|
+
resourceInputs["cluster"] = state ? state.cluster : undefined;
|
|
78
|
+
resourceInputs["customPlan"] = state ? state.customPlan : undefined;
|
|
79
|
+
resourceInputs["kubeletArgs"] = state ? state.kubeletArgs : undefined;
|
|
80
|
+
resourceInputs["labels"] = state ? state.labels : undefined;
|
|
81
|
+
resourceInputs["name"] = state ? state.name : undefined;
|
|
82
|
+
resourceInputs["nodeCount"] = state ? state.nodeCount : undefined;
|
|
83
|
+
resourceInputs["plan"] = state ? state.plan : undefined;
|
|
84
|
+
resourceInputs["sshKeys"] = state ? state.sshKeys : undefined;
|
|
85
|
+
resourceInputs["storageEncryption"] = state ? state.storageEncryption : undefined;
|
|
86
|
+
resourceInputs["taints"] = state ? state.taints : undefined;
|
|
87
|
+
resourceInputs["utilityNetworkAccess"] = state ? state.utilityNetworkAccess : undefined;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
const args = argsOrState;
|
|
91
|
+
if ((!args || args.cluster === undefined) && !opts.urn) {
|
|
92
|
+
throw new Error("Missing required property 'cluster'");
|
|
93
|
+
}
|
|
94
|
+
if ((!args || args.nodeCount === undefined) && !opts.urn) {
|
|
95
|
+
throw new Error("Missing required property 'nodeCount'");
|
|
96
|
+
}
|
|
97
|
+
if ((!args || args.plan === undefined) && !opts.urn) {
|
|
98
|
+
throw new Error("Missing required property 'plan'");
|
|
99
|
+
}
|
|
100
|
+
resourceInputs["antiAffinity"] = args ? args.antiAffinity : undefined;
|
|
101
|
+
resourceInputs["cluster"] = args ? args.cluster : undefined;
|
|
102
|
+
resourceInputs["customPlan"] = args ? args.customPlan : undefined;
|
|
103
|
+
resourceInputs["kubeletArgs"] = args ? args.kubeletArgs : undefined;
|
|
104
|
+
resourceInputs["labels"] = args ? args.labels : undefined;
|
|
105
|
+
resourceInputs["name"] = args ? args.name : undefined;
|
|
106
|
+
resourceInputs["nodeCount"] = args ? args.nodeCount : undefined;
|
|
107
|
+
resourceInputs["plan"] = args ? args.plan : undefined;
|
|
108
|
+
resourceInputs["sshKeys"] = args ? args.sshKeys : undefined;
|
|
109
|
+
resourceInputs["storageEncryption"] = args ? args.storageEncryption : undefined;
|
|
110
|
+
resourceInputs["taints"] = args ? args.taints : undefined;
|
|
111
|
+
resourceInputs["utilityNetworkAccess"] = args ? args.utilityNetworkAccess : undefined;
|
|
112
|
+
}
|
|
113
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
114
|
+
super(KubernetesNodeGroup.__pulumiType, name, resourceInputs, opts);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.KubernetesNodeGroup = KubernetesNodeGroup;
|
|
118
|
+
/** @internal */
|
|
119
|
+
KubernetesNodeGroup.__pulumiType = 'upcloud:index/kubernetesNodeGroup:KubernetesNodeGroup';
|
|
120
|
+
//# sourceMappingURL=kubernetesNodeGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kubernetesNodeGroup.js","sourceRoot":"","sources":["../kubernetesNodeGroup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,261 @@
|
|
|
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 [Managed Load Balancer](https://upcloud.com/products/managed-load-balancer) 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 lb = new upcloud.Loadbalancer("lb", {
|
|
24
|
+
* configuredStatus: "started",
|
|
25
|
+
* plan: "development",
|
|
26
|
+
* zone: lbZone,
|
|
27
|
+
* networks: [
|
|
28
|
+
* {
|
|
29
|
+
* name: "Private-Net",
|
|
30
|
+
* type: "private",
|
|
31
|
+
* family: "IPv4",
|
|
32
|
+
* network: resource.upcloud_network.lb_network.id,
|
|
33
|
+
* },
|
|
34
|
+
* {
|
|
35
|
+
* name: "Public-Net",
|
|
36
|
+
* type: "public",
|
|
37
|
+
* family: "IPv4",
|
|
38
|
+
* },
|
|
39
|
+
* ],
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare class Loadbalancer extends pulumi.CustomResource {
|
|
44
|
+
/**
|
|
45
|
+
* Get an existing Loadbalancer resource's state with the given name, ID, and optional extra
|
|
46
|
+
* properties used to qualify the lookup.
|
|
47
|
+
*
|
|
48
|
+
* @param name The _unique_ name of the resulting resource.
|
|
49
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
50
|
+
* @param state Any extra arguments used during the lookup.
|
|
51
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
52
|
+
*/
|
|
53
|
+
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: LoadbalancerState, opts?: pulumi.CustomResourceOptions): Loadbalancer;
|
|
54
|
+
/**
|
|
55
|
+
* Returns true if the given object is an instance of Loadbalancer. This is designed to work even
|
|
56
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
57
|
+
*/
|
|
58
|
+
static isInstance(obj: any): obj is Loadbalancer;
|
|
59
|
+
/**
|
|
60
|
+
* Backends are groups of customer servers whose traffic should be balanced.
|
|
61
|
+
*/
|
|
62
|
+
readonly backends: pulumi.Output<string[]>;
|
|
63
|
+
/**
|
|
64
|
+
* The service configured status indicates the service's current intended status. Managed by the customer.
|
|
65
|
+
*/
|
|
66
|
+
readonly configuredStatus: pulumi.Output<string>;
|
|
67
|
+
/**
|
|
68
|
+
* DNS name of the load balancer
|
|
69
|
+
*
|
|
70
|
+
* @deprecated Use 'networks' to get network DNS name
|
|
71
|
+
*/
|
|
72
|
+
readonly dnsName: pulumi.Output<string>;
|
|
73
|
+
/**
|
|
74
|
+
* Frontends receive the traffic before dispatching it to the backends.
|
|
75
|
+
*/
|
|
76
|
+
readonly frontends: pulumi.Output<string[]>;
|
|
77
|
+
/**
|
|
78
|
+
* User defined key-value pairs to classify the load balancer.
|
|
79
|
+
*/
|
|
80
|
+
readonly labels: pulumi.Output<{
|
|
81
|
+
[key: string]: string;
|
|
82
|
+
}>;
|
|
83
|
+
/**
|
|
84
|
+
* The day of the week on which maintenance will be performed. If not provided, we will randomly select a weekend day.
|
|
85
|
+
* Valid values `monday|tuesday|wednesday|thursday|friday|saturday|sunday`.
|
|
86
|
+
*/
|
|
87
|
+
readonly maintenanceDow: pulumi.Output<string>;
|
|
88
|
+
/**
|
|
89
|
+
* The time at which the maintenance will begin in UTC. A 2-hour timeframe has been allocated for maintenance. During this
|
|
90
|
+
* period, the multi-node production plans will not experience any downtime, while the one-node plans will have a downtime
|
|
91
|
+
* of 1-2 minutes. If not provided, we will randomly select an off-peak time. Needs to be a valid time format in UTC
|
|
92
|
+
* HH:MM:SSZ, for example `20:01:01Z`.
|
|
93
|
+
*/
|
|
94
|
+
readonly maintenanceTime: pulumi.Output<string>;
|
|
95
|
+
/**
|
|
96
|
+
* The name of the service. Must be unique within customer account.
|
|
97
|
+
*/
|
|
98
|
+
readonly name: pulumi.Output<string>;
|
|
99
|
+
/**
|
|
100
|
+
* Private network UUID where traffic will be routed. Must reside in load balancer zone.
|
|
101
|
+
*
|
|
102
|
+
* @deprecated Use 'networks' to define networks attached to load balancer
|
|
103
|
+
*/
|
|
104
|
+
readonly network: pulumi.Output<string>;
|
|
105
|
+
/**
|
|
106
|
+
* Attached Networks from where traffic consumed and routed. Private networks must reside in loadbalancer zone.
|
|
107
|
+
*/
|
|
108
|
+
readonly networks: pulumi.Output<outputs.LoadbalancerNetwork[] | undefined>;
|
|
109
|
+
/**
|
|
110
|
+
* Nodes are instances running load balancer service
|
|
111
|
+
*/
|
|
112
|
+
readonly nodes: pulumi.Output<outputs.LoadbalancerNode[]>;
|
|
113
|
+
/**
|
|
114
|
+
* The service operational state indicates the service's current operational, effective state. Managed by the system.
|
|
115
|
+
*/
|
|
116
|
+
readonly operationalState: pulumi.Output<string>;
|
|
117
|
+
/**
|
|
118
|
+
* Plan which the service will have. You can list available load balancer plans with `upctl loadbalancer plans`
|
|
119
|
+
*/
|
|
120
|
+
readonly plan: pulumi.Output<string>;
|
|
121
|
+
/**
|
|
122
|
+
* Domain Name Resolvers.
|
|
123
|
+
*/
|
|
124
|
+
readonly resolvers: pulumi.Output<string[]>;
|
|
125
|
+
/**
|
|
126
|
+
* Zone in which the service will be hosted, e.g. `fi-hel1`. You can list available zones with `upctl zone list`.
|
|
127
|
+
*/
|
|
128
|
+
readonly zone: pulumi.Output<string>;
|
|
129
|
+
/**
|
|
130
|
+
* Create a Loadbalancer resource with the given unique name, arguments, and options.
|
|
131
|
+
*
|
|
132
|
+
* @param name The _unique_ name of the resource.
|
|
133
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
134
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
135
|
+
*/
|
|
136
|
+
constructor(name: string, args: LoadbalancerArgs, opts?: pulumi.CustomResourceOptions);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Input properties used for looking up and filtering Loadbalancer resources.
|
|
140
|
+
*/
|
|
141
|
+
export interface LoadbalancerState {
|
|
142
|
+
/**
|
|
143
|
+
* Backends are groups of customer servers whose traffic should be balanced.
|
|
144
|
+
*/
|
|
145
|
+
backends?: pulumi.Input<pulumi.Input<string>[]>;
|
|
146
|
+
/**
|
|
147
|
+
* The service configured status indicates the service's current intended status. Managed by the customer.
|
|
148
|
+
*/
|
|
149
|
+
configuredStatus?: pulumi.Input<string>;
|
|
150
|
+
/**
|
|
151
|
+
* DNS name of the load balancer
|
|
152
|
+
*
|
|
153
|
+
* @deprecated Use 'networks' to get network DNS name
|
|
154
|
+
*/
|
|
155
|
+
dnsName?: pulumi.Input<string>;
|
|
156
|
+
/**
|
|
157
|
+
* Frontends receive the traffic before dispatching it to the backends.
|
|
158
|
+
*/
|
|
159
|
+
frontends?: pulumi.Input<pulumi.Input<string>[]>;
|
|
160
|
+
/**
|
|
161
|
+
* User defined key-value pairs to classify the load balancer.
|
|
162
|
+
*/
|
|
163
|
+
labels?: pulumi.Input<{
|
|
164
|
+
[key: string]: pulumi.Input<string>;
|
|
165
|
+
}>;
|
|
166
|
+
/**
|
|
167
|
+
* The day of the week on which maintenance will be performed. If not provided, we will randomly select a weekend day.
|
|
168
|
+
* Valid values `monday|tuesday|wednesday|thursday|friday|saturday|sunday`.
|
|
169
|
+
*/
|
|
170
|
+
maintenanceDow?: pulumi.Input<string>;
|
|
171
|
+
/**
|
|
172
|
+
* The time at which the maintenance will begin in UTC. A 2-hour timeframe has been allocated for maintenance. During this
|
|
173
|
+
* period, the multi-node production plans will not experience any downtime, while the one-node plans will have a downtime
|
|
174
|
+
* of 1-2 minutes. If not provided, we will randomly select an off-peak time. Needs to be a valid time format in UTC
|
|
175
|
+
* HH:MM:SSZ, for example `20:01:01Z`.
|
|
176
|
+
*/
|
|
177
|
+
maintenanceTime?: pulumi.Input<string>;
|
|
178
|
+
/**
|
|
179
|
+
* The name of the service. Must be unique within customer account.
|
|
180
|
+
*/
|
|
181
|
+
name?: pulumi.Input<string>;
|
|
182
|
+
/**
|
|
183
|
+
* Private network UUID where traffic will be routed. Must reside in load balancer zone.
|
|
184
|
+
*
|
|
185
|
+
* @deprecated Use 'networks' to define networks attached to load balancer
|
|
186
|
+
*/
|
|
187
|
+
network?: pulumi.Input<string>;
|
|
188
|
+
/**
|
|
189
|
+
* Attached Networks from where traffic consumed and routed. Private networks must reside in loadbalancer zone.
|
|
190
|
+
*/
|
|
191
|
+
networks?: pulumi.Input<pulumi.Input<inputs.LoadbalancerNetwork>[]>;
|
|
192
|
+
/**
|
|
193
|
+
* Nodes are instances running load balancer service
|
|
194
|
+
*/
|
|
195
|
+
nodes?: pulumi.Input<pulumi.Input<inputs.LoadbalancerNode>[]>;
|
|
196
|
+
/**
|
|
197
|
+
* The service operational state indicates the service's current operational, effective state. Managed by the system.
|
|
198
|
+
*/
|
|
199
|
+
operationalState?: pulumi.Input<string>;
|
|
200
|
+
/**
|
|
201
|
+
* Plan which the service will have. You can list available load balancer plans with `upctl loadbalancer plans`
|
|
202
|
+
*/
|
|
203
|
+
plan?: pulumi.Input<string>;
|
|
204
|
+
/**
|
|
205
|
+
* Domain Name Resolvers.
|
|
206
|
+
*/
|
|
207
|
+
resolvers?: pulumi.Input<pulumi.Input<string>[]>;
|
|
208
|
+
/**
|
|
209
|
+
* Zone in which the service will be hosted, e.g. `fi-hel1`. You can list available zones with `upctl zone list`.
|
|
210
|
+
*/
|
|
211
|
+
zone?: pulumi.Input<string>;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* The set of arguments for constructing a Loadbalancer resource.
|
|
215
|
+
*/
|
|
216
|
+
export interface LoadbalancerArgs {
|
|
217
|
+
/**
|
|
218
|
+
* The service configured status indicates the service's current intended status. Managed by the customer.
|
|
219
|
+
*/
|
|
220
|
+
configuredStatus?: pulumi.Input<string>;
|
|
221
|
+
/**
|
|
222
|
+
* User defined key-value pairs to classify the load balancer.
|
|
223
|
+
*/
|
|
224
|
+
labels?: pulumi.Input<{
|
|
225
|
+
[key: string]: pulumi.Input<string>;
|
|
226
|
+
}>;
|
|
227
|
+
/**
|
|
228
|
+
* The day of the week on which maintenance will be performed. If not provided, we will randomly select a weekend day.
|
|
229
|
+
* Valid values `monday|tuesday|wednesday|thursday|friday|saturday|sunday`.
|
|
230
|
+
*/
|
|
231
|
+
maintenanceDow?: pulumi.Input<string>;
|
|
232
|
+
/**
|
|
233
|
+
* The time at which the maintenance will begin in UTC. A 2-hour timeframe has been allocated for maintenance. During this
|
|
234
|
+
* period, the multi-node production plans will not experience any downtime, while the one-node plans will have a downtime
|
|
235
|
+
* of 1-2 minutes. If not provided, we will randomly select an off-peak time. Needs to be a valid time format in UTC
|
|
236
|
+
* HH:MM:SSZ, for example `20:01:01Z`.
|
|
237
|
+
*/
|
|
238
|
+
maintenanceTime?: pulumi.Input<string>;
|
|
239
|
+
/**
|
|
240
|
+
* The name of the service. Must be unique within customer account.
|
|
241
|
+
*/
|
|
242
|
+
name?: pulumi.Input<string>;
|
|
243
|
+
/**
|
|
244
|
+
* Private network UUID where traffic will be routed. Must reside in load balancer zone.
|
|
245
|
+
*
|
|
246
|
+
* @deprecated Use 'networks' to define networks attached to load balancer
|
|
247
|
+
*/
|
|
248
|
+
network?: pulumi.Input<string>;
|
|
249
|
+
/**
|
|
250
|
+
* Attached Networks from where traffic consumed and routed. Private networks must reside in loadbalancer zone.
|
|
251
|
+
*/
|
|
252
|
+
networks?: pulumi.Input<pulumi.Input<inputs.LoadbalancerNetwork>[]>;
|
|
253
|
+
/**
|
|
254
|
+
* Plan which the service will have. You can list available load balancer plans with `upctl loadbalancer plans`
|
|
255
|
+
*/
|
|
256
|
+
plan: pulumi.Input<string>;
|
|
257
|
+
/**
|
|
258
|
+
* Zone in which the service will be hosted, e.g. `fi-hel1`. You can list available zones with `upctl zone list`.
|
|
259
|
+
*/
|
|
260
|
+
zone: pulumi.Input<string>;
|
|
261
|
+
}
|
package/loadbalancer.js
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
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.Loadbalancer = void 0;
|
|
6
|
+
const pulumi = require("@pulumi/pulumi");
|
|
7
|
+
const utilities = require("./utilities");
|
|
8
|
+
/**
|
|
9
|
+
* This resource represents [Managed Load Balancer](https://upcloud.com/products/managed-load-balancer) 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 lb = new upcloud.Loadbalancer("lb", {
|
|
28
|
+
* configuredStatus: "started",
|
|
29
|
+
* plan: "development",
|
|
30
|
+
* zone: lbZone,
|
|
31
|
+
* networks: [
|
|
32
|
+
* {
|
|
33
|
+
* name: "Private-Net",
|
|
34
|
+
* type: "private",
|
|
35
|
+
* family: "IPv4",
|
|
36
|
+
* network: resource.upcloud_network.lb_network.id,
|
|
37
|
+
* },
|
|
38
|
+
* {
|
|
39
|
+
* name: "Public-Net",
|
|
40
|
+
* type: "public",
|
|
41
|
+
* family: "IPv4",
|
|
42
|
+
* },
|
|
43
|
+
* ],
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
class Loadbalancer extends pulumi.CustomResource {
|
|
48
|
+
/**
|
|
49
|
+
* Get an existing Loadbalancer resource's state with the given name, ID, and optional extra
|
|
50
|
+
* properties used to qualify the lookup.
|
|
51
|
+
*
|
|
52
|
+
* @param name The _unique_ name of the resulting resource.
|
|
53
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
54
|
+
* @param state Any extra arguments used during the lookup.
|
|
55
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
56
|
+
*/
|
|
57
|
+
static get(name, id, state, opts) {
|
|
58
|
+
return new Loadbalancer(name, state, Object.assign(Object.assign({}, opts), { id: id }));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Returns true if the given object is an instance of Loadbalancer. This is designed to work even
|
|
62
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
63
|
+
*/
|
|
64
|
+
static isInstance(obj) {
|
|
65
|
+
if (obj === undefined || obj === null) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return obj['__pulumiType'] === Loadbalancer.__pulumiType;
|
|
69
|
+
}
|
|
70
|
+
constructor(name, argsOrState, opts) {
|
|
71
|
+
let resourceInputs = {};
|
|
72
|
+
opts = opts || {};
|
|
73
|
+
if (opts.id) {
|
|
74
|
+
const state = argsOrState;
|
|
75
|
+
resourceInputs["backends"] = state ? state.backends : undefined;
|
|
76
|
+
resourceInputs["configuredStatus"] = state ? state.configuredStatus : undefined;
|
|
77
|
+
resourceInputs["dnsName"] = state ? state.dnsName : undefined;
|
|
78
|
+
resourceInputs["frontends"] = state ? state.frontends : undefined;
|
|
79
|
+
resourceInputs["labels"] = state ? state.labels : undefined;
|
|
80
|
+
resourceInputs["maintenanceDow"] = state ? state.maintenanceDow : undefined;
|
|
81
|
+
resourceInputs["maintenanceTime"] = state ? state.maintenanceTime : undefined;
|
|
82
|
+
resourceInputs["name"] = state ? state.name : undefined;
|
|
83
|
+
resourceInputs["network"] = state ? state.network : undefined;
|
|
84
|
+
resourceInputs["networks"] = state ? state.networks : undefined;
|
|
85
|
+
resourceInputs["nodes"] = state ? state.nodes : undefined;
|
|
86
|
+
resourceInputs["operationalState"] = state ? state.operationalState : undefined;
|
|
87
|
+
resourceInputs["plan"] = state ? state.plan : undefined;
|
|
88
|
+
resourceInputs["resolvers"] = state ? state.resolvers : undefined;
|
|
89
|
+
resourceInputs["zone"] = state ? state.zone : undefined;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
const args = argsOrState;
|
|
93
|
+
if ((!args || args.plan === undefined) && !opts.urn) {
|
|
94
|
+
throw new Error("Missing required property 'plan'");
|
|
95
|
+
}
|
|
96
|
+
if ((!args || args.zone === undefined) && !opts.urn) {
|
|
97
|
+
throw new Error("Missing required property 'zone'");
|
|
98
|
+
}
|
|
99
|
+
resourceInputs["configuredStatus"] = args ? args.configuredStatus : undefined;
|
|
100
|
+
resourceInputs["labels"] = args ? args.labels : undefined;
|
|
101
|
+
resourceInputs["maintenanceDow"] = args ? args.maintenanceDow : undefined;
|
|
102
|
+
resourceInputs["maintenanceTime"] = args ? args.maintenanceTime : undefined;
|
|
103
|
+
resourceInputs["name"] = args ? args.name : undefined;
|
|
104
|
+
resourceInputs["network"] = args ? args.network : undefined;
|
|
105
|
+
resourceInputs["networks"] = args ? args.networks : undefined;
|
|
106
|
+
resourceInputs["plan"] = args ? args.plan : undefined;
|
|
107
|
+
resourceInputs["zone"] = args ? args.zone : undefined;
|
|
108
|
+
resourceInputs["backends"] = undefined /*out*/;
|
|
109
|
+
resourceInputs["dnsName"] = undefined /*out*/;
|
|
110
|
+
resourceInputs["frontends"] = undefined /*out*/;
|
|
111
|
+
resourceInputs["nodes"] = undefined /*out*/;
|
|
112
|
+
resourceInputs["operationalState"] = undefined /*out*/;
|
|
113
|
+
resourceInputs["resolvers"] = undefined /*out*/;
|
|
114
|
+
}
|
|
115
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
116
|
+
super(Loadbalancer.__pulumiType, name, resourceInputs, opts);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.Loadbalancer = Loadbalancer;
|
|
120
|
+
/** @internal */
|
|
121
|
+
Loadbalancer.__pulumiType = 'upcloud:index/loadbalancer:Loadbalancer';
|
|
122
|
+
//# sourceMappingURL=loadbalancer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadbalancer.js","sourceRoot":"","sources":["../loadbalancer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
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 backend 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 lb = new upcloud.Loadbalancer("lb", {
|
|
24
|
+
* configuredStatus: "started",
|
|
25
|
+
* plan: "development",
|
|
26
|
+
* zone: lbZone,
|
|
27
|
+
* network: resource.upcloud_network.lb_network.id,
|
|
28
|
+
* });
|
|
29
|
+
* const lbBe1 = new upcloud.LoadbalancerBackend("lbBe1", {loadbalancer: resource.upcloud_loadbalancer.lb.id});
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare class LoadbalancerBackend extends pulumi.CustomResource {
|
|
33
|
+
/**
|
|
34
|
+
* Get an existing LoadbalancerBackend resource's state with the given name, ID, and optional extra
|
|
35
|
+
* properties used to qualify the lookup.
|
|
36
|
+
*
|
|
37
|
+
* @param name The _unique_ name of the resulting resource.
|
|
38
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
39
|
+
* @param state Any extra arguments used during the lookup.
|
|
40
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
41
|
+
*/
|
|
42
|
+
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: LoadbalancerBackendState, opts?: pulumi.CustomResourceOptions): LoadbalancerBackend;
|
|
43
|
+
/**
|
|
44
|
+
* Returns true if the given object is an instance of LoadbalancerBackend. This is designed to work even
|
|
45
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
46
|
+
*/
|
|
47
|
+
static isInstance(obj: any): obj is LoadbalancerBackend;
|
|
48
|
+
/**
|
|
49
|
+
* UUID of the load balancer to which the backend is connected.
|
|
50
|
+
*/
|
|
51
|
+
readonly loadbalancer: pulumi.Output<string>;
|
|
52
|
+
/**
|
|
53
|
+
* Backend member server UUIDs. Members receive traffic dispatched from the frontends.
|
|
54
|
+
*/
|
|
55
|
+
readonly members: pulumi.Output<string[]>;
|
|
56
|
+
/**
|
|
57
|
+
* The name of the backend. Must be unique within the load balancer service.
|
|
58
|
+
*/
|
|
59
|
+
readonly name: pulumi.Output<string>;
|
|
60
|
+
readonly properties: pulumi.Output<outputs.LoadbalancerBackendProperties | undefined>;
|
|
61
|
+
/**
|
|
62
|
+
* Domain name resolver used with dynamic type members.
|
|
63
|
+
*/
|
|
64
|
+
readonly resolverName: pulumi.Output<string>;
|
|
65
|
+
/**
|
|
66
|
+
* Set of TLS config names.
|
|
67
|
+
*/
|
|
68
|
+
readonly tlsConfigs: pulumi.Output<string[]>;
|
|
69
|
+
/**
|
|
70
|
+
* Create a LoadbalancerBackend resource with the given unique name, arguments, and options.
|
|
71
|
+
*
|
|
72
|
+
* @param name The _unique_ name of the resource.
|
|
73
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
74
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
75
|
+
*/
|
|
76
|
+
constructor(name: string, args: LoadbalancerBackendArgs, opts?: pulumi.CustomResourceOptions);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Input properties used for looking up and filtering LoadbalancerBackend resources.
|
|
80
|
+
*/
|
|
81
|
+
export interface LoadbalancerBackendState {
|
|
82
|
+
/**
|
|
83
|
+
* UUID of the load balancer to which the backend is connected.
|
|
84
|
+
*/
|
|
85
|
+
loadbalancer?: pulumi.Input<string>;
|
|
86
|
+
/**
|
|
87
|
+
* Backend member server UUIDs. Members receive traffic dispatched from the frontends.
|
|
88
|
+
*/
|
|
89
|
+
members?: pulumi.Input<pulumi.Input<string>[]>;
|
|
90
|
+
/**
|
|
91
|
+
* The name of the backend. Must be unique within the load balancer service.
|
|
92
|
+
*/
|
|
93
|
+
name?: pulumi.Input<string>;
|
|
94
|
+
properties?: pulumi.Input<inputs.LoadbalancerBackendProperties>;
|
|
95
|
+
/**
|
|
96
|
+
* Domain name resolver used with dynamic type members.
|
|
97
|
+
*/
|
|
98
|
+
resolverName?: pulumi.Input<string>;
|
|
99
|
+
/**
|
|
100
|
+
* Set of TLS config names.
|
|
101
|
+
*/
|
|
102
|
+
tlsConfigs?: pulumi.Input<pulumi.Input<string>[]>;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* The set of arguments for constructing a LoadbalancerBackend resource.
|
|
106
|
+
*/
|
|
107
|
+
export interface LoadbalancerBackendArgs {
|
|
108
|
+
/**
|
|
109
|
+
* UUID of the load balancer to which the backend is connected.
|
|
110
|
+
*/
|
|
111
|
+
loadbalancer: pulumi.Input<string>;
|
|
112
|
+
/**
|
|
113
|
+
* The name of the backend. Must be unique within the load balancer service.
|
|
114
|
+
*/
|
|
115
|
+
name?: pulumi.Input<string>;
|
|
116
|
+
properties?: pulumi.Input<inputs.LoadbalancerBackendProperties>;
|
|
117
|
+
/**
|
|
118
|
+
* Domain name resolver used with dynamic type members.
|
|
119
|
+
*/
|
|
120
|
+
resolverName?: pulumi.Input<string>;
|
|
121
|
+
}
|