import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface SksNodepoolConfig extends cdktf.TerraformMetaArguments { /** * A list of [exoscale_anti_affinity_group](./anti_affinity_group.md) (IDs) to be attached to the managed instances. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#anti_affinity_group_ids SksNodepool#anti_affinity_group_ids} */ readonly antiAffinityGroupIds?: string[]; /** * ❗ The parent [exoscale_sks_cluster](./sks_cluster.md) ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#cluster_id SksNodepool#cluster_id} */ readonly clusterId: string; /** * A deploy target ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#deploy_target_id SksNodepool#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/sks_nodepool#description SksNodepool#description} */ readonly description?: string; /** * The managed instances disk size (GiB; default: `50`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#disk_size SksNodepool#disk_size} */ readonly diskSize?: number; /** * The string used to prefix the managed instances name (default `pool`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#instance_prefix SksNodepool#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/sks_nodepool#instance_type SksNodepool#instance_type} */ readonly instanceType: string; /** * Enable IPV6 for the nodepool nodes * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#ipv6 SksNodepool#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/sks_nodepool#labels SksNodepool#labels} */ readonly labels?: { [key: string]: string; }; /** * The SKS node pool name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#name SksNodepool#name} */ readonly name: string; /** * A list of [exoscale_private_network](./private_network.md) (IDs) to be attached to the managed instances. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#private_network_ids SksNodepool#private_network_ids} */ readonly privateNetworkIds?: string[]; /** * A list of [exoscale_security_group](./security_group.md) (IDs) to be attached to the managed instances. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#security_group_ids SksNodepool#security_group_ids} */ readonly securityGroupIds?: string[]; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#size SksNodepool#size} */ readonly size: number; /** * Create nodes with non-standard partitioning for persistent storage (requires min 100G of disk space) (may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#storage_lvm SksNodepool#storage_lvm} */ readonly storageLvm?: boolean | cdktf.IResolvable; /** * A map of key/value Kubernetes [taints](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) ('taints = { = ":" }'). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#taints SksNodepool#taints} */ readonly taints?: { [key: string]: 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/sks_nodepool#zone SksNodepool#zone} */ readonly zone: string; /** * kubelet_image_gc block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#kubelet_image_gc SksNodepool#kubelet_image_gc} */ readonly kubeletImageGc?: SksNodepoolKubeletImageGc[] | cdktf.IResolvable; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#timeouts SksNodepool#timeouts} */ readonly timeouts?: SksNodepoolTimeouts; } export interface SksNodepoolKubeletImageGc { /** * The percent of disk usage after which image garbage collection is always run * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#high_threshold SksNodepool#high_threshold} */ readonly highThreshold?: number; /** * The percent of disk usage before which image garbage collection is never run * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#low_threshold SksNodepool#low_threshold} */ readonly lowThreshold?: number; /** * The minimum age for an unused image before it is garbage collected (k8s duration format, eg. 1h) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#min_age SksNodepool#min_age} */ readonly minAge?: string; } export declare function sksNodepoolKubeletImageGcToTerraform(struct?: SksNodepoolKubeletImageGc | cdktf.IResolvable): any; export declare function sksNodepoolKubeletImageGcToHclTerraform(struct?: SksNodepoolKubeletImageGc | cdktf.IResolvable): any; export declare class SksNodepoolKubeletImageGcOutputReference 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(): SksNodepoolKubeletImageGc | cdktf.IResolvable | undefined; set internalValue(value: SksNodepoolKubeletImageGc | cdktf.IResolvable | undefined); private _highThreshold?; get highThreshold(): number; set highThreshold(value: number); resetHighThreshold(): void; get highThresholdInput(): number; private _lowThreshold?; get lowThreshold(): number; set lowThreshold(value: number); resetLowThreshold(): void; get lowThresholdInput(): number; private _minAge?; get minAge(): string; set minAge(value: string); resetMinAge(): void; get minAgeInput(): string; } export declare class SksNodepoolKubeletImageGcList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: SksNodepoolKubeletImageGc[] | 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): SksNodepoolKubeletImageGcOutputReference; } export interface SksNodepoolTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#create SksNodepool#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#delete SksNodepool#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#read SksNodepool#read} */ readonly read?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#update SksNodepool#update} */ readonly update?: string; } export declare function sksNodepoolTimeoutsToTerraform(struct?: SksNodepoolTimeouts | cdktf.IResolvable): any; export declare function sksNodepoolTimeoutsToHclTerraform(struct?: SksNodepoolTimeouts | cdktf.IResolvable): any; export declare class SksNodepoolTimeoutsOutputReference 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(): SksNodepoolTimeouts | cdktf.IResolvable | undefined; set internalValue(value: SksNodepoolTimeouts | 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/sks_nodepool exoscale_sks_nodepool} */ export declare class SksNodepool extends cdktf.TerraformResource { static readonly tfResourceType = "exoscale_sks_nodepool"; /** * Generates CDKTF code for importing a SksNodepool 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 SksNodepool to import * @param importFromId The id of the existing SksNodepool that should be imported. Refer to the {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_nodepool#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the SksNodepool 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/sks_nodepool exoscale_sks_nodepool} 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 SksNodepoolConfig */ constructor(scope: Construct, id: string, config: SksNodepoolConfig); private _antiAffinityGroupIds?; get antiAffinityGroupIds(): string[]; set antiAffinityGroupIds(value: string[]); resetAntiAffinityGroupIds(): void; get antiAffinityGroupIdsInput(): string[]; private _clusterId?; get clusterId(): string; set clusterId(value: string); get clusterIdInput(): string; get createdAt(): any; 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; get id(): any; get instancePoolId(): any; private _instancePrefix?; get instancePrefix(): string; set instancePrefix(value: string); resetInstancePrefix(): void; get instancePrefixInput(): string; private _instanceType?; get instanceType(): string; set instanceType(value: string); get instanceTypeInput(): string; private _ipv6?; get ipv6(): boolean | cdktf.IResolvable; set ipv6(value: boolean | cdktf.IResolvable); resetIpv6(): void; get ipv6Input(): any; private _labels?; get labels(): { [key: string]: string; }; set labels(value: { [key: string]: string; }); resetLabels(): void; get labelsInput(): { [key: string]: string; }; private _name?; get name(): string; set name(value: string); get nameInput(): string; private _privateNetworkIds?; get privateNetworkIds(): string[]; set privateNetworkIds(value: string[]); resetPrivateNetworkIds(): void; get privateNetworkIdsInput(): string[]; private _securityGroupIds?; get securityGroupIds(): string[]; set securityGroupIds(value: string[]); resetSecurityGroupIds(): void; get securityGroupIdsInput(): string[]; private _size?; get size(): number; set size(value: number); get sizeInput(): number; get state(): any; private _storageLvm?; get storageLvm(): boolean | cdktf.IResolvable; set storageLvm(value: boolean | cdktf.IResolvable); resetStorageLvm(): void; get storageLvmInput(): any; private _taints?; get taints(): { [key: string]: string; }; set taints(value: { [key: string]: string; }); resetTaints(): void; get taintsInput(): { [key: string]: string; }; get templateId(): any; get version(): any; private _zone?; get zone(): string; set zone(value: string); get zoneInput(): string; private _kubeletImageGc; get kubeletImageGc(): SksNodepoolKubeletImageGcList; putKubeletImageGc(value: SksNodepoolKubeletImageGc[] | cdktf.IResolvable): void; resetKubeletImageGc(): void; get kubeletImageGcInput(): any; private _timeouts; get timeouts(): SksNodepoolTimeoutsOutputReference; putTimeouts(value: SksNodepoolTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }