import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface InstancePoolConfig extends cdktf.TerraformMetaArguments { /** * A list of [exoscale_anti_affinity_group](./anti_affinity_group.md) (IDs; may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#affinity_group_ids InstancePool#affinity_group_ids} */ readonly affinityGroupIds?: string[]; /** * A list of [exoscale_anti_affinity_group](./anti_affinity_group.md) (IDs; may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#anti_affinity_group_ids InstancePool#anti_affinity_group_ids} */ readonly antiAffinityGroupIds?: string[]; /** * A deploy target ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#deploy_target_id InstancePool#deploy_target_id} */ readonly deployTargetId?: string; /** * A free-form text describing the pool. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#description InstancePool#description} */ readonly description?: string; /** * The managed instances disk size (GiB). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#disk_size InstancePool#disk_size} */ readonly diskSize?: number; /** * A list of [exoscale_elastic_ip](./elastic_ip.md) (IDs). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#elastic_ip_ids InstancePool#elastic_ip_ids} */ readonly elasticIpIds?: string[]; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#id InstancePool#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * The string used to prefix managed instances name (default: `pool`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#instance_prefix InstancePool#instance_prefix} */ readonly instancePrefix?: string; /** * The managed compute instances type (`.`, e.g. `standard.medium`; use the [Exoscale CLI](https://github.com/exoscale/cli/) - `exo compute instance-type list` - for the list of available types). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#instance_type InstancePool#instance_type} */ readonly instanceType?: string; /** * Enable IPv6 on managed instances (boolean; default: `false`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#ipv6 InstancePool#ipv6} */ readonly ipv6?: boolean | cdktf.IResolvable; /** * The [exoscale_ssh_key](./ssh_key.md) (name) to authorize in the managed instances. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#key_pair InstancePool#key_pair} */ readonly keyPair?: string; /** * A map of key/value labels. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#labels InstancePool#labels} */ readonly labels?: { [key: string]: string; }; /** * Minimum number of running Instances. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#min_available InstancePool#min_available} */ readonly minAvailable?: number; /** * The instance pool name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#name InstancePool#name} */ readonly name: string; /** * A list of [exoscale_private_network](./private_network.md) (IDs). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#network_ids InstancePool#network_ids} */ readonly networkIds?: string[]; /** * A list of [exoscale_security_group](./security_group.md) (IDs). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#security_group_ids InstancePool#security_group_ids} */ readonly securityGroupIds?: string[]; /** * The managed instances type. Please use the `instance_type` argument instead. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#service_offering InstancePool#service_offering} */ readonly serviceOffering?: string; /** * The number of managed instances. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#size InstancePool#size} */ readonly size: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#state InstancePool#state} */ readonly state?: string; /** * The [exoscale_template](../data-sources/template.md) (ID) to use when creating the managed instances. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#template_id InstancePool#template_id} */ readonly templateId: string; /** * [cloud-init](http://cloudinit.readthedocs.io/) configuration to apply to the managed instances. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#user_data InstancePool#user_data} */ readonly userData?: string; /** * The list of managed instances (IDs). Please use the `instances.*.id` attribute instead. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#virtual_machines InstancePool#virtual_machines} */ readonly virtualMachines?: string[]; /** * ❗ The Exoscale [Zone](https://www.exoscale.com/datacenters/) name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#zone InstancePool#zone} */ readonly zone: string; /** * instances block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#instances InstancePool#instances} */ readonly instances?: InstancePoolInstances[] | cdktf.IResolvable; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#timeouts InstancePool#timeouts} */ readonly timeouts?: InstancePoolTimeouts; } export interface InstancePoolInstances { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#id InstancePool#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * The instance name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#name InstancePool#name} */ readonly name?: string; } export declare function instancePoolInstancesToTerraform(struct?: InstancePoolInstances | cdktf.IResolvable): any; export declare function instancePoolInstancesToHclTerraform(struct?: InstancePoolInstances | cdktf.IResolvable): any; export declare class InstancePoolInstancesOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): InstancePoolInstances | cdktf.IResolvable | undefined; set internalValue(value: InstancePoolInstances | cdktf.IResolvable | undefined); private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; get ipv6Address(): any; private _name?; get name(): string; set name(value: string); resetName(): void; get nameInput(): string; get publicIpAddress(): any; } export declare class InstancePoolInstancesList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: InstancePoolInstances[] | cdktf.IResolvable; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): InstancePoolInstancesOutputReference; } export interface InstancePoolTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#create InstancePool#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#delete InstancePool#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#read InstancePool#read} */ readonly read?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#update InstancePool#update} */ readonly update?: string; } export declare function instancePoolTimeoutsToTerraform(struct?: InstancePoolTimeouts | cdktf.IResolvable): any; export declare function instancePoolTimeoutsToHclTerraform(struct?: InstancePoolTimeouts | cdktf.IResolvable): any; export declare class InstancePoolTimeoutsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): InstancePoolTimeouts | cdktf.IResolvable | undefined; set internalValue(value: InstancePoolTimeouts | cdktf.IResolvable | undefined); private _create?; get create(): string; set create(value: string); resetCreate(): void; get createInput(): string; private _delete?; get delete(): string; set delete(value: string); resetDelete(): void; get deleteInput(): string; private _read?; get read(): string; set read(value: string); resetRead(): void; get readInput(): string; private _update?; get update(): string; set update(value: string); resetUpdate(): void; get updateInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool exoscale_instance_pool} */ export declare class InstancePool extends cdktf.TerraformResource { static readonly tfResourceType = "exoscale_instance_pool"; /** * Generates CDKTF code for importing a InstancePool resource upon running "cdktf plan " * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the InstancePool to import * @param importFromId The id of the existing InstancePool that should be imported. Refer to the {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the InstancePool to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): any; /** * Create a new {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/instance_pool exoscale_instance_pool} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options InstancePoolConfig */ constructor(scope: Construct, id: string, config: InstancePoolConfig); private _affinityGroupIds?; get affinityGroupIds(): string[]; set affinityGroupIds(value: string[]); resetAffinityGroupIds(): void; get affinityGroupIdsInput(): string[]; private _antiAffinityGroupIds?; get antiAffinityGroupIds(): string[]; set antiAffinityGroupIds(value: string[]); resetAntiAffinityGroupIds(): void; get antiAffinityGroupIdsInput(): string[]; private _deployTargetId?; get deployTargetId(): string; set deployTargetId(value: string); resetDeployTargetId(): void; get deployTargetIdInput(): string; private _description?; get description(): string; set description(value: string); resetDescription(): void; get descriptionInput(): string; private _diskSize?; get diskSize(): number; set diskSize(value: number); resetDiskSize(): void; get diskSizeInput(): number; private _elasticIpIds?; get elasticIpIds(): string[]; set elasticIpIds(value: string[]); resetElasticIpIds(): void; get elasticIpIdsInput(): string[]; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _instancePrefix?; get instancePrefix(): string; set instancePrefix(value: string); resetInstancePrefix(): void; get instancePrefixInput(): string; private _instanceType?; get instanceType(): string; set instanceType(value: string); resetInstanceType(): void; get instanceTypeInput(): string; private _ipv6?; get ipv6(): boolean | cdktf.IResolvable; set ipv6(value: boolean | cdktf.IResolvable); resetIpv6(): void; get ipv6Input(): any; private _keyPair?; get keyPair(): string; set keyPair(value: string); resetKeyPair(): void; get keyPairInput(): string; private _labels?; get labels(): { [key: string]: string; }; set labels(value: { [key: string]: string; }); resetLabels(): void; get labelsInput(): { [key: string]: string; }; private _minAvailable?; get minAvailable(): number; set minAvailable(value: number); resetMinAvailable(): void; get minAvailableInput(): number; private _name?; get name(): string; set name(value: string); get nameInput(): string; private _networkIds?; get networkIds(): string[]; set networkIds(value: string[]); resetNetworkIds(): void; get networkIdsInput(): string[]; private _securityGroupIds?; get securityGroupIds(): string[]; set securityGroupIds(value: string[]); resetSecurityGroupIds(): void; get securityGroupIdsInput(): string[]; private _serviceOffering?; get serviceOffering(): string; set serviceOffering(value: string); resetServiceOffering(): void; get serviceOfferingInput(): string; private _size?; get size(): number; set size(value: number); get sizeInput(): number; private _state?; get state(): string; set state(value: string); resetState(): void; get stateInput(): string; private _templateId?; get templateId(): string; set templateId(value: string); get templateIdInput(): string; private _userData?; get userData(): string; set userData(value: string); resetUserData(): void; get userDataInput(): string; private _virtualMachines?; get virtualMachines(): string[]; set virtualMachines(value: string[]); resetVirtualMachines(): void; get virtualMachinesInput(): string[]; private _zone?; get zone(): string; set zone(value: string); get zoneInput(): string; private _instances; get instances(): InstancePoolInstancesList; putInstances(value: InstancePoolInstances[] | cdktf.IResolvable): void; resetInstances(): void; get instancesInput(): any; private _timeouts; get timeouts(): InstancePoolTimeoutsOutputReference; putTimeouts(value: InstancePoolTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }