import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface CbsStorageConfig extends cdktf.TerraformMetaArguments { /** * The available zone that the CBS instance locates at. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#availability_zone CbsStorage#availability_zone} */ readonly availabilityZone: string; /** * Whether to enable performance burst when creating a cloud disk. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#burst_performance CbsStorage#burst_performance} */ readonly burstPerformance?: boolean | cdktf.IResolvable; /** * The charge type of CBS instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `CDCPAID` and `DEDICATED_CLUSTER_PAID`. The default is `POSTPAID_BY_HOUR`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#charge_type CbsStorage#charge_type} */ readonly chargeType?: string; /** * Exclusive cluster id. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#dedicated_cluster_id CbsStorage#dedicated_cluster_id} */ readonly dedicatedClusterId?: string; /** * The quota of backup points of cloud disk. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#disk_backup_quota CbsStorage#disk_backup_quota} */ readonly diskBackupQuota?: number; /** * Pass in this parameter to create an encrypted cloud disk. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#encrypt CbsStorage#encrypt} */ readonly encrypt?: boolean | cdktf.IResolvable; /** * Specifies the cloud disk encryption type. The values are `ENCRYPT_V1` and `ENCRYPT_V2`, which represent the first-generation and second-generation encryption technologies respectively. The two encryption technologies are incompatible with each other. It is recommended to use the second-generation encryption technology `ENCRYPT_V2` first. The first-generation encryption technology is only supported on some older models. This parameter is only valid when creating an encrypted cloud disk. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#encrypt_type CbsStorage#encrypt_type} */ readonly encryptType?: string; /** * Indicate whether to delete CBS instance directly or not. Default is false. If set true, the instance will be deleted instead of staying recycle bin. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#force_delete CbsStorage#force_delete} */ readonly forceDelete?: boolean | cdktf.IResolvable; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#id CbsStorage#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; /** * Optional parameters. When purchasing an encryption disk, customize the key. When this parameter is passed in, the `encrypt` parameter need be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#kms_key_id CbsStorage#kms_key_id} */ readonly kmsKeyId?: string; /** * The purchased usage period of CBS. Valid values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36]. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#period CbsStorage#period} */ readonly period?: number; /** * The tenancy (time unit is month) of the prepaid instance, NOTE: it only works when charge_type is set to `PREPAID`. Valid values are 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#prepaid_period CbsStorage#prepaid_period} */ readonly prepaidPeriod?: number; /** * Auto Renewal flag. Value range: `NOTIFY_AND_AUTO_RENEW`: Notify expiry and renew automatically, `NOTIFY_AND_MANUAL_RENEW`: Notify expiry but do not renew automatically, `DISABLE_NOTIFY_AND_MANUAL_RENEW`: Neither notify expiry nor renew automatically. Default value range: `NOTIFY_AND_MANUAL_RENEW`: Notify expiry but do not renew automatically. NOTE: it only works when charge_type is set to `PREPAID`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#prepaid_renew_flag CbsStorage#prepaid_renew_flag} */ readonly prepaidRenewFlag?: string; /** * ID of the project to which the instance belongs. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#project_id CbsStorage#project_id} */ readonly projectId?: number; /** * ID of the snapshot. If specified, created the CBS by this snapshot. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#snapshot_id CbsStorage#snapshot_id} */ readonly snapshotId?: string; /** * Name of CBS. The maximum length can not exceed 60 bytes. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#storage_name CbsStorage#storage_name} */ readonly storageName: string; /** * Volume of CBS, and unit is GB. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#storage_size CbsStorage#storage_size} */ readonly storageSize: number; /** * Type of CBS medium. Valid values: CLOUD_BASIC: HDD cloud disk, CLOUD_PREMIUM: Premium Cloud Storage, CLOUD_BSSD: General Purpose SSD, CLOUD_SSD: SSD, CLOUD_HSSD: Enhanced SSD, CLOUD_TSSD: Tremendous SSD. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#storage_type CbsStorage#storage_type} */ readonly storageType: string; /** * The available tags within this CBS. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#tags CbsStorage#tags} */ readonly tags?: { [key: string]: string; }; /** * Add extra performance to the data disk. Only works when disk type is `CLOUD_TSSD` or `CLOUD_HSSD`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#throughput_performance CbsStorage#throughput_performance} */ readonly throughputPerformance?: number; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage tencentcloud_cbs_storage} */ export declare class CbsStorage extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_cbs_storage"; /** * Generates CDKTF code for importing a CbsStorage 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 CbsStorage to import * @param importFromId The id of the existing CbsStorage that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the CbsStorage 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/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cbs_storage tencentcloud_cbs_storage} 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 CbsStorageConfig */ constructor(scope: Construct, id: string, config: CbsStorageConfig); get attached(): any; private _availabilityZone?; get availabilityZone(): string; set availabilityZone(value: string); get availabilityZoneInput(): string; private _burstPerformance?; get burstPerformance(): boolean | cdktf.IResolvable; set burstPerformance(value: boolean | cdktf.IResolvable); resetBurstPerformance(): void; get burstPerformanceInput(): any; private _chargeType?; get chargeType(): string; set chargeType(value: string); resetChargeType(): void; get chargeTypeInput(): string; private _dedicatedClusterId?; get dedicatedClusterId(): string; set dedicatedClusterId(value: string); resetDedicatedClusterId(): void; get dedicatedClusterIdInput(): string; private _diskBackupQuota?; get diskBackupQuota(): number; set diskBackupQuota(value: number); resetDiskBackupQuota(): void; get diskBackupQuotaInput(): number; private _encrypt?; get encrypt(): boolean | cdktf.IResolvable; set encrypt(value: boolean | cdktf.IResolvable); resetEncrypt(): void; get encryptInput(): any; private _encryptType?; get encryptType(): string; set encryptType(value: string); resetEncryptType(): void; get encryptTypeInput(): string; private _forceDelete?; get forceDelete(): boolean | cdktf.IResolvable; set forceDelete(value: boolean | cdktf.IResolvable); resetForceDelete(): void; get forceDeleteInput(): any; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _kmsKeyId?; get kmsKeyId(): string; set kmsKeyId(value: string); resetKmsKeyId(): void; get kmsKeyIdInput(): string; private _period?; get period(): number; set period(value: number); resetPeriod(): void; get periodInput(): number; private _prepaidPeriod?; get prepaidPeriod(): number; set prepaidPeriod(value: number); resetPrepaidPeriod(): void; get prepaidPeriodInput(): number; private _prepaidRenewFlag?; get prepaidRenewFlag(): string; set prepaidRenewFlag(value: string); resetPrepaidRenewFlag(): void; get prepaidRenewFlagInput(): string; private _projectId?; get projectId(): number; set projectId(value: number); resetProjectId(): void; get projectIdInput(): number; private _snapshotId?; get snapshotId(): string; set snapshotId(value: string); resetSnapshotId(): void; get snapshotIdInput(): string; private _storageName?; get storageName(): string; set storageName(value: string); get storageNameInput(): string; private _storageSize?; get storageSize(): number; set storageSize(value: number); get storageSizeInput(): number; get storageStatus(): any; private _storageType?; get storageType(): string; set storageType(value: string); get storageTypeInput(): string; private _tags?; get tags(): { [key: string]: string; }; set tags(value: { [key: string]: string; }); resetTags(): void; get tagsInput(): { [key: string]: string; }; private _throughputPerformance?; get throughputPerformance(): number; set throughputPerformance(value: number); resetThroughputPerformance(): void; get throughputPerformanceInput(): number; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }