import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface BlockStorageVolumeConfig extends cdktf.TerraformMetaArguments { /** * Resource labels. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/block_storage_volume#labels BlockStorageVolume#labels} */ readonly labels?: { [key: string]: string; }; /** * Volume name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/block_storage_volume#name BlockStorageVolume#name} */ readonly name: string; /** * Volume size in GB (default 10). If volume is attached, instance must be stopped to update this value. Volume can only grow, cannot be shrunk. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/block_storage_volume#size BlockStorageVolume#size} */ readonly size?: number; /** * Block storage snapshot to use when creating a volume. Read-only after creation. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/block_storage_volume#snapshot_target BlockStorageVolume#snapshot_target} */ readonly snapshotTarget?: BlockStorageVolumeSnapshotTarget; /** * ❗ 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/block_storage_volume#zone BlockStorageVolume#zone} */ readonly zone: string; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/block_storage_volume#timeouts BlockStorageVolume#timeouts} */ readonly timeouts?: BlockStorageVolumeTimeouts; } export interface BlockStorageVolumeSnapshotTarget { /** * Snapshot ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/block_storage_volume#id BlockStorageVolume#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; } export declare function blockStorageVolumeSnapshotTargetToTerraform(struct?: BlockStorageVolumeSnapshotTarget | cdktf.IResolvable): any; export declare function blockStorageVolumeSnapshotTargetToHclTerraform(struct?: BlockStorageVolumeSnapshotTarget | cdktf.IResolvable): any; export declare class BlockStorageVolumeSnapshotTargetOutputReference 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(): BlockStorageVolumeSnapshotTarget | cdktf.IResolvable | undefined; set internalValue(value: BlockStorageVolumeSnapshotTarget | cdktf.IResolvable | undefined); private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; } export interface BlockStorageVolumeTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/block_storage_volume#read BlockStorageVolume#read} */ readonly read?: string; } export declare function blockStorageVolumeTimeoutsToTerraform(struct?: BlockStorageVolumeTimeouts | cdktf.IResolvable): any; export declare function blockStorageVolumeTimeoutsToHclTerraform(struct?: BlockStorageVolumeTimeouts | cdktf.IResolvable): any; export declare class BlockStorageVolumeTimeoutsOutputReference 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(): BlockStorageVolumeTimeouts | cdktf.IResolvable | undefined; set internalValue(value: BlockStorageVolumeTimeouts | cdktf.IResolvable | undefined); private _read?; get read(): string; set read(value: string); resetRead(): void; get readInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/block_storage_volume exoscale_block_storage_volume} */ export declare class BlockStorageVolume extends cdktf.TerraformResource { static readonly tfResourceType = "exoscale_block_storage_volume"; /** * Generates CDKTF code for importing a BlockStorageVolume 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 BlockStorageVolume to import * @param importFromId The id of the existing BlockStorageVolume that should be imported. Refer to the {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/block_storage_volume#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the BlockStorageVolume 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/block_storage_volume exoscale_block_storage_volume} 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 BlockStorageVolumeConfig */ constructor(scope: Construct, id: string, config: BlockStorageVolumeConfig); get blocksize(): any; get createdAt(): any; get id(): 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 _size?; get size(): number; set size(value: number); resetSize(): void; get sizeInput(): number; private _snapshotTarget; get snapshotTarget(): BlockStorageVolumeSnapshotTargetOutputReference; putSnapshotTarget(value: BlockStorageVolumeSnapshotTarget): void; resetSnapshotTarget(): void; get snapshotTargetInput(): any; get state(): any; private _zone?; get zone(): string; set zone(value: string); get zoneInput(): string; private _timeouts; get timeouts(): BlockStorageVolumeTimeoutsOutputReference; putTimeouts(value: BlockStorageVolumeTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }