generated/api/Models/PlanBackupDestinationGeneralInfo.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.9.4, generator: @autorest/powershell@3.0.415)
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

namespace Commvault.Powershell.Models
{
    using static Commvault.Powershell.Runtime.Extensions;

    public partial class PlanBackupDestinationGeneralInfo :
        Commvault.Powershell.Models.IPlanBackupDestinationGeneralInfo,
        Commvault.Powershell.Models.IPlanBackupDestinationGeneralInfoInternal
    {

        /// <summary>Internal Acessors for Source</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IPlanBackupDestinationGeneralInfoInternal.Source { get => (this._source = this._source ?? new Commvault.Powershell.Models.IdName()); set { {_source = value;} } }

        /// <summary>Internal Acessors for Storage</summary>
        Commvault.Powershell.Models.IStoragePool Commvault.Powershell.Models.IPlanBackupDestinationGeneralInfoInternal.Storage { get => (this._storage = this._storage ?? new Commvault.Powershell.Models.StoragePool()); set { {_storage = value;} } }

        /// <summary>Internal Acessors for StorageRegion</summary>
        Commvault.Powershell.Models.IIdNameDisplayName Commvault.Powershell.Models.IPlanBackupDestinationGeneralInfoInternal.StorageRegion { get => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).Region; set => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).Region = value; }

        /// <summary>Backing field for <see cref="CopyPrecedence" /> property.</summary>
        private long? _copyPrecedence;

        /// <summary>Order of backup destinaion copy created in storage policy</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? CopyPrecedence { get => this._copyPrecedence; set => this._copyPrecedence = value; }

        /// <summary>Backing field for <see cref="CopyType" /> property.</summary>
        private string _copyType;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string CopyType { get => this._copyType; set => this._copyType = value; }

        /// <summary>Backing field for <see cref="IsActive" /> property.</summary>
        private bool? _isActive;

        /// <summary>Is this an active backup destination?</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? IsActive { get => this._isActive; set => this._isActive = value; }

        /// <summary>Backing field for <see cref="IsDefault" /> property.</summary>
        private bool? _isDefault;

        /// <summary>Is this a default backup destination?</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? IsDefault { get => this._isDefault; set => this._isDefault = value; }

        /// <summary>Backing field for <see cref="IsMirrorCopy" /> property.</summary>
        private bool? _isMirrorCopy;

        /// <summary>Is this a mirror copy?</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? IsMirrorCopy { get => this._isMirrorCopy; set => this._isMirrorCopy = value; }

        /// <summary>Backing field for <see cref="IsSnapCopy" /> property.</summary>
        private bool? _isSnapCopy;

        /// <summary>Is this a snap copy?</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? IsSnapCopy { get => this._isSnapCopy; set => this._isSnapCopy = value; }

        /// <summary>Backing field for <see cref="NetAppCloudTarget" /> property.</summary>
        private bool? _netAppCloudTarget;

        /// <summary>
        /// Only for snap copy. Tells if the snap copy supports SVM Mapping to NetApp cloud targets only.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? NetAppCloudTarget { get => this._netAppCloudTarget; set => this._netAppCloudTarget = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RegionDisplayName { get => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).RegionDisplayName; set => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).RegionDisplayName = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RegionId { get => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).RegionId; set => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).RegionId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RegionName { get => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).RegionName; set => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).RegionName = value ?? null; }

        /// <summary>Backing field for <see cref="SnapCopyType" /> property.</summary>
        private string _snapCopyType;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string SnapCopyType { get => this._snapCopyType; set => this._snapCopyType = value; }

        /// <summary>Backing field for <see cref="Source" /> property.</summary>
        private Commvault.Powershell.Models.IIdName _source;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IIdName Source { get => (this._source = this._source ?? new Commvault.Powershell.Models.IdName()); set => this._source = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SourceId { get => ((Commvault.Powershell.Models.IIdNameInternal)Source).Id; set => ((Commvault.Powershell.Models.IIdNameInternal)Source).Id = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SourceName { get => ((Commvault.Powershell.Models.IIdNameInternal)Source).Name; set => ((Commvault.Powershell.Models.IIdNameInternal)Source).Name = value ?? null; }

        /// <summary>Backing field for <see cref="Storage" /> property.</summary>
        private Commvault.Powershell.Models.IStoragePool _storage;

        /// <summary>StoragePool</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IStoragePool Storage { get => (this._storage = this._storage ?? new Commvault.Powershell.Models.StoragePool()); set => this._storage = value; }

        /// <summary>Storage container information of the storage.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string StorageClass { get => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).StorageClass; set => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).StorageClass = value ?? null; }

        /// <summary>Device type of the storage.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string StorageDeviceType { get => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).DeviceType; set => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).DeviceType = value ?? null; }

        /// <summary>Id of Storage Pool</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? StorageId { get => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).Id; set => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).Id = value ?? default(long); }

        /// <summary>Flag indicating whether the storage tier is archive.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? StorageIsArchiveStorage { get => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).IsArchiveStorage; set => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).IsArchiveStorage = value ?? default(bool); }

        /// <summary>Name of Storage Pool</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string StorageName { get => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).Name; set => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).Name = value ?? null; }

        /// <summary>Retention period of pool in days</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? StorageRetentionPeriodDays { get => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).RetentionPeriodDays; set => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).RetentionPeriodDays = value ?? default(long); }

        /// <summary>Backing field for <see cref="StorageType" /> property.</summary>
        private string _storageType;

        /// <summary>StorageType</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string StorageType { get => this._storageType; set => this._storageType = value; }

        /// <summary>
        /// Bit flag indicating WORM configuration of storage pool. 0 means no lock, 1 means compliance lock, 2 means worm storage
        /// lock, 4 means Object worm lock and 8 means bucket worm lock.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? StorageWormStoragePoolFlag { get => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).WormStoragePoolFlag; set => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).WormStoragePoolFlag = value ?? default(long); }

        /// <summary>Type of Storage Pool</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string Type { get => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).Type; set => ((Commvault.Powershell.Models.IStoragePoolInternal)Storage).Type = value ?? null; }

        /// <summary>Creates an new <see cref="PlanBackupDestinationGeneralInfo" /> instance.</summary>
        public PlanBackupDestinationGeneralInfo()
        {

        }
    }
    public partial interface IPlanBackupDestinationGeneralInfo :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>Order of backup destinaion copy created in storage policy</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Order of backup destinaion copy created in storage policy",
        SerializedName = @"copyPrecedence",
        PossibleTypes = new [] { typeof(long) })]
        long? CopyPrecedence { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"copyType",
        PossibleTypes = new [] { typeof(string) })]
        string CopyType { get; set; }
        /// <summary>Is this an active backup destination?</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Is this an active backup destination?",
        SerializedName = @"isActive",
        PossibleTypes = new [] { typeof(bool) })]
        bool? IsActive { get; set; }
        /// <summary>Is this a default backup destination?</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Is this a default backup destination?",
        SerializedName = @"isDefault",
        PossibleTypes = new [] { typeof(bool) })]
        bool? IsDefault { get; set; }
        /// <summary>Is this a mirror copy?</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Is this a mirror copy?",
        SerializedName = @"isMirrorCopy",
        PossibleTypes = new [] { typeof(bool) })]
        bool? IsMirrorCopy { get; set; }
        /// <summary>Is this a snap copy?</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Is this a snap copy?",
        SerializedName = @"isSnapCopy",
        PossibleTypes = new [] { typeof(bool) })]
        bool? IsSnapCopy { get; set; }
        /// <summary>
        /// Only for snap copy. Tells if the snap copy supports SVM Mapping to NetApp cloud targets only.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Only for snap copy. Tells if the snap copy supports SVM Mapping to NetApp cloud targets only.",
        SerializedName = @"netAppCloudTarget",
        PossibleTypes = new [] { typeof(bool) })]
        bool? NetAppCloudTarget { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"displayName",
        PossibleTypes = new [] { typeof(string) })]
        string RegionDisplayName { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? RegionId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string RegionName { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"snapCopyType",
        PossibleTypes = new [] { typeof(string) })]
        string SnapCopyType { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? SourceId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string SourceName { get; set; }
        /// <summary>Storage container information of the storage.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Storage container information of the storage.",
        SerializedName = @"storageClass",
        PossibleTypes = new [] { typeof(string) })]
        string StorageClass { get; set; }
        /// <summary>Device type of the storage.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Device type of the storage.",
        SerializedName = @"deviceType",
        PossibleTypes = new [] { typeof(string) })]
        string StorageDeviceType { get; set; }
        /// <summary>Id of Storage Pool</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Id of Storage Pool",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? StorageId { get; set; }
        /// <summary>Flag indicating whether the storage tier is archive.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Flag indicating whether the storage tier is archive.",
        SerializedName = @"isArchiveStorage",
        PossibleTypes = new [] { typeof(bool) })]
        bool? StorageIsArchiveStorage { get; set; }
        /// <summary>Name of Storage Pool</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Name of Storage Pool",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string StorageName { get; set; }
        /// <summary>Retention period of pool in days</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Retention period of pool in days",
        SerializedName = @"retentionPeriodDays",
        PossibleTypes = new [] { typeof(long) })]
        long? StorageRetentionPeriodDays { get; set; }
        /// <summary>StorageType</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"StorageType",
        SerializedName = @"storageType",
        PossibleTypes = new [] { typeof(string) })]
        string StorageType { get; set; }
        /// <summary>
        /// Bit flag indicating WORM configuration of storage pool. 0 means no lock, 1 means compliance lock, 2 means worm storage
        /// lock, 4 means Object worm lock and 8 means bucket worm lock.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Bit flag indicating WORM configuration of storage pool. 0 means no lock, 1 means compliance lock, 2 means worm storage lock, 4 means Object worm lock and 8 means bucket worm lock.",
        SerializedName = @"wormStoragePoolFlag",
        PossibleTypes = new [] { typeof(long) })]
        long? StorageWormStoragePoolFlag { get; set; }
        /// <summary>Type of Storage Pool</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Type of Storage Pool",
        SerializedName = @"type",
        PossibleTypes = new [] { typeof(string) })]
        string Type { get; set; }

    }
    internal partial interface IPlanBackupDestinationGeneralInfoInternal

    {
        /// <summary>Order of backup destinaion copy created in storage policy</summary>
        long? CopyPrecedence { get; set; }

        string CopyType { get; set; }
        /// <summary>Is this an active backup destination?</summary>
        bool? IsActive { get; set; }
        /// <summary>Is this a default backup destination?</summary>
        bool? IsDefault { get; set; }
        /// <summary>Is this a mirror copy?</summary>
        bool? IsMirrorCopy { get; set; }
        /// <summary>Is this a snap copy?</summary>
        bool? IsSnapCopy { get; set; }
        /// <summary>
        /// Only for snap copy. Tells if the snap copy supports SVM Mapping to NetApp cloud targets only.
        /// </summary>
        bool? NetAppCloudTarget { get; set; }

        string RegionDisplayName { get; set; }

        long? RegionId { get; set; }

        string RegionName { get; set; }

        string SnapCopyType { get; set; }

        Commvault.Powershell.Models.IIdName Source { get; set; }

        long? SourceId { get; set; }

        string SourceName { get; set; }
        /// <summary>StoragePool</summary>
        Commvault.Powershell.Models.IStoragePool Storage { get; set; }
        /// <summary>Storage container information of the storage.</summary>
        string StorageClass { get; set; }
        /// <summary>Device type of the storage.</summary>
        string StorageDeviceType { get; set; }
        /// <summary>Id of Storage Pool</summary>
        long? StorageId { get; set; }
        /// <summary>Flag indicating whether the storage tier is archive.</summary>
        bool? StorageIsArchiveStorage { get; set; }
        /// <summary>Name of Storage Pool</summary>
        string StorageName { get; set; }

        Commvault.Powershell.Models.IIdNameDisplayName StorageRegion { get; set; }
        /// <summary>Retention period of pool in days</summary>
        long? StorageRetentionPeriodDays { get; set; }
        /// <summary>StorageType</summary>
        string StorageType { get; set; }
        /// <summary>
        /// Bit flag indicating WORM configuration of storage pool. 0 means no lock, 1 means compliance lock, 2 means worm storage
        /// lock, 4 means Object worm lock and 8 means bucket worm lock.
        /// </summary>
        long? StorageWormStoragePoolFlag { get; set; }
        /// <summary>Type of Storage Pool</summary>
        string Type { get; set; }

    }
}