// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;

namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cvm.Outputs
{

    [OutputType]
    public sealed class LaunchTemplateVersionDataDisk
    {
        /// <summary>
        /// ID of the dedicated cluster to which the instance belongs.
        /// </summary>
        public readonly string? CdcId;
        /// <summary>
        /// Whether to terminate the data disk when its CVM is terminated. Default value: `true`.
        /// </summary>
        public readonly bool? DeleteWithInstance;
        /// <summary>
        /// System disk ID. System disks whose type is LOCAL_BASIC or LOCAL_SSD do not have an ID and do not support this parameter. It is only used as a response parameter for APIs such as DescribeInstances, and cannot be used as a request parameter for APIs such as RunInstances.
        /// </summary>
        public readonly string? DiskId;
        /// <summary>
        /// Data disk size (in GB). The minimum adjustment increment is 10 GB. The value range varies by data disk type.
        /// </summary>
        public readonly int DiskSize;
        /// <summary>
        /// The type of data disk.
        /// </summary>
        public readonly string? DiskType;
        /// <summary>
        /// Specifies whether the data disk is encrypted.
        /// </summary>
        public readonly bool? Encrypt;
        /// <summary>
        /// ID of the custom CMK in the format of UUID or `kms-abcd1234`.
        /// </summary>
        public readonly string? KmsKeyId;
        /// <summary>
        /// Data disk snapshot ID. The size of the selected data disk snapshot must be smaller than that of the data disk. Note: This field may return null, indicating that no valid value is found.
        /// </summary>
        public readonly string? SnapshotId;
        /// <summary>
        /// Cloud disk performance in MB/s.
        /// </summary>
        public readonly int? ThroughputPerformance;

        [OutputConstructor]
        private LaunchTemplateVersionDataDisk(
            string? cdcId,

            bool? deleteWithInstance,

            string? diskId,

            int diskSize,

            string? diskType,

            bool? encrypt,

            string? kmsKeyId,

            string? snapshotId,

            int? throughputPerformance)
        {
            CdcId = cdcId;
            DeleteWithInstance = deleteWithInstance;
            DiskId = diskId;
            DiskSize = diskSize;
            DiskType = diskType;
            Encrypt = encrypt;
            KmsKeyId = kmsKeyId;
            SnapshotId = snapshotId;
            ThroughputPerformance = throughputPerformance;
        }
    }
}
