generated/api/Models/SnapCopyInfo.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 SnapCopyInfo :
        Commvault.Powershell.Models.ISnapCopyInfo,
        Commvault.Powershell.Models.ISnapCopyInfoInternal
    {

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

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

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

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

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

        /// <summary>True if hardware snapshot is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? EnableHardwareSnapshot { get => this._enableHardwareSnapshot; set => this._enableHardwareSnapshot = value; }

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

        /// <summary>True if independent disk option is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? IsIndependentDisksEnabled { get => this._isIndependentDisksEnabled; set => this._isIndependentDisksEnabled = value; }

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

        /// <summary>True if raw device maps option is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? IsRawDeviceMapsEnabled { get => this._isRawDeviceMapsEnabled; set => this._isRawDeviceMapsEnabled = value; }

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

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

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

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

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

        /// <summary>Name of ESX Host</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string SnapMountEsxHost { get => this._snapMountEsxHost; set => this._snapMountEsxHost = value; }

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

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

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

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

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

        /// <summary>True if separate proxy client is used for snap to tape</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? UseSeparateProxyForSnapToTape { get => this._useSeparateProxyForSnapToTape; set => this._useSeparateProxyForSnapToTape = value; }

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

        /// <summary>Virtual machine application user name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string VMApplicationUserName { get => this._vMApplicationUserName; set => this._vMApplicationUserName = value; }

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

        }
    }
    public partial interface ISnapCopyInfo :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"backupCopyInterface",
        PossibleTypes = new [] { typeof(string) })]
        string BackupCopyInterface { get; set; }
        /// <summary>True if hardware snapshot is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if hardware snapshot is enabled",
        SerializedName = @"enableHardwareSnapshot",
        PossibleTypes = new [] { typeof(bool) })]
        bool? EnableHardwareSnapshot { get; set; }
        /// <summary>True if independent disk option is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if independent disk option is enabled",
        SerializedName = @"isIndependentDisksEnabled",
        PossibleTypes = new [] { typeof(bool) })]
        bool? IsIndependentDisksEnabled { get; set; }
        /// <summary>True if raw device maps option is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if raw device maps option is enabled",
        SerializedName = @"isRawDeviceMapsEnabled",
        PossibleTypes = new [] { typeof(bool) })]
        bool? IsRawDeviceMapsEnabled { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string SnapEngineName { get; set; }
        /// <summary>Name of ESX Host</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Name of ESX Host",
        SerializedName = @"snapMountESXHost",
        PossibleTypes = new [] { typeof(string) })]
        string SnapMountEsxHost { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string SnapMountProxyName { get; set; }
        /// <summary>True if separate proxy client is used for snap to tape</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if separate proxy client is used for snap to tape",
        SerializedName = @"useSeparateProxyForSnapToTape",
        PossibleTypes = new [] { typeof(bool) })]
        bool? UseSeparateProxyForSnapToTape { get; set; }
        /// <summary>Virtual machine application user name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Virtual machine application user name",
        SerializedName = @"vmApplicationUserName",
        PossibleTypes = new [] { typeof(string) })]
        string VMApplicationUserName { get; set; }

    }
    internal partial interface ISnapCopyInfoInternal

    {
        string BackupCopyInterface { get; set; }
        /// <summary>True if hardware snapshot is enabled</summary>
        bool? EnableHardwareSnapshot { get; set; }
        /// <summary>True if independent disk option is enabled</summary>
        bool? IsIndependentDisksEnabled { get; set; }
        /// <summary>True if raw device maps option is enabled</summary>
        bool? IsRawDeviceMapsEnabled { get; set; }

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

        long? SnapEngineId { get; set; }

        string SnapEngineName { get; set; }
        /// <summary>Name of ESX Host</summary>
        string SnapMountEsxHost { get; set; }

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

        long? SnapMountProxyId { get; set; }

        string SnapMountProxyName { get; set; }
        /// <summary>True if separate proxy client is used for snap to tape</summary>
        bool? UseSeparateProxyForSnapToTape { get; set; }
        /// <summary>Virtual machine application user name</summary>
        string VMApplicationUserName { get; set; }

    }
}