generated/api/Models/AzureCredentialInfoWithCertificate.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.10.2, generator: @autorest/powershell@4.0.708)
// 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>
    /// Applicable only for Cloud Accounts with Microsoft Azure vendor and authType as IAM AD Application Role Assignment
    /// </summary>
    public partial class AzureCredentialInfoWithCertificate :
        Commvault.Powershell.Models.IAzureCredentialInfoWithCertificate,
        Commvault.Powershell.Models.IAzureCredentialInfoWithCertificateInternal,
        Commvault.Powershell.Runtime.IValidates
    {
        /// <summary>
        /// Backing field for Inherited model <see cref= "Commvault.Powershell.Models.ICommonCredentialInfo" />
        /// </summary>
        private Commvault.Powershell.Models.ICommonCredentialInfo __commonCredentialInfo = new Commvault.Powershell.Models.CommonCredentialInfo();

        /// <summary>
        /// Backing field for Inherited model <see cref= "Commvault.Powershell.Models.ICreateCredential" />
        /// </summary>
        private Commvault.Powershell.Models.ICreateCredential __createCredential = new Commvault.Powershell.Models.CreateCredential();

        /// <summary>CredentialAccountType</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string AccountType { get => ((Commvault.Powershell.Models.ICreateCredentialInternal)__createCredential).AccountType; set => ((Commvault.Powershell.Models.ICreateCredentialInternal)__createCredential).AccountType = value ; }

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

        /// <summary>Password of the certificate and must be in base64 encoded format.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string ApplicationCertificatePassword { get => this._applicationCertificatePassword; set => this._applicationCertificatePassword = value; }

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

        /// <summary>Unique Azure application ID</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string ApplicationId { get => this._applicationId; set => this._applicationId = value; }

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

        /// <summary>Application secret of Credential and must be in base64 encoded format.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string ApplicationSecret { get => this._applicationSecret; set => this._applicationSecret = value; }

        /// <summary>Backing field for <see cref="AuthType" /> property.</summary>
        private string _authType= @"AZUREACCOUNT";

        /// <summary>
        /// Aunthentication type applicable only for Cloud Accounts with Microsoft Azure as vendor.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string AuthType { get => this._authType; }

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

        /// <summary>
        /// Content of the certificate file. It should be base64 encoded. Accepted fileTypes are pfx, p12.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Certificate { get => this._certificate; set => this._certificate = value; }

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

        /// <summary>Thumbprint of the certificate file.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string CertificateThumbprint { get => this._certificateThumbprint; set => this._certificateThumbprint = value; }

        /// <summary>Internal Acessors for AuthType</summary>
        string Commvault.Powershell.Models.IAzureCredentialInfoWithCertificateInternal.AuthType { get => this._authType; set { {_authType = value;} } }

        /// <summary>Internal Acessors for Endpoints</summary>
        Commvault.Powershell.Models.IAzureEndpoints Commvault.Powershell.Models.IAzureCredentialInfoWithCertificateInternal.Endpoints { get => (this._endpoints = this._endpoints ?? new Commvault.Powershell.Models.AzureEndpoints()); set { {_endpoints = value;} } }

        /// <summary>Internal Acessors for OwnerUser</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.ICommonCredentialInfoInternal.OwnerUser { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).OwnerUser; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).OwnerUser = value; }

        /// <summary>Internal Acessors for OwnerUserGroup</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.ICommonCredentialInfoInternal.OwnerUserGroup { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).OwnerUserGroup; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).OwnerUserGroup = value; }

        /// <summary>Internal Acessors for Security</summary>
        Commvault.Powershell.Models.ICredentialSecurity Commvault.Powershell.Models.ICommonCredentialInfoInternal.Security { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).Security; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).Security = value; }

        /// <summary>Internal Acessors for SecurityOwner</summary>
        Commvault.Powershell.Models.ICredentialOwner Commvault.Powershell.Models.ICommonCredentialInfoInternal.SecurityOwner { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).SecurityOwner; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).SecurityOwner = value; }

        /// <summary>Description of Credential</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string Description { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).Description; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).Description = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string EndpointActiveDirectory { get => ((Commvault.Powershell.Models.IAzureEndpointsInternal)Endpoints).ActiveDirectory; set => ((Commvault.Powershell.Models.IAzureEndpointsInternal)Endpoints).ActiveDirectory = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string EndpointResourceManager { get => ((Commvault.Powershell.Models.IAzureEndpointsInternal)Endpoints).ResourceManager; set => ((Commvault.Powershell.Models.IAzureEndpointsInternal)Endpoints).ResourceManager = value ?? null; }

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

        /// <summary>Backing field for <see cref="Endpoints" /> property.</summary>
        private Commvault.Powershell.Models.IAzureEndpoints _endpoints;

        /// <summary>Endpoints for Aunthentication, Storage and Management</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IAzureEndpoints Endpoints { get => (this._endpoints = this._endpoints ?? new Commvault.Powershell.Models.AzureEndpoints()); set => this._endpoints = value; }

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

        /// <summary>Azure cloud deployed region</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Environment { get => this._environment; set => this._environment = value; }

        /// <summary>Name of Credential</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string Name { get => ((Commvault.Powershell.Models.ICreateCredentialInternal)__createCredential).Name; set => ((Commvault.Powershell.Models.ICreateCredentialInternal)__createCredential).Name = value ; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        internal Commvault.Powershell.Models.IIdName OwnerUser { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).OwnerUser; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).OwnerUser = value ?? null /* model class */; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        internal Commvault.Powershell.Models.IIdName OwnerUserGroup { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).OwnerUserGroup; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).OwnerUserGroup = value ?? null /* model class */; }

        /// <summary>Security association of a list of users and user groups</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        internal Commvault.Powershell.Models.ICredentialSecurity Security { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).Security; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).Security = value ?? null /* model class */; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public System.Collections.Generic.List<Commvault.Powershell.Models.ICredentialSecurityAssociations> SecurityAssociations { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).SecurityAssociations; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).SecurityAssociations = value ?? null /* arrayOf */; }

        /// <summary>Owner of a credential can be a user or user group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        internal Commvault.Powershell.Models.ICredentialOwner SecurityOwner { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).SecurityOwner; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).SecurityOwner = value ?? null /* model class */; }

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

        /// <summary>Unique Azure active directory ID</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string TenantId { get => this._tenantId; set => this._tenantId = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public long? UserGroupId { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).UserGroupId; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).UserGroupId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string UserGroupName { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).UserGroupName; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).UserGroupName = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public long? UserId { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).UserId; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).UserId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string UserName { get => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).UserName; set => ((Commvault.Powershell.Models.ICommonCredentialInfoInternal)__commonCredentialInfo).UserName = value ?? null; }

        /// <summary>Cloud vendor types appilcable only for Cloud Account type</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string VendorType { get => ((Commvault.Powershell.Models.ICreateCredentialInternal)__createCredential).VendorType; set => ((Commvault.Powershell.Models.ICreateCredentialInternal)__createCredential).VendorType = value ?? null; }

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

        }

        /// <summary>Validates that this object meets the validation criteria.</summary>
        /// <param name="eventListener">an <see cref="Commvault.Powershell.Runtime.IEventListener" /> instance that will receive validation
        /// events.</param>
        /// <returns>
        /// A <see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed.
        /// </returns>
        public async global::System.Threading.Tasks.Task Validate(Commvault.Powershell.Runtime.IEventListener eventListener)
        {
            await eventListener.AssertNotNull(nameof(__createCredential), __createCredential);
            await eventListener.AssertObjectIsValid(nameof(__createCredential), __createCredential);
            await eventListener.AssertNotNull(nameof(__commonCredentialInfo), __commonCredentialInfo);
            await eventListener.AssertObjectIsValid(nameof(__commonCredentialInfo), __commonCredentialInfo);
        }
    }
    /// Applicable only for Cloud Accounts with Microsoft Azure vendor and authType as IAM AD Application Role Assignment
    public partial interface IAzureCredentialInfoWithCertificate :
        Commvault.Powershell.Runtime.IJsonSerializable,
        Commvault.Powershell.Models.ICreateCredential,
        Commvault.Powershell.Models.ICommonCredentialInfo
    {
        /// <summary>Password of the certificate and must be in base64 encoded format.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = true,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Password of the certificate and must be in base64 encoded format.",
        SerializedName = @"applicationCertificatePassword",
        PossibleTypes = new [] { typeof(string) })]
        string ApplicationCertificatePassword { get; set; }
        /// <summary>Unique Azure application ID</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = true,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Unique Azure application ID",
        SerializedName = @"applicationId",
        PossibleTypes = new [] { typeof(string) })]
        string ApplicationId { get; set; }
        /// <summary>Application secret of Credential and must be in base64 encoded format.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = true,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Application secret of Credential and must be in base64 encoded format.",
        SerializedName = @"applicationSecret",
        PossibleTypes = new [] { typeof(string) })]
        string ApplicationSecret { get; set; }
        /// <summary>
        /// Aunthentication type applicable only for Cloud Accounts with Microsoft Azure as vendor.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = true,
        ReadOnly = true,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Aunthentication type applicable only for Cloud Accounts with Microsoft Azure as vendor.",
        SerializedName = @"authType",
        PossibleTypes = new [] { typeof(string) })]
        string AuthType { get; }
        /// <summary>
        /// Content of the certificate file. It should be base64 encoded. Accepted fileTypes are pfx, p12.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = true,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Content of the certificate file. It should be base64 encoded. Accepted fileTypes are pfx, p12.",
        SerializedName = @"certificate",
        PossibleTypes = new [] { typeof(string) })]
        string Certificate { get; set; }
        /// <summary>Thumbprint of the certificate file.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = true,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Thumbprint of the certificate file.",
        SerializedName = @"certificateThumbprint",
        PossibleTypes = new [] { typeof(string) })]
        string CertificateThumbprint { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"activeDirectory",
        PossibleTypes = new [] { typeof(string) })]
        string EndpointActiveDirectory { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"resourceManager",
        PossibleTypes = new [] { typeof(string) })]
        string EndpointResourceManager { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"storage",
        PossibleTypes = new [] { typeof(string) })]
        string EndpointStorage { get; set; }
        /// <summary>Azure cloud deployed region</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = true,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Azure cloud deployed region",
        SerializedName = @"environment",
        PossibleTypes = new [] { typeof(string) })]
        string Environment { get; set; }
        /// <summary>Unique Azure active directory ID</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = true,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Unique Azure active directory ID",
        SerializedName = @"tenantId",
        PossibleTypes = new [] { typeof(string) })]
        string TenantId { get; set; }

    }
    /// Applicable only for Cloud Accounts with Microsoft Azure vendor and authType as IAM AD Application Role Assignment
    internal partial interface IAzureCredentialInfoWithCertificateInternal :
        Commvault.Powershell.Models.ICreateCredentialInternal,
        Commvault.Powershell.Models.ICommonCredentialInfoInternal
    {
        /// <summary>Password of the certificate and must be in base64 encoded format.</summary>
        string ApplicationCertificatePassword { get; set; }
        /// <summary>Unique Azure application ID</summary>
        string ApplicationId { get; set; }
        /// <summary>Application secret of Credential and must be in base64 encoded format.</summary>
        string ApplicationSecret { get; set; }
        /// <summary>
        /// Aunthentication type applicable only for Cloud Accounts with Microsoft Azure as vendor.
        /// </summary>
        string AuthType { get; set; }
        /// <summary>
        /// Content of the certificate file. It should be base64 encoded. Accepted fileTypes are pfx, p12.
        /// </summary>
        string Certificate { get; set; }
        /// <summary>Thumbprint of the certificate file.</summary>
        string CertificateThumbprint { get; set; }

        string EndpointActiveDirectory { get; set; }

        string EndpointResourceManager { get; set; }

        string EndpointStorage { get; set; }
        /// <summary>Endpoints for Aunthentication, Storage and Management</summary>
        Commvault.Powershell.Models.IAzureEndpoints Endpoints { get; set; }
        /// <summary>Azure cloud deployed region</summary>
        string Environment { get; set; }
        /// <summary>Unique Azure active directory ID</summary>
        string TenantId { get; set; }

    }
}