@pulumiverse/scaleway 1.30.0 → 1.31.0

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 (71) hide show
  1. package/appleSiliconServer.d.ts +12 -0
  2. package/appleSiliconServer.js +2 -0
  3. package/appleSiliconServer.js.map +1 -1
  4. package/applesilicon/server.d.ts +12 -0
  5. package/applesilicon/server.js +2 -0
  6. package/applesilicon/server.js.map +1 -1
  7. package/autoscaling/index.d.ts +9 -0
  8. package/autoscaling/index.js +32 -0
  9. package/autoscaling/index.js.map +1 -0
  10. package/autoscaling/instanceGroup.d.ts +297 -0
  11. package/autoscaling/instanceGroup.js +217 -0
  12. package/autoscaling/instanceGroup.js.map +1 -0
  13. package/autoscaling/instancePolicy.d.ts +201 -0
  14. package/autoscaling/instancePolicy.js +135 -0
  15. package/autoscaling/instancePolicy.js.map +1 -0
  16. package/autoscaling/instanceTemplate.d.ts +260 -0
  17. package/autoscaling/instanceTemplate.js +124 -0
  18. package/autoscaling/instanceTemplate.js.map +1 -0
  19. package/edgeServicesCacheStage.d.ts +12 -0
  20. package/edgeServicesCacheStage.js +2 -0
  21. package/edgeServicesCacheStage.js.map +1 -1
  22. package/getCockpitSource.d.ts +45 -6
  23. package/getCockpitSource.js +32 -0
  24. package/getCockpitSource.js.map +1 -1
  25. package/getKubernetesNodePool.d.ts +1 -0
  26. package/getKubernetesNodePool.js.map +1 -1
  27. package/getVpc.d.ts +1 -0
  28. package/getVpc.js.map +1 -1
  29. package/getVpcPrivateNetwork.d.ts +1 -0
  30. package/getVpcPrivateNetwork.js.map +1 -1
  31. package/index.d.ts +2 -1
  32. package/index.js +4 -2
  33. package/index.js.map +1 -1
  34. package/kubernetes/getPool.d.ts +1 -0
  35. package/kubernetes/getPool.js.map +1 -1
  36. package/kubernetes/pool.d.ts +18 -0
  37. package/kubernetes/pool.js +2 -0
  38. package/kubernetes/pool.js.map +1 -1
  39. package/kubernetesNodePool.d.ts +18 -0
  40. package/kubernetesNodePool.js +2 -0
  41. package/kubernetesNodePool.js.map +1 -1
  42. package/loadbalancerAcl.d.ts +3 -3
  43. package/loadbalancers/acl.d.ts +3 -3
  44. package/network/getPrivateNetwork.d.ts +1 -0
  45. package/network/getPrivateNetwork.js.map +1 -1
  46. package/network/getVpc.d.ts +1 -0
  47. package/network/getVpc.js.map +1 -1
  48. package/network/privateNetwork.d.ts +12 -0
  49. package/network/privateNetwork.js +2 -0
  50. package/network/privateNetwork.js.map +1 -1
  51. package/network/vpc.d.ts +12 -0
  52. package/network/vpc.js +2 -0
  53. package/network/vpc.js.map +1 -1
  54. package/object/bucketAcl.d.ts +3 -2
  55. package/object/bucketAcl.js +3 -2
  56. package/object/bucketAcl.js.map +1 -1
  57. package/objectBucketAcl.d.ts +3 -2
  58. package/objectBucketAcl.js +3 -2
  59. package/objectBucketAcl.js.map +1 -1
  60. package/observability/getSource.d.ts +45 -6
  61. package/observability/getSource.js +32 -0
  62. package/observability/getSource.js.map +1 -1
  63. package/package.json +2 -2
  64. package/types/input.d.ts +142 -12
  65. package/types/output.d.ts +158 -12
  66. package/vpc.d.ts +12 -0
  67. package/vpc.js +2 -0
  68. package/vpc.js.map +1 -1
  69. package/vpcPrivateNetwork.d.ts +12 -0
  70. package/vpcPrivateNetwork.js +2 -0
  71. package/vpcPrivateNetwork.js.map +1 -1
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
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.InstanceGroup = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ /**
9
+ * Books and manages Autoscaling Instance groups.
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ### Basic
14
+ *
15
+ * ```typescript
16
+ * import * as pulumi from "@pulumi/pulumi";
17
+ * import * as scaleway from "@pulumiverse/scaleway";
18
+ *
19
+ * const main = new scaleway.autoscaling.InstanceGroup("main", {
20
+ * name: "asg-group",
21
+ * templateId: mainScalewayAutoscalingInstanceTemplate.id,
22
+ * tags: [
23
+ * "terraform-test",
24
+ * "instance-group",
25
+ * ],
26
+ * capacities: [{
27
+ * maxReplicas: 5,
28
+ * minReplicas: 1,
29
+ * cooldownDelay: 300,
30
+ * }],
31
+ * loadBalancers: [{
32
+ * id: mainScalewayLb.id,
33
+ * backendIds: [mainScalewayLbBackend.id],
34
+ * privateNetworkId: mainScalewayVpcPrivateNetwork.id,
35
+ * }],
36
+ * });
37
+ * ```
38
+ *
39
+ * ### With template and policies
40
+ *
41
+ * ```typescript
42
+ * import * as pulumi from "@pulumi/pulumi";
43
+ * import * as scaleway from "@pulumiverse/scaleway";
44
+ *
45
+ * const main = new scaleway.network.Vpc("main", {name: "TestAccAutoscalingVPC"});
46
+ * const mainPrivateNetwork = new scaleway.network.PrivateNetwork("main", {
47
+ * name: "TestAccAutoscalingVPC",
48
+ * vpcId: main.id,
49
+ * });
50
+ * const mainVolume = new scaleway.block.Volume("main", {
51
+ * iops: 5000,
52
+ * sizeInGb: 10,
53
+ * });
54
+ * const mainSnapshot = new scaleway.block.Snapshot("main", {
55
+ * name: "test-ds-block-snapshot-basic",
56
+ * volumeId: mainVolume.id,
57
+ * });
58
+ * const mainIp = new scaleway.loadbalancers.Ip("main", {});
59
+ * const mainLoadBalancer = new scaleway.loadbalancers.LoadBalancer("main", {
60
+ * ipId: mainIp.id,
61
+ * name: "test-lb",
62
+ * type: "lb-s",
63
+ * privateNetworks: [{
64
+ * privateNetworkId: mainPrivateNetwork.id,
65
+ * }],
66
+ * });
67
+ * const mainBackend = new scaleway.loadbalancers.Backend("main", {
68
+ * lbId: mainLoadBalancer.id,
69
+ * forwardProtocol: "tcp",
70
+ * forwardPort: 80,
71
+ * proxyProtocol: "none",
72
+ * });
73
+ * const mainInstanceTemplate = new scaleway.autoscaling.InstanceTemplate("main", {
74
+ * name: "autoscaling-instance-template-basic",
75
+ * commercialType: "PLAY2-MICRO",
76
+ * tags: [
77
+ * "terraform-test",
78
+ * "basic",
79
+ * ],
80
+ * volumes: [{
81
+ * name: "as-volume",
82
+ * volumeType: "sbs",
83
+ * boot: true,
84
+ * fromSnapshot: {
85
+ * snapshotId: mainSnapshot.id,
86
+ * },
87
+ * perfIops: 5000,
88
+ * }],
89
+ * publicIpsV4Count: 1,
90
+ * privateNetworkIds: [mainPrivateNetwork.id],
91
+ * });
92
+ * const mainInstanceGroup = new scaleway.autoscaling.InstanceGroup("main", {
93
+ * name: "autoscaling-instance-group-basic",
94
+ * templateId: mainInstanceTemplate.id,
95
+ * tags: [
96
+ * "terraform-test",
97
+ * "instance-group",
98
+ * ],
99
+ * capacities: [{
100
+ * maxReplicas: 5,
101
+ * minReplicas: 1,
102
+ * cooldownDelay: 300,
103
+ * }],
104
+ * loadBalancers: [{
105
+ * id: mainLoadBalancer.id,
106
+ * backendIds: [mainBackend.id],
107
+ * privateNetworkId: mainPrivateNetwork.id,
108
+ * }],
109
+ * deleteServersOnDestroy: true,
110
+ * });
111
+ * const up = new scaleway.autoscaling.InstancePolicy("up", {
112
+ * instanceGroupId: mainInstanceGroup.id,
113
+ * name: "scale-up-if-cpu-high",
114
+ * action: "scale_up",
115
+ * type: "flat_count",
116
+ * value: 1,
117
+ * priority: 1,
118
+ * metrics: [{
119
+ * name: "cpu scale up",
120
+ * managedMetric: "managed_metric_instance_cpu",
121
+ * operator: "operator_greater_than",
122
+ * aggregate: "aggregate_average",
123
+ * samplingRangeMin: 5,
124
+ * threshold: 70,
125
+ * }],
126
+ * });
127
+ * const down = new scaleway.autoscaling.InstancePolicy("down", {
128
+ * instanceGroupId: mainInstanceGroup.id,
129
+ * name: "scale-down-if-cpu-low",
130
+ * action: "scale_down",
131
+ * type: "flat_count",
132
+ * value: 1,
133
+ * priority: 2,
134
+ * metrics: [{
135
+ * name: "cpu scale down",
136
+ * managedMetric: "managed_metric_instance_cpu",
137
+ * operator: "operator_less_than",
138
+ * aggregate: "aggregate_average",
139
+ * samplingRangeMin: 5,
140
+ * threshold: 40,
141
+ * }],
142
+ * });
143
+ * ```
144
+ *
145
+ * ## Import
146
+ *
147
+ * Autoscaling Instance groups can be imported using `{zone}/{id}`, e.g.
148
+ *
149
+ * bash
150
+ *
151
+ * ```sh
152
+ * $ pulumi import scaleway:autoscaling/instanceGroup:InstanceGroup main fr-par-1/11111111-1111-1111-1111-111111111111
153
+ * ```
154
+ */
155
+ class InstanceGroup extends pulumi.CustomResource {
156
+ /**
157
+ * Get an existing InstanceGroup resource's state with the given name, ID, and optional extra
158
+ * properties used to qualify the lookup.
159
+ *
160
+ * @param name The _unique_ name of the resulting resource.
161
+ * @param id The _unique_ provider ID of the resource to lookup.
162
+ * @param state Any extra arguments used during the lookup.
163
+ * @param opts Optional settings to control the behavior of the CustomResource.
164
+ */
165
+ static get(name, id, state, opts) {
166
+ return new InstanceGroup(name, state, Object.assign(Object.assign({}, opts), { id: id }));
167
+ }
168
+ /**
169
+ * Returns true if the given object is an instance of InstanceGroup. This is designed to work even
170
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
171
+ */
172
+ static isInstance(obj) {
173
+ if (obj === undefined || obj === null) {
174
+ return false;
175
+ }
176
+ return obj['__pulumiType'] === InstanceGroup.__pulumiType;
177
+ }
178
+ constructor(name, argsOrState, opts) {
179
+ let resourceInputs = {};
180
+ opts = opts || {};
181
+ if (opts.id) {
182
+ const state = argsOrState;
183
+ resourceInputs["capacities"] = state ? state.capacities : undefined;
184
+ resourceInputs["createdAt"] = state ? state.createdAt : undefined;
185
+ resourceInputs["deleteServersOnDestroy"] = state ? state.deleteServersOnDestroy : undefined;
186
+ resourceInputs["loadBalancers"] = state ? state.loadBalancers : undefined;
187
+ resourceInputs["name"] = state ? state.name : undefined;
188
+ resourceInputs["projectId"] = state ? state.projectId : undefined;
189
+ resourceInputs["tags"] = state ? state.tags : undefined;
190
+ resourceInputs["templateId"] = state ? state.templateId : undefined;
191
+ resourceInputs["updatedAt"] = state ? state.updatedAt : undefined;
192
+ resourceInputs["zone"] = state ? state.zone : undefined;
193
+ }
194
+ else {
195
+ const args = argsOrState;
196
+ if ((!args || args.templateId === undefined) && !opts.urn) {
197
+ throw new Error("Missing required property 'templateId'");
198
+ }
199
+ resourceInputs["capacities"] = args ? args.capacities : undefined;
200
+ resourceInputs["deleteServersOnDestroy"] = args ? args.deleteServersOnDestroy : undefined;
201
+ resourceInputs["loadBalancers"] = args ? args.loadBalancers : undefined;
202
+ resourceInputs["name"] = args ? args.name : undefined;
203
+ resourceInputs["projectId"] = args ? args.projectId : undefined;
204
+ resourceInputs["tags"] = args ? args.tags : undefined;
205
+ resourceInputs["templateId"] = args ? args.templateId : undefined;
206
+ resourceInputs["zone"] = args ? args.zone : undefined;
207
+ resourceInputs["createdAt"] = undefined /*out*/;
208
+ resourceInputs["updatedAt"] = undefined /*out*/;
209
+ }
210
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
211
+ super(InstanceGroup.__pulumiType, name, resourceInputs, opts);
212
+ }
213
+ }
214
+ exports.InstanceGroup = InstanceGroup;
215
+ /** @internal */
216
+ InstanceGroup.__pulumiType = 'scaleway:autoscaling/instanceGroup:InstanceGroup';
217
+ //# sourceMappingURL=instanceGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanceGroup.js","sourceRoot":"","sources":["../../autoscaling/instanceGroup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,201 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "../types/input";
3
+ import * as outputs from "../types/output";
4
+ /**
5
+ * Books and manages Autoscaling Instance policies.
6
+ *
7
+ * ## Example Usage
8
+ *
9
+ * ### Basic
10
+ *
11
+ * ```typescript
12
+ * import * as pulumi from "@pulumi/pulumi";
13
+ * import * as scaleway from "@pulumiverse/scaleway";
14
+ *
15
+ * const up = new scaleway.autoscaling.InstancePolicy("up", {
16
+ * instanceGroupId: main.id,
17
+ * name: "scale-up-if-cpu-high",
18
+ * action: "scale_up",
19
+ * type: "flat_count",
20
+ * value: 1,
21
+ * priority: 1,
22
+ * metrics: [{
23
+ * name: "cpu scale up",
24
+ * managedMetric: "managed_metric_instance_cpu",
25
+ * operator: "operator_greater_than",
26
+ * aggregate: "aggregate_average",
27
+ * samplingRangeMin: 5,
28
+ * threshold: 70,
29
+ * }],
30
+ * });
31
+ * const down = new scaleway.autoscaling.InstancePolicy("down", {
32
+ * instanceGroupId: main.id,
33
+ * name: "scale-down-if-cpu-low",
34
+ * action: "scale_down",
35
+ * type: "flat_count",
36
+ * value: 1,
37
+ * priority: 2,
38
+ * metrics: [{
39
+ * name: "cpu scale down",
40
+ * managedMetric: "managed_metric_instance_cpu",
41
+ * operator: "operator_less_than",
42
+ * aggregate: "aggregate_average",
43
+ * samplingRangeMin: 5,
44
+ * threshold: 40,
45
+ * }],
46
+ * });
47
+ * ```
48
+ *
49
+ * ## Import
50
+ *
51
+ * Autoscaling instance policies can be imported using `{zone}/{id}`, e.g.
52
+ *
53
+ * bash
54
+ *
55
+ * ```sh
56
+ * $ pulumi import scaleway:autoscaling/instancePolicy:InstancePolicy main fr-par-1/11111111-1111-1111-1111-111111111111
57
+ * ```
58
+ */
59
+ export declare class InstancePolicy extends pulumi.CustomResource {
60
+ /**
61
+ * Get an existing InstancePolicy resource's state with the given name, ID, and optional extra
62
+ * properties used to qualify the lookup.
63
+ *
64
+ * @param name The _unique_ name of the resulting resource.
65
+ * @param id The _unique_ provider ID of the resource to lookup.
66
+ * @param state Any extra arguments used during the lookup.
67
+ * @param opts Optional settings to control the behavior of the CustomResource.
68
+ */
69
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: InstancePolicyState, opts?: pulumi.CustomResourceOptions): InstancePolicy;
70
+ /**
71
+ * Returns true if the given object is an instance of InstancePolicy. 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: any): obj is InstancePolicy;
75
+ /**
76
+ * The action to execute when the metric-based condition is met.
77
+ */
78
+ readonly action: pulumi.Output<string>;
79
+ /**
80
+ * The ID of the Instance group related to this policy.
81
+ */
82
+ readonly instanceGroupId: pulumi.Output<string>;
83
+ /**
84
+ * Cockpit metric to use when determining whether to trigger a scale up/down action.
85
+ */
86
+ readonly metrics: pulumi.Output<outputs.autoscaling.InstancePolicyMetric[]>;
87
+ /**
88
+ * The Instance policy name.
89
+ */
90
+ readonly name: pulumi.Output<string>;
91
+ /**
92
+ * The priority of this policy compared to all other scaling policies. This determines the processing order. The lower the number, the higher the priority.
93
+ */
94
+ readonly priority: pulumi.Output<number>;
95
+ /**
96
+ * `projectId`) The ID of the Project the Instance policy is associated with.
97
+ */
98
+ readonly projectId: pulumi.Output<string>;
99
+ /**
100
+ * How to use the number defined in `value` when determining by how many Instances to scale up/down.
101
+ */
102
+ readonly type: pulumi.Output<string>;
103
+ /**
104
+ * The value representing the magnitude of the scaling action to take for the Instance group. Depending on the `type` parameter, this number could represent a total number of Instances in the group, a number of Instances to add, or a percentage to scale the group by.
105
+ */
106
+ readonly value: pulumi.Output<number>;
107
+ /**
108
+ * `zone`) The zone in which the Instance policy exists.
109
+ */
110
+ readonly zone: pulumi.Output<string>;
111
+ /**
112
+ * Create a InstancePolicy resource with the given unique name, arguments, and options.
113
+ *
114
+ * @param name The _unique_ name of the resource.
115
+ * @param args The arguments to use to populate this resource's properties.
116
+ * @param opts A bag of options that control this resource's behavior.
117
+ */
118
+ constructor(name: string, args: InstancePolicyArgs, opts?: pulumi.CustomResourceOptions);
119
+ }
120
+ /**
121
+ * Input properties used for looking up and filtering InstancePolicy resources.
122
+ */
123
+ export interface InstancePolicyState {
124
+ /**
125
+ * The action to execute when the metric-based condition is met.
126
+ */
127
+ action?: pulumi.Input<string>;
128
+ /**
129
+ * The ID of the Instance group related to this policy.
130
+ */
131
+ instanceGroupId?: pulumi.Input<string>;
132
+ /**
133
+ * Cockpit metric to use when determining whether to trigger a scale up/down action.
134
+ */
135
+ metrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.InstancePolicyMetric>[]>;
136
+ /**
137
+ * The Instance policy name.
138
+ */
139
+ name?: pulumi.Input<string>;
140
+ /**
141
+ * The priority of this policy compared to all other scaling policies. This determines the processing order. The lower the number, the higher the priority.
142
+ */
143
+ priority?: pulumi.Input<number>;
144
+ /**
145
+ * `projectId`) The ID of the Project the Instance policy is associated with.
146
+ */
147
+ projectId?: pulumi.Input<string>;
148
+ /**
149
+ * How to use the number defined in `value` when determining by how many Instances to scale up/down.
150
+ */
151
+ type?: pulumi.Input<string>;
152
+ /**
153
+ * The value representing the magnitude of the scaling action to take for the Instance group. Depending on the `type` parameter, this number could represent a total number of Instances in the group, a number of Instances to add, or a percentage to scale the group by.
154
+ */
155
+ value?: pulumi.Input<number>;
156
+ /**
157
+ * `zone`) The zone in which the Instance policy exists.
158
+ */
159
+ zone?: pulumi.Input<string>;
160
+ }
161
+ /**
162
+ * The set of arguments for constructing a InstancePolicy resource.
163
+ */
164
+ export interface InstancePolicyArgs {
165
+ /**
166
+ * The action to execute when the metric-based condition is met.
167
+ */
168
+ action: pulumi.Input<string>;
169
+ /**
170
+ * The ID of the Instance group related to this policy.
171
+ */
172
+ instanceGroupId: pulumi.Input<string>;
173
+ /**
174
+ * Cockpit metric to use when determining whether to trigger a scale up/down action.
175
+ */
176
+ metrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.InstancePolicyMetric>[]>;
177
+ /**
178
+ * The Instance policy name.
179
+ */
180
+ name?: pulumi.Input<string>;
181
+ /**
182
+ * The priority of this policy compared to all other scaling policies. This determines the processing order. The lower the number, the higher the priority.
183
+ */
184
+ priority: pulumi.Input<number>;
185
+ /**
186
+ * `projectId`) The ID of the Project the Instance policy is associated with.
187
+ */
188
+ projectId?: pulumi.Input<string>;
189
+ /**
190
+ * How to use the number defined in `value` when determining by how many Instances to scale up/down.
191
+ */
192
+ type: pulumi.Input<string>;
193
+ /**
194
+ * The value representing the magnitude of the scaling action to take for the Instance group. Depending on the `type` parameter, this number could represent a total number of Instances in the group, a number of Instances to add, or a percentage to scale the group by.
195
+ */
196
+ value: pulumi.Input<number>;
197
+ /**
198
+ * `zone`) The zone in which the Instance policy exists.
199
+ */
200
+ zone?: pulumi.Input<string>;
201
+ }
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
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.InstancePolicy = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ /**
9
+ * Books and manages Autoscaling Instance policies.
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ### Basic
14
+ *
15
+ * ```typescript
16
+ * import * as pulumi from "@pulumi/pulumi";
17
+ * import * as scaleway from "@pulumiverse/scaleway";
18
+ *
19
+ * const up = new scaleway.autoscaling.InstancePolicy("up", {
20
+ * instanceGroupId: main.id,
21
+ * name: "scale-up-if-cpu-high",
22
+ * action: "scale_up",
23
+ * type: "flat_count",
24
+ * value: 1,
25
+ * priority: 1,
26
+ * metrics: [{
27
+ * name: "cpu scale up",
28
+ * managedMetric: "managed_metric_instance_cpu",
29
+ * operator: "operator_greater_than",
30
+ * aggregate: "aggregate_average",
31
+ * samplingRangeMin: 5,
32
+ * threshold: 70,
33
+ * }],
34
+ * });
35
+ * const down = new scaleway.autoscaling.InstancePolicy("down", {
36
+ * instanceGroupId: main.id,
37
+ * name: "scale-down-if-cpu-low",
38
+ * action: "scale_down",
39
+ * type: "flat_count",
40
+ * value: 1,
41
+ * priority: 2,
42
+ * metrics: [{
43
+ * name: "cpu scale down",
44
+ * managedMetric: "managed_metric_instance_cpu",
45
+ * operator: "operator_less_than",
46
+ * aggregate: "aggregate_average",
47
+ * samplingRangeMin: 5,
48
+ * threshold: 40,
49
+ * }],
50
+ * });
51
+ * ```
52
+ *
53
+ * ## Import
54
+ *
55
+ * Autoscaling instance policies can be imported using `{zone}/{id}`, e.g.
56
+ *
57
+ * bash
58
+ *
59
+ * ```sh
60
+ * $ pulumi import scaleway:autoscaling/instancePolicy:InstancePolicy main fr-par-1/11111111-1111-1111-1111-111111111111
61
+ * ```
62
+ */
63
+ class InstancePolicy extends pulumi.CustomResource {
64
+ /**
65
+ * Get an existing InstancePolicy resource's state with the given name, ID, and optional extra
66
+ * properties used to qualify the lookup.
67
+ *
68
+ * @param name The _unique_ name of the resulting resource.
69
+ * @param id The _unique_ provider ID of the resource to lookup.
70
+ * @param state Any extra arguments used during the lookup.
71
+ * @param opts Optional settings to control the behavior of the CustomResource.
72
+ */
73
+ static get(name, id, state, opts) {
74
+ return new InstancePolicy(name, state, Object.assign(Object.assign({}, opts), { id: id }));
75
+ }
76
+ /**
77
+ * Returns true if the given object is an instance of InstancePolicy. This is designed to work even
78
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
79
+ */
80
+ static isInstance(obj) {
81
+ if (obj === undefined || obj === null) {
82
+ return false;
83
+ }
84
+ return obj['__pulumiType'] === InstancePolicy.__pulumiType;
85
+ }
86
+ constructor(name, argsOrState, opts) {
87
+ let resourceInputs = {};
88
+ opts = opts || {};
89
+ if (opts.id) {
90
+ const state = argsOrState;
91
+ resourceInputs["action"] = state ? state.action : undefined;
92
+ resourceInputs["instanceGroupId"] = state ? state.instanceGroupId : undefined;
93
+ resourceInputs["metrics"] = state ? state.metrics : undefined;
94
+ resourceInputs["name"] = state ? state.name : undefined;
95
+ resourceInputs["priority"] = state ? state.priority : undefined;
96
+ resourceInputs["projectId"] = state ? state.projectId : undefined;
97
+ resourceInputs["type"] = state ? state.type : undefined;
98
+ resourceInputs["value"] = state ? state.value : undefined;
99
+ resourceInputs["zone"] = state ? state.zone : undefined;
100
+ }
101
+ else {
102
+ const args = argsOrState;
103
+ if ((!args || args.action === undefined) && !opts.urn) {
104
+ throw new Error("Missing required property 'action'");
105
+ }
106
+ if ((!args || args.instanceGroupId === undefined) && !opts.urn) {
107
+ throw new Error("Missing required property 'instanceGroupId'");
108
+ }
109
+ if ((!args || args.priority === undefined) && !opts.urn) {
110
+ throw new Error("Missing required property 'priority'");
111
+ }
112
+ if ((!args || args.type === undefined) && !opts.urn) {
113
+ throw new Error("Missing required property 'type'");
114
+ }
115
+ if ((!args || args.value === undefined) && !opts.urn) {
116
+ throw new Error("Missing required property 'value'");
117
+ }
118
+ resourceInputs["action"] = args ? args.action : undefined;
119
+ resourceInputs["instanceGroupId"] = args ? args.instanceGroupId : undefined;
120
+ resourceInputs["metrics"] = args ? args.metrics : undefined;
121
+ resourceInputs["name"] = args ? args.name : undefined;
122
+ resourceInputs["priority"] = args ? args.priority : undefined;
123
+ resourceInputs["projectId"] = args ? args.projectId : undefined;
124
+ resourceInputs["type"] = args ? args.type : undefined;
125
+ resourceInputs["value"] = args ? args.value : undefined;
126
+ resourceInputs["zone"] = args ? args.zone : undefined;
127
+ }
128
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
129
+ super(InstancePolicy.__pulumiType, name, resourceInputs, opts);
130
+ }
131
+ }
132
+ exports.InstancePolicy = InstancePolicy;
133
+ /** @internal */
134
+ InstancePolicy.__pulumiType = 'scaleway:autoscaling/instancePolicy:InstancePolicy';
135
+ //# sourceMappingURL=instancePolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instancePolicy.js","sourceRoot":"","sources":["../../autoscaling/instancePolicy.ts"],"names":[],"mappings":"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"}