import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface ComputeInstanceConfig extends cdktf.TerraformMetaArguments { /** * ❗ A list of [exoscale_anti_affinity_group](./anti_affinity_group.md) (IDs) to attach to the instance (may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#anti_affinity_group_ids ComputeInstance#anti_affinity_group_ids} */ readonly antiAffinityGroupIds?: string[]; /** * A list of [exoscale_block_storage_volume](./block_storage_volume.md) (ID) to attach to the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#block_storage_volume_ids ComputeInstance#block_storage_volume_ids} */ readonly blockStorageVolumeIds?: string[]; /** * ❗ A deploy target ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#deploy_target_id ComputeInstance#deploy_target_id} */ readonly deployTargetId?: string; /** * Mark the instance as protected, the Exoscale API will refuse to delete the instance until the protection is removed (boolean; default: `false`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#destroy_protected ComputeInstance#destroy_protected} */ readonly destroyProtected?: boolean | cdktf.IResolvable; /** * The instance disk size (GiB; at least `10`). Can not be decreased after creation. **WARNING**: updating this attribute stops/restarts the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#disk_size ComputeInstance#disk_size} */ readonly diskSize: number; /** * A list of [exoscale_elastic_ip](./elastic_ip.md) (IDs) to attach to the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#elastic_ip_ids ComputeInstance#elastic_ip_ids} */ readonly elasticIpIds?: string[]; /** * ❗ Enable secure boot on the instance (boolean; default: `false`). Can not be changed after the creation. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#enable_secure_boot ComputeInstance#enable_secure_boot} */ readonly enableSecureBoot?: boolean | cdktf.IResolvable; /** * Enable TPM on the instance (boolean; default: `false`). Can not be disabled after the creation. **WARNING**: enabling this attribute stops/restarts the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#enable_tpm ComputeInstance#enable_tpm} */ readonly enableTpm?: boolean | cdktf.IResolvable; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#id ComputeInstance#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; /** * Enable IPv6 on the instance (boolean; default: `false`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#ipv6 ComputeInstance#ipv6} */ readonly ipv6?: boolean | cdktf.IResolvable; /** * A map of key/value labels. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#labels ComputeInstance#labels} */ readonly labels?: { [key: string]: string; }; /** * The compute instance name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#name ComputeInstance#name} */ readonly name: string; /** * Whether the instance is private (no public IP addresses; default: false) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#private ComputeInstance#private} */ readonly private?: boolean | cdktf.IResolvable; /** * Domain name for reverse DNS record. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#reverse_dns ComputeInstance#reverse_dns} */ readonly reverseDns?: string; /** * A list of [exoscale_security_group](./security_group.md) (IDs) to attach to the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#security_group_ids ComputeInstance#security_group_ids} */ readonly securityGroupIds?: string[]; /** * ❗ The [exoscale_ssh_key](./ssh_key.md) (name) to authorize in the instance (may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#ssh_key ComputeInstance#ssh_key} */ readonly sshKey?: string; /** * ❗ The list of [exoscale_ssh_key](./ssh_key.md) (name) to authorize in the instance (may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#ssh_keys ComputeInstance#ssh_keys} */ readonly sshKeys?: string[]; /** * The instance state (`running` or `stopped`; default: `running`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#state ComputeInstance#state} */ readonly state?: string; /** * ❗ The [exoscale_template](../data-sources/template.md) (ID) to use when creating the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#template_id ComputeInstance#template_id} */ readonly templateId: string; /** * The instance 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). **WARNING**: updating this attribute stops/restarts the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#type ComputeInstance#type} */ readonly type: string; /** * [cloud-init](https://cloudinit.readthedocs.io/) configuration. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#user_data ComputeInstance#user_data} */ readonly userData?: 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/compute_instance#zone ComputeInstance#zone} */ readonly zone: string; /** * network_interface block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#network_interface ComputeInstance#network_interface} */ readonly networkInterface?: ComputeInstanceNetworkInterface[] | cdktf.IResolvable; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#timeouts ComputeInstance#timeouts} */ readonly timeouts?: ComputeInstanceTimeouts; } export interface ComputeInstanceNetworkInterface { /** * The IPv4 address to request as static DHCP lease if the network interface is attached to a *managed* private network. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#ip_address ComputeInstance#ip_address} */ readonly ipAddress?: string; /** * The [exoscale_private_network](./private_network.md) (ID) to attach to the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#network_id ComputeInstance#network_id} */ readonly networkId: string; } export declare function computeInstanceNetworkInterfaceToTerraform(struct?: ComputeInstanceNetworkInterface | cdktf.IResolvable): any; export declare function computeInstanceNetworkInterfaceToHclTerraform(struct?: ComputeInstanceNetworkInterface | cdktf.IResolvable): any; export declare class ComputeInstanceNetworkInterfaceOutputReference 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(): ComputeInstanceNetworkInterface | cdktf.IResolvable | undefined; set internalValue(value: ComputeInstanceNetworkInterface | cdktf.IResolvable | undefined); private _ipAddress?; get ipAddress(): string; set ipAddress(value: string); resetIpAddress(): void; get ipAddressInput(): string; get macAddress(): any; private _networkId?; get networkId(): string; set networkId(value: string); get networkIdInput(): string; } export declare class ComputeInstanceNetworkInterfaceList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeInstanceNetworkInterface[] | 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): ComputeInstanceNetworkInterfaceOutputReference; } export interface ComputeInstanceTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#create ComputeInstance#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#delete ComputeInstance#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#read ComputeInstance#read} */ readonly read?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#update ComputeInstance#update} */ readonly update?: string; } export declare function computeInstanceTimeoutsToTerraform(struct?: ComputeInstanceTimeouts | cdktf.IResolvable): any; export declare function computeInstanceTimeoutsToHclTerraform(struct?: ComputeInstanceTimeouts | cdktf.IResolvable): any; export declare class ComputeInstanceTimeoutsOutputReference 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(): ComputeInstanceTimeouts | cdktf.IResolvable | undefined; set internalValue(value: ComputeInstanceTimeouts | 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/compute_instance exoscale_compute_instance} */ export declare class ComputeInstance extends cdktf.TerraformResource { static readonly tfResourceType = "exoscale_compute_instance"; /** * Generates CDKTF code for importing a ComputeInstance 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 ComputeInstance to import * @param importFromId The id of the existing ComputeInstance that should be imported. Refer to the {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/compute_instance#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the ComputeInstance 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/compute_instance exoscale_compute_instance} 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 ComputeInstanceConfig */ constructor(scope: Construct, id: string, config: ComputeInstanceConfig); private _antiAffinityGroupIds?; get antiAffinityGroupIds(): string[]; set antiAffinityGroupIds(value: string[]); resetAntiAffinityGroupIds(): void; get antiAffinityGroupIdsInput(): string[]; private _blockStorageVolumeIds?; get blockStorageVolumeIds(): string[]; set blockStorageVolumeIds(value: string[]); resetBlockStorageVolumeIds(): void; get blockStorageVolumeIdsInput(): string[]; get createdAt(): any; private _deployTargetId?; get deployTargetId(): string; set deployTargetId(value: string); resetDeployTargetId(): void; get deployTargetIdInput(): string; private _destroyProtected?; get destroyProtected(): boolean | cdktf.IResolvable; set destroyProtected(value: boolean | cdktf.IResolvable); resetDestroyProtected(): void; get destroyProtectedInput(): any; private _diskSize?; get diskSize(): number; set diskSize(value: number); get diskSizeInput(): number; private _elasticIpIds?; get elasticIpIds(): string[]; set elasticIpIds(value: string[]); resetElasticIpIds(): void; get elasticIpIdsInput(): string[]; private _enableSecureBoot?; get enableSecureBoot(): boolean | cdktf.IResolvable; set enableSecureBoot(value: boolean | cdktf.IResolvable); resetEnableSecureBoot(): void; get enableSecureBootInput(): any; private _enableTpm?; get enableTpm(): boolean | cdktf.IResolvable; set enableTpm(value: boolean | cdktf.IResolvable); resetEnableTpm(): void; get enableTpmInput(): any; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _ipv6?; get ipv6(): boolean | cdktf.IResolvable; set ipv6(value: boolean | cdktf.IResolvable); resetIpv6(): void; get ipv6Input(): any; get ipv6Address(): any; private _labels?; get labels(): { [key: string]: string; }; set labels(value: { [key: string]: string; }); resetLabels(): void; get labelsInput(): { [key: string]: string; }; get macAddress(): any; private _name?; get name(): string; set name(value: string); get nameInput(): string; private _private?; get private(): boolean | cdktf.IResolvable; set private(value: boolean | cdktf.IResolvable); resetPrivate(): void; get privateInput(): any; get privateNetworkIds(): any; get publicIpAddress(): any; private _reverseDns?; get reverseDns(): string; set reverseDns(value: string); resetReverseDns(): void; get reverseDnsInput(): string; private _securityGroupIds?; get securityGroupIds(): string[]; set securityGroupIds(value: string[]); resetSecurityGroupIds(): void; get securityGroupIdsInput(): string[]; private _sshKey?; get sshKey(): string; set sshKey(value: string); resetSshKey(): void; get sshKeyInput(): string; private _sshKeys?; get sshKeys(): string[]; set sshKeys(value: string[]); resetSshKeys(): void; get sshKeysInput(): string[]; 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 _type?; get type(): string; set type(value: string); get typeInput(): string; private _userData?; get userData(): string; set userData(value: string); resetUserData(): void; get userDataInput(): string; private _zone?; get zone(): string; set zone(value: string); get zoneInput(): string; private _networkInterface; get networkInterface(): ComputeInstanceNetworkInterfaceList; putNetworkInterface(value: ComputeInstanceNetworkInterface[] | cdktf.IResolvable): void; resetNetworkInterface(): void; get networkInterfaceInput(): any; private _timeouts; get timeouts(): ComputeInstanceTimeoutsOutputReference; putTimeouts(value: ComputeInstanceTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }