generated/api/Models/UpdateVMProperties.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;

    /// <summary>UpdateVMProperties</summary>
    public partial class UpdateVMProperties :
        Commvault.Powershell.Models.IUpdateVMProperties,
        Commvault.Powershell.Models.IUpdateVMPropertiesInternal
    {

        /// <summary>Backing field for <see cref="AuthKeyRestore" /> property.</summary>
        private Commvault.Powershell.Models.IUpdateAuthRestore _authKeyRestore;

        /// <summary>UpdateAuthRestore</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IUpdateAuthRestore AuthKeyRestore { get => (this._authKeyRestore = this._authKeyRestore ?? new Commvault.Powershell.Models.UpdateAuthRestore()); set => this._authKeyRestore = value; }

        /// <summary>The type of authorize for restore operation</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? AuthKeyRestoreAuthOpType { get => ((Commvault.Powershell.Models.IUpdateAuthRestoreInternal)AuthKeyRestore).AuthOpType; set => ((Commvault.Powershell.Models.IUpdateAuthRestoreInternal)AuthKeyRestore).AuthOpType = value ?? default(bool); }

        /// <summary>
        /// The duration(in unix time) for which a user can continue browsing and restoring backup data without being prompted to
        /// enter the passkey, again.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? AuthKeyRestoreExpirationTime { get => ((Commvault.Powershell.Models.IUpdateAuthRestoreInternal)AuthKeyRestore).ExpirationTime; set => ((Commvault.Powershell.Models.IUpdateAuthRestoreInternal)AuthKeyRestore).ExpirationTime = value ?? default(long); }

        /// <summary>The existing passkey for restricting backup restores.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AuthKeyRestorePassKey { get => ((Commvault.Powershell.Models.IUpdateAuthRestoreInternal)AuthKeyRestore).PassKey; set => ((Commvault.Powershell.Models.IUpdateAuthRestoreInternal)AuthKeyRestore).PassKey = value ?? null; }

        /// <summary>Internal Acessors for AuthKeyRestore</summary>
        Commvault.Powershell.Models.IUpdateAuthRestore Commvault.Powershell.Models.IUpdateVMPropertiesInternal.AuthKeyRestore { get => (this._authKeyRestore = this._authKeyRestore ?? new Commvault.Powershell.Models.UpdateAuthRestore()); set { {_authKeyRestore = value;} } }

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

        /// <summary>Internal Acessors for RequirePasskeyForRestore</summary>
        Commvault.Powershell.Models.IUpdatePassKey Commvault.Powershell.Models.IUpdateVMPropertiesInternal.RequirePasskeyForRestore { get => (this._requirePasskeyForRestore = this._requirePasskeyForRestore ?? new Commvault.Powershell.Models.UpdatePassKey()); set { {_requirePasskeyForRestore = value;} } }

        /// <summary>Internal Acessors for Security</summary>
        Commvault.Powershell.Models.IVMSecurity Commvault.Powershell.Models.IUpdateVMPropertiesInternal.Security { get => (this._security = this._security ?? new Commvault.Powershell.Models.VMSecurity()); set { {_security = value;} } }

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

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

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

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

        /// <summary>Backing field for <see cref="RequirePasskeyForRestore" /> property.</summary>
        private Commvault.Powershell.Models.IUpdatePassKey _requirePasskeyForRestore;

        /// <summary>Model to create, edit or disable passkey</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IUpdatePassKey RequirePasskeyForRestore { get => (this._requirePasskeyForRestore = this._requirePasskeyForRestore ?? new Commvault.Powershell.Models.UpdatePassKey()); set => this._requirePasskeyForRestore = value; }

        /// <summary>Confirm the new passkey for restricting backup restores.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RequirePasskeyForRestoreConfirmPassKey { get => ((Commvault.Powershell.Models.IUpdatePassKeyInternal)RequirePasskeyForRestore).ConfirmPassKey; set => ((Commvault.Powershell.Models.IUpdatePassKeyInternal)RequirePasskeyForRestore).ConfirmPassKey = value ?? null; }

        /// <summary>The current passkey for restricting backup restores.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RequirePasskeyForRestoreCurrentPassKey { get => ((Commvault.Powershell.Models.IUpdatePassKeyInternal)RequirePasskeyForRestore).CurrentPassKey; set => ((Commvault.Powershell.Models.IUpdatePassKeyInternal)RequirePasskeyForRestore).CurrentPassKey = value ?? null; }

        /// <summary>The new passkey for restricting backup restores.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RequirePasskeyForRestoreNewPassKey { get => ((Commvault.Powershell.Models.IUpdatePassKeyInternal)RequirePasskeyForRestore).NewPassKey; set => ((Commvault.Powershell.Models.IUpdatePassKeyInternal)RequirePasskeyForRestore).NewPassKey = value ?? null; }

        /// <summary>The type of passkey operation</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RequirePasskeyForRestoreOperationType { get => ((Commvault.Powershell.Models.IUpdatePassKeyInternal)RequirePasskeyForRestore).OperationType; set => ((Commvault.Powershell.Models.IUpdatePassKeyInternal)RequirePasskeyForRestore).OperationType = value ?? null; }

        /// <summary>Backing field for <see cref="Security" /> property.</summary>
        private Commvault.Powershell.Models.IVMSecurity _security;

        /// <summary>VMSecurity</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IVMSecurity Security { get => (this._security = this._security ?? new Commvault.Powershell.Models.VMSecurity()); set => this._security = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IVMSecurityAssoc[] SecurityAssociations { get => ((Commvault.Powershell.Models.IVMSecurityInternal)Security).Associations; set => ((Commvault.Powershell.Models.IVMSecurityInternal)Security).Associations = value ?? null /* arrayOf */; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.ISecurityOwnersAssoc[] SecurityOwners { get => ((Commvault.Powershell.Models.IVMSecurityInternal)Security).Owners; set => ((Commvault.Powershell.Models.IVMSecurityInternal)Security).Owners = value ?? null /* arrayOf */; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IPermissionResp[] SecurityPermissions { get => ((Commvault.Powershell.Models.IVMSecurityInternal)Security).Permissions; set => ((Commvault.Powershell.Models.IVMSecurityInternal)Security).Permissions = value ?? null /* arrayOf */; }

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

        }
    }
    /// UpdateVMProperties
    public partial interface IUpdateVMProperties :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>The type of authorize for restore operation</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The type of authorize for restore operation",
        SerializedName = @"authOpType",
        PossibleTypes = new [] { typeof(bool) })]
        bool? AuthKeyRestoreAuthOpType { get; set; }
        /// <summary>
        /// The duration(in unix time) for which a user can continue browsing and restoring backup data without being prompted to
        /// enter the passkey, again.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The duration(in unix time) for which a user can continue browsing and restoring backup data without being prompted to enter the passkey, again.",
        SerializedName = @"expirationTime",
        PossibleTypes = new [] { typeof(long) })]
        long? AuthKeyRestoreExpirationTime { get; set; }
        /// <summary>The existing passkey for restricting backup restores.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The existing passkey for restricting backup restores.",
        SerializedName = @"passKey",
        PossibleTypes = new [] { typeof(string) })]
        string AuthKeyRestorePassKey { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PlanName { get; set; }
        /// <summary>Confirm the new passkey for restricting backup restores.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Confirm the new passkey for restricting backup restores.",
        SerializedName = @"confirmPassKey",
        PossibleTypes = new [] { typeof(string) })]
        string RequirePasskeyForRestoreConfirmPassKey { get; set; }
        /// <summary>The current passkey for restricting backup restores.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The current passkey for restricting backup restores.",
        SerializedName = @"currentPassKey",
        PossibleTypes = new [] { typeof(string) })]
        string RequirePasskeyForRestoreCurrentPassKey { get; set; }
        /// <summary>The new passkey for restricting backup restores.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The new passkey for restricting backup restores.",
        SerializedName = @"newPassKey",
        PossibleTypes = new [] { typeof(string) })]
        string RequirePasskeyForRestoreNewPassKey { get; set; }
        /// <summary>The type of passkey operation</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The type of passkey operation",
        SerializedName = @"operationType",
        PossibleTypes = new [] { typeof(string) })]
        string RequirePasskeyForRestoreOperationType { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"associations",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IVMSecurityAssoc) })]
        Commvault.Powershell.Models.IVMSecurityAssoc[] SecurityAssociations { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"owners",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.ISecurityOwnersAssoc) })]
        Commvault.Powershell.Models.ISecurityOwnersAssoc[] SecurityOwners { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"permissions",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IPermissionResp) })]
        Commvault.Powershell.Models.IPermissionResp[] SecurityPermissions { get; set; }

    }
    /// UpdateVMProperties
    internal partial interface IUpdateVMPropertiesInternal

    {
        /// <summary>UpdateAuthRestore</summary>
        Commvault.Powershell.Models.IUpdateAuthRestore AuthKeyRestore { get; set; }
        /// <summary>The type of authorize for restore operation</summary>
        bool? AuthKeyRestoreAuthOpType { get; set; }
        /// <summary>
        /// The duration(in unix time) for which a user can continue browsing and restoring backup data without being prompted to
        /// enter the passkey, again.
        /// </summary>
        long? AuthKeyRestoreExpirationTime { get; set; }
        /// <summary>The existing passkey for restricting backup restores.</summary>
        string AuthKeyRestorePassKey { get; set; }

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

        long? PlanId { get; set; }

        string PlanName { get; set; }
        /// <summary>Model to create, edit or disable passkey</summary>
        Commvault.Powershell.Models.IUpdatePassKey RequirePasskeyForRestore { get; set; }
        /// <summary>Confirm the new passkey for restricting backup restores.</summary>
        string RequirePasskeyForRestoreConfirmPassKey { get; set; }
        /// <summary>The current passkey for restricting backup restores.</summary>
        string RequirePasskeyForRestoreCurrentPassKey { get; set; }
        /// <summary>The new passkey for restricting backup restores.</summary>
        string RequirePasskeyForRestoreNewPassKey { get; set; }
        /// <summary>The type of passkey operation</summary>
        string RequirePasskeyForRestoreOperationType { get; set; }
        /// <summary>VMSecurity</summary>
        Commvault.Powershell.Models.IVMSecurity Security { get; set; }

        Commvault.Powershell.Models.IVMSecurityAssoc[] SecurityAssociations { get; set; }

        Commvault.Powershell.Models.ISecurityOwnersAssoc[] SecurityOwners { get; set; }

        Commvault.Powershell.Models.IPermissionResp[] SecurityPermissions { get; set; }

    }
}