generated/api/Models/VMGroupSettings.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 VMGroupSettings :
        Commvault.Powershell.Models.IVMGroupSettings,
        Commvault.Powershell.Models.IVMGroupSettingsInternal
    {

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

        /// <summary>True if empty subclient is allowed</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? AllowEmptySubclient { get => this._allowEmptySubclient; set => this._allowEmptySubclient = value; }

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

        /// <summary>True if auto detect VM Owner enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? AutoDetectVMOwner { get => this._autoDetectVMOwner; set => this._autoDetectVMOwner = value; }

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

        /// <summary>
        /// True if metadata collection is enabled for intellisnap jobs. Only applicable for Indexing v1
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? CollectFileDetailsFromSnapshotCopy { get => this._collectFileDetailsFromSnapshotCopy; set => this._collectFileDetailsFromSnapshotCopy = value; }

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

        /// <summary>True if metadata collection is enabled. Only applicable for Indexing v1</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? CollectFileDetailsforGranularRecovery { get => this._collectFileDetailsforGranularRecovery; set => this._collectFileDetailsforGranularRecovery = value; }

        /// <summary>Internal Acessors for CrossAccount</summary>
        Commvault.Powershell.Models.IAmazonCrossAccount Commvault.Powershell.Models.IVMGroupSettingsInternal.CrossAccount { get => (this._crossAccount = this._crossAccount ?? new Commvault.Powershell.Models.AmazonCrossAccount()); set { {_crossAccount = value;} } }

        /// <summary>Internal Acessors for CrossAccountDestinationAccount</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IVMGroupSettingsInternal.CrossAccountDestinationAccount { get => ((Commvault.Powershell.Models.IAmazonCrossAccountInternal)CrossAccount).DestinationAccount; set => ((Commvault.Powershell.Models.IAmazonCrossAccountInternal)CrossAccount).DestinationAccount = value; }

        /// <summary>Internal Acessors for GuestCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IVMGroupSettingsInternal.GuestCredentials { get => (this._guestCredentials = this._guestCredentials ?? new Commvault.Powershell.Models.GuestCredentialInfo()); set { {_guestCredentials = value;} } }

        /// <summary>Internal Acessors for GuestCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IVMGroupSettingsInternal.GuestCredentialsCredentials { get => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).Credentials; set => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).Credentials = value; }

        /// <summary>Internal Acessors for GuestCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IVMGroupSettingsInternal.GuestCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).SavedCredentials; set => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).SavedCredentials = value; }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CredentialsName { get => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).CredentialsName; set => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).CredentialsName = value ?? null; }

        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CredentialsPassword { get => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).CredentialsPassword; set => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).CredentialsPassword = value ?? null; }

        /// <summary>Backing field for <see cref="CrossAccount" /> property.</summary>
        private Commvault.Powershell.Models.IAmazonCrossAccount _crossAccount;

        /// <summary>AmazonCrossAccount</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IAmazonCrossAccount CrossAccount { get => (this._crossAccount = this._crossAccount ?? new Commvault.Powershell.Models.AmazonCrossAccount()); set => this._crossAccount = value; }

        /// <summary>True if full copy of amazon snapshot to different amazon account is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? CrossAccountFullCopy { get => ((Commvault.Powershell.Models.IAmazonCrossAccountInternal)CrossAccount).FullCopy; set => ((Commvault.Powershell.Models.IAmazonCrossAccountInternal)CrossAccount).FullCopy = value ?? default(bool); }

        /// <summary>
        /// True if replicate and copy or sharing of amazon snapshot to different amazon account in same or different geographic location
        /// is enabled
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? CrossAccountShareOnly { get => ((Commvault.Powershell.Models.IAmazonCrossAccountInternal)CrossAccount).ShareOnly; set => ((Commvault.Powershell.Models.IAmazonCrossAccountInternal)CrossAccount).ShareOnly = value ?? default(bool); }

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

        /// <summary>Custom snapshot resource group name for Azure</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string CustomSnapshotResourceGroup { get => this._customSnapshotResourceGroup; set => this._customSnapshotResourceGroup = value; }

        /// <summary>Backing field for <see cref="CustomSnapshotTags" /> property.</summary>
        private Commvault.Powershell.Models.IResourceTag[] _customSnapshotTags;

        /// <summary>represents custom tags to be set on snapshots</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IResourceTag[] CustomSnapshotTags { get => this._customSnapshotTags; set => this._customSnapshotTags = value; }

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

        /// <summary>True if Datastore Free space check is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? DatastoreFreespaceCheck { get => this._datastoreFreespaceCheck; set => this._datastoreFreespaceCheck = value; }

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

        /// <summary>precentage of datastore free space check value</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? DatastoreFreespaceRequired { get => this._datastoreFreespaceRequired; set => this._datastoreFreespaceRequired = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? DestinationAccountId { get => ((Commvault.Powershell.Models.IAmazonCrossAccountInternal)CrossAccount).DestinationAccountId; set => ((Commvault.Powershell.Models.IAmazonCrossAccountInternal)CrossAccount).DestinationAccountId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string DestinationAccountName { get => ((Commvault.Powershell.Models.IAmazonCrossAccountInternal)CrossAccount).DestinationAccountName; set => ((Commvault.Powershell.Models.IAmazonCrossAccountInternal)CrossAccount).DestinationAccountName = value ?? null; }

        /// <summary>Backing field for <see cref="GuestCredentials" /> property.</summary>
        private Commvault.Powershell.Models.IGuestCredentialInfo _guestCredentials;

        /// <summary>guestCredentialInfo</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IGuestCredentialInfo GuestCredentials { get => (this._guestCredentials = this._guestCredentials ?? new Commvault.Powershell.Models.GuestCredentialInfo()); set => this._guestCredentials = value; }

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

        /// <summary>Is the VM App Aware</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? IsApplicationAware { get => this._isApplicationAware; set => this._isApplicationAware = value; }

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

        /// <summary>Is VM group disk filters included in VM instance disk filters</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? IsVMGroupDiskFiltersIncluded { get => this._isVMGroupDiskFiltersIncluded; set => this._isVMGroupDiskFiltersIncluded = value; }

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

        /// <summary>Start Time for the VM Group Job</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? JobStartTime { get => this._jobStartTime; set => this._jobStartTime = value; }

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

        /// <summary>Number of readers for backup</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? NoOfReaders { get => this._noOfReaders; set => this._noOfReaders = value; }

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

        /// <summary>True when snapshot storage location is regional</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? RegionalSnapshot { get => this._regionalSnapshot; set => this._regionalSnapshot = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SavedCredentialsId { get => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).SavedCredentialsId; set => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).SavedCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SavedCredentialsName { get => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).SavedCredentialsName; set => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).SavedCredentialsName = value ?? null; }

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

        /// <summary>transport mode based on environment. Values are case sensitive</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string TransportMode { get => this._transportMode; set => this._transportMode = value; }

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

        /// <summary>True if Changed Block Tracking is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? UseChangedBlockTrackingOnVM { get => this._useChangedBlockTrackingOnVM; set => this._useChangedBlockTrackingOnVM = value; }

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

        /// <summary>True if use VM CheckPoint setting is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? UseVMCheckpointSetting { get => this._useVMCheckpointSetting; set => this._useVMCheckpointSetting = value; }

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

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

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

        }
    }
    public partial interface IVMGroupSettings :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>True if empty subclient is allowed</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if empty subclient is allowed",
        SerializedName = @"allowEmptySubclient",
        PossibleTypes = new [] { typeof(bool) })]
        bool? AllowEmptySubclient { get; set; }
        /// <summary>True if auto detect VM Owner enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if auto detect VM Owner enabled",
        SerializedName = @"autoDetectVMOwner",
        PossibleTypes = new [] { typeof(bool) })]
        bool? AutoDetectVMOwner { get; set; }
        /// <summary>
        /// True if metadata collection is enabled for intellisnap jobs. Only applicable for Indexing v1
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if metadata collection is enabled for intellisnap jobs. Only applicable for Indexing v1",
        SerializedName = @"collectFileDetailsFromSnapshotCopy",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CollectFileDetailsFromSnapshotCopy { get; set; }
        /// <summary>True if metadata collection is enabled. Only applicable for Indexing v1</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if metadata collection is enabled. Only applicable for Indexing v1",
        SerializedName = @"collectFileDetailsforGranularRecovery",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CollectFileDetailsforGranularRecovery { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string CredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string CredentialsPassword { get; set; }
        /// <summary>True if full copy of amazon snapshot to different amazon account is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if full copy of amazon snapshot to different amazon account is enabled",
        SerializedName = @"fullCopy",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CrossAccountFullCopy { get; set; }
        /// <summary>
        /// True if replicate and copy or sharing of amazon snapshot to different amazon account in same or different geographic location
        /// is enabled
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if replicate and copy or sharing of amazon snapshot to different amazon account in same or different geographic location is enabled",
        SerializedName = @"shareOnly",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CrossAccountShareOnly { get; set; }
        /// <summary>Custom snapshot resource group name for Azure</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Custom snapshot resource group name for Azure",
        SerializedName = @"customSnapshotResourceGroup",
        PossibleTypes = new [] { typeof(string) })]
        string CustomSnapshotResourceGroup { get; set; }
        /// <summary>represents custom tags to be set on snapshots</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"represents custom tags to be set on snapshots",
        SerializedName = @"customSnapshotTags",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IResourceTag) })]
        Commvault.Powershell.Models.IResourceTag[] CustomSnapshotTags { get; set; }
        /// <summary>True if Datastore Free space check is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if Datastore Free space check is enabled",
        SerializedName = @"datastoreFreespaceCheck",
        PossibleTypes = new [] { typeof(bool) })]
        bool? DatastoreFreespaceCheck { get; set; }
        /// <summary>precentage of datastore free space check value</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"precentage of datastore free space check value",
        SerializedName = @"datastoreFreespaceRequired",
        PossibleTypes = new [] { typeof(long) })]
        long? DatastoreFreespaceRequired { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string DestinationAccountName { get; set; }
        /// <summary>Is the VM App Aware</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Is the VM App Aware",
        SerializedName = @"isApplicationAware",
        PossibleTypes = new [] { typeof(bool) })]
        bool? IsApplicationAware { get; set; }
        /// <summary>Is VM group disk filters included in VM instance disk filters</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Is VM group disk filters included in VM instance disk filters",
        SerializedName = @"isVMGroupDiskFiltersIncluded",
        PossibleTypes = new [] { typeof(bool) })]
        bool? IsVMGroupDiskFiltersIncluded { get; set; }
        /// <summary>Start Time for the VM Group Job</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Start Time for the VM Group Job",
        SerializedName = @"jobStartTime",
        PossibleTypes = new [] { typeof(long) })]
        long? JobStartTime { get; set; }
        /// <summary>Number of readers for backup</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Number of readers for backup",
        SerializedName = @"noOfReaders",
        PossibleTypes = new [] { typeof(long) })]
        long? NoOfReaders { get; set; }
        /// <summary>True when snapshot storage location is regional</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True when snapshot storage location is regional",
        SerializedName = @"regionalSnapshot",
        PossibleTypes = new [] { typeof(bool) })]
        bool? RegionalSnapshot { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string SavedCredentialsName { get; set; }
        /// <summary>transport mode based on environment. Values are case sensitive</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"transport mode based on environment. Values are case sensitive",
        SerializedName = @"transportMode",
        PossibleTypes = new [] { typeof(string) })]
        string TransportMode { get; set; }
        /// <summary>True if Changed Block Tracking is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if Changed Block Tracking is enabled",
        SerializedName = @"useChangedBlockTrackingOnVM",
        PossibleTypes = new [] { typeof(bool) })]
        bool? UseChangedBlockTrackingOnVM { get; set; }
        /// <summary>True if use VM CheckPoint setting is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if use VM CheckPoint setting is enabled",
        SerializedName = @"useVMCheckpointSetting",
        PossibleTypes = new [] { typeof(bool) })]
        bool? UseVMCheckpointSetting { get; set; }

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

    }
    internal partial interface IVMGroupSettingsInternal

    {
        /// <summary>True if empty subclient is allowed</summary>
        bool? AllowEmptySubclient { get; set; }
        /// <summary>True if auto detect VM Owner enabled</summary>
        bool? AutoDetectVMOwner { get; set; }
        /// <summary>
        /// True if metadata collection is enabled for intellisnap jobs. Only applicable for Indexing v1
        /// </summary>
        bool? CollectFileDetailsFromSnapshotCopy { get; set; }
        /// <summary>True if metadata collection is enabled. Only applicable for Indexing v1</summary>
        bool? CollectFileDetailsforGranularRecovery { get; set; }
        /// <summary>username to access the network path</summary>
        string CredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string CredentialsPassword { get; set; }
        /// <summary>AmazonCrossAccount</summary>
        Commvault.Powershell.Models.IAmazonCrossAccount CrossAccount { get; set; }

        Commvault.Powershell.Models.IIdName CrossAccountDestinationAccount { get; set; }
        /// <summary>True if full copy of amazon snapshot to different amazon account is enabled</summary>
        bool? CrossAccountFullCopy { get; set; }
        /// <summary>
        /// True if replicate and copy or sharing of amazon snapshot to different amazon account in same or different geographic location
        /// is enabled
        /// </summary>
        bool? CrossAccountShareOnly { get; set; }
        /// <summary>Custom snapshot resource group name for Azure</summary>
        string CustomSnapshotResourceGroup { get; set; }
        /// <summary>represents custom tags to be set on snapshots</summary>
        Commvault.Powershell.Models.IResourceTag[] CustomSnapshotTags { get; set; }
        /// <summary>True if Datastore Free space check is enabled</summary>
        bool? DatastoreFreespaceCheck { get; set; }
        /// <summary>precentage of datastore free space check value</summary>
        long? DatastoreFreespaceRequired { get; set; }

        long? DestinationAccountId { get; set; }

        string DestinationAccountName { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo GuestCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword GuestCredentialsCredentials { get; set; }

        Commvault.Powershell.Models.IIdName GuestCredentialsSavedCredentials { get; set; }
        /// <summary>Is the VM App Aware</summary>
        bool? IsApplicationAware { get; set; }
        /// <summary>Is VM group disk filters included in VM instance disk filters</summary>
        bool? IsVMGroupDiskFiltersIncluded { get; set; }
        /// <summary>Start Time for the VM Group Job</summary>
        long? JobStartTime { get; set; }
        /// <summary>Number of readers for backup</summary>
        long? NoOfReaders { get; set; }
        /// <summary>True when snapshot storage location is regional</summary>
        bool? RegionalSnapshot { get; set; }

        long? SavedCredentialsId { get; set; }

        string SavedCredentialsName { get; set; }
        /// <summary>transport mode based on environment. Values are case sensitive</summary>
        string TransportMode { get; set; }
        /// <summary>True if Changed Block Tracking is enabled</summary>
        bool? UseChangedBlockTrackingOnVM { get; set; }
        /// <summary>True if use VM CheckPoint setting is enabled</summary>
        bool? UseVMCheckpointSetting { get; set; }

        string VMBackupType { get; set; }

    }
}