generated/api/Models/SamlUpdate.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>Updates SAML details</summary>
    public partial class SamlUpdate :
        Commvault.Powershell.Models.ISamlUpdate,
        Commvault.Powershell.Models.ISamlUpdateInternal
    {

        /// <summary>Companies associated with SAML</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IIdName[] AssociationCompanies { get => ((Commvault.Powershell.Models.ISamlAssociationsInternal)Associations).Companies; set => ((Commvault.Powershell.Models.ISamlAssociationsInternal)Associations).Companies = value ?? null /* arrayOf */; }

        /// <summary>Domains associated with SAML</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IIdName[] AssociationDomains { get => ((Commvault.Powershell.Models.ISamlAssociationsInternal)Associations).Domains; set => ((Commvault.Powershell.Models.ISamlAssociationsInternal)Associations).Domains = value ?? null /* arrayOf */; }

        /// <summary>Email suffixes associated with SAML</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string[] AssociationEmailSuffixes { get => ((Commvault.Powershell.Models.ISamlAssociationsInternal)Associations).EmailSuffixes; set => ((Commvault.Powershell.Models.ISamlAssociationsInternal)Associations).EmailSuffixes = value ?? null /* arrayOf */; }

        /// <summary>user groups associated with SAML</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IIdName[] AssociationUserGroups { get => ((Commvault.Powershell.Models.ISamlAssociationsInternal)Associations).UserGroups; set => ((Commvault.Powershell.Models.ISamlAssociationsInternal)Associations).UserGroups = value ?? null /* arrayOf */; }

        /// <summary>Backing field for <see cref="Associations" /> property.</summary>
        private Commvault.Powershell.Models.ISamlAssociations _associations;

        /// <summary>SAMLAssociations</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.ISamlAssociations Associations { get => (this._associations = this._associations ?? new Commvault.Powershell.Models.SamlAssociations()); set => this._associations = value; }

        /// <summary>Backing field for <see cref="AttributeMappings" /> property.</summary>
        private Commvault.Powershell.Models.ISamlAttributes[] _attributeMappings;

        /// <summary>attribute mapping details</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.ISamlAttributes[] AttributeMappings { get => this._attributeMappings; set => this._attributeMappings = value; }

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

        /// <summary>
        /// This auto-creates non-existing user if the user detail match with the identity rule.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? AutoCreateUser { get => this._autoCreateUser; set => this._autoCreateUser = value; }

        /// <summary>Internal Acessors for Associations</summary>
        Commvault.Powershell.Models.ISamlAssociations Commvault.Powershell.Models.ISamlUpdateInternal.Associations { get => (this._associations = this._associations ?? new Commvault.Powershell.Models.SamlAssociations()); set { {_associations = value;} } }

        /// <summary>Internal Acessors for IdentityProviderMetaData</summary>
        Commvault.Powershell.Models.ISamlidpMetaDataReq Commvault.Powershell.Models.ISamlUpdateInternal.IdentityProviderMetaData { get => (this._identityProviderMetaData = this._identityProviderMetaData ?? new Commvault.Powershell.Models.SamlidpMetaDataReq()); set { {_identityProviderMetaData = value;} } }

        /// <summary>Internal Acessors for ServiceProviderMetaData</summary>
        Commvault.Powershell.Models.ISamlspMetaData Commvault.Powershell.Models.ISamlUpdateInternal.ServiceProviderMetaData { get => (this._serviceProviderMetaData = this._serviceProviderMetaData ?? new Commvault.Powershell.Models.SamlspMetaData()); set { {_serviceProviderMetaData = value;} } }

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

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

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

        /// <summary>Boolean to indicate whether SAML is enabled.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? Enabled { get => this._enabled; set => this._enabled = value; }

        /// <summary>Backing field for <see cref="IdentityProviderMetaData" /> property.</summary>
        private Commvault.Powershell.Models.ISamlidpMetaDataReq _identityProviderMetaData;

        /// <summary>SAML IDP meta data request</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.ISamlidpMetaDataReq IdentityProviderMetaData { get => (this._identityProviderMetaData = this._identityProviderMetaData ?? new Commvault.Powershell.Models.SamlidpMetaDataReq()); set => this._identityProviderMetaData = value; }

        /// <summary>IDP certificate public key</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string IdentityProviderMetaDataCertificateData { get => ((Commvault.Powershell.Models.ISamlidpMetaDataReqInternal)IdentityProviderMetaData).CertificateData; set => ((Commvault.Powershell.Models.ISamlidpMetaDataReqInternal)IdentityProviderMetaData).CertificateData = value ?? null; }

        /// <summary>Identity provider entity</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string IdentityProviderMetaDataEntityId { get => ((Commvault.Powershell.Models.ISamlidpMetaDataReqInternal)IdentityProviderMetaData).EntityId; set => ((Commvault.Powershell.Models.ISamlidpMetaDataReqInternal)IdentityProviderMetaData).EntityId = value ?? null; }

        /// <summary>Identity Provider log-out URL</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string IdentityProviderMetaDataLogoutUrl { get => ((Commvault.Powershell.Models.ISamlidpMetaDataReqInternal)IdentityProviderMetaData).LogoutUrl; set => ((Commvault.Powershell.Models.ISamlidpMetaDataReqInternal)IdentityProviderMetaData).LogoutUrl = value ?? null; }

        /// <summary>Identity provider redirect URL</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string IdentityProviderMetaDataRedirectUrl { get => ((Commvault.Powershell.Models.ISamlidpMetaDataReqInternal)IdentityProviderMetaData).RedirectUrl; set => ((Commvault.Powershell.Models.ISamlidpMetaDataReqInternal)IdentityProviderMetaData).RedirectUrl = value ?? null; }

        /// <summary>SAML Protocol version</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string IdentityProviderMetaDataSamlProtocolVersion { get => ((Commvault.Powershell.Models.ISamlidpMetaDataReqInternal)IdentityProviderMetaData).SamlProtocolVersion; set => ((Commvault.Powershell.Models.ISamlidpMetaDataReqInternal)IdentityProviderMetaData).SamlProtocolVersion = value ?? null; }

        /// <summary>IDP's secondary certificate</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string IdentityProviderMetaDataSecondaryCertificateData { get => ((Commvault.Powershell.Models.ISamlidpMetaDataReqInternal)IdentityProviderMetaData).SecondaryCertificateData; set => ((Commvault.Powershell.Models.ISamlidpMetaDataReqInternal)IdentityProviderMetaData).SecondaryCertificateData = value ?? null; }

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

        /// <summary>nameID in SAML assertion subject is used to perform login.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string NameIdAttribute { get => this._nameIdAttribute; set => this._nameIdAttribute = value; }

        /// <summary>Backing field for <see cref="ServiceProviderMetaData" /> property.</summary>
        private Commvault.Powershell.Models.ISamlspMetaData _serviceProviderMetaData;

        /// <summary>SAML service provider meta data</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.ISamlspMetaData ServiceProviderMetaData { get => (this._serviceProviderMetaData = this._serviceProviderMetaData ?? new Commvault.Powershell.Models.SamlspMetaData()); set => this._serviceProviderMetaData = value; }

        /// <summary>certificate alias name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string ServiceProviderMetaDataAliasName { get => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).AliasName; set => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).AliasName = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? ServiceProviderMetaDataAutoGenerateSpMetaData { get => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).AutoGenerateSpMetaData; set => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).AutoGenerateSpMetaData = value ?? default(bool); }

        /// <summary>certificate alias name.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string ServiceProviderMetaDataCertificateData { get => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).CertificateData; set => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).CertificateData = value ?? null; }

        /// <summary>jks file contents as byte array</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string[] ServiceProviderMetaDataJksFileContents { get => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).JksFileContents; set => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).JksFileContents = value ?? null /* arrayOf */; }

        /// <summary>key store password.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string ServiceProviderMetaDataJksPrivateKey { get => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).JksPrivateKey; set => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).JksPrivateKey = value ?? null; }

        /// <summary>jks contents key store password.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string ServiceProviderMetaDataKeyStorePassword { get => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).KeyStorePassword; set => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).KeyStorePassword = value ?? null; }

        /// <summary>certificate private key password</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string ServiceProviderMetaDataPrivateKeyPassword { get => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).PrivateKeyPassword; set => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).PrivateKeyPassword = value ?? null; }

        /// <summary>web console URL.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string ServiceProviderMetaDataServiceProviderEndpoint { get => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).ServiceProviderEndpoint; set => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).ServiceProviderEndpoint = value ?? null; }

        /// <summary>web console URL list.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string[] ServiceProviderMetaDataSpAliases { get => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).SpAliases; set => ((Commvault.Powershell.Models.ISamlspMetaDataInternal)ServiceProviderMetaData).SpAliases = value ?? null /* arrayOf */; }

        /// <summary>Backing field for <see cref="UserGroups" /> property.</summary>
        private Commvault.Powershell.Models.ICompanyWithUserGroupAssocDetails[] _userGroups;

        /// <summary>
        /// By default, auto-created users will be associated to the Tenant Users group of the company. Add mapping to override this
        /// behaviour for a company.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.ICompanyWithUserGroupAssocDetails[] UserGroups { get => this._userGroups; set => this._userGroups = value; }

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

        }
    }
    /// Updates SAML details
    public partial interface ISamlUpdate :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>Companies associated with SAML</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Companies associated with SAML",
        SerializedName = @"companies",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] AssociationCompanies { get; set; }
        /// <summary>Domains associated with SAML</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Domains associated with SAML",
        SerializedName = @"domains",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] AssociationDomains { get; set; }
        /// <summary>Email suffixes associated with SAML</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Email suffixes associated with SAML",
        SerializedName = @"emailSuffixes",
        PossibleTypes = new [] { typeof(string) })]
        string[] AssociationEmailSuffixes { get; set; }
        /// <summary>user groups associated with SAML</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"user groups associated with SAML",
        SerializedName = @"userGroups",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] AssociationUserGroups { get; set; }
        /// <summary>attribute mapping details</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"attribute mapping details",
        SerializedName = @"attributeMappings",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.ISamlAttributes) })]
        Commvault.Powershell.Models.ISamlAttributes[] AttributeMappings { get; set; }
        /// <summary>
        /// This auto-creates non-existing user if the user detail match with the identity rule.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"This auto-creates non-existing user if the user detail match with the identity rule.",
        SerializedName = @"autoCreateUser",
        PossibleTypes = new [] { typeof(bool) })]
        bool? AutoCreateUser { get; set; }
        /// <summary>SAML description</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"SAML description",
        SerializedName = @"description",
        PossibleTypes = new [] { typeof(string) })]
        string Description { get; set; }
        /// <summary>Boolean to indicate whether SAML is enabled.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Boolean to indicate whether SAML is enabled.",
        SerializedName = @"enabled",
        PossibleTypes = new [] { typeof(bool) })]
        bool? Enabled { get; set; }
        /// <summary>IDP certificate public key</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"IDP certificate public key",
        SerializedName = @"certificateData",
        PossibleTypes = new [] { typeof(string) })]
        string IdentityProviderMetaDataCertificateData { get; set; }
        /// <summary>Identity provider entity</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Identity provider entity",
        SerializedName = @"entityId",
        PossibleTypes = new [] { typeof(string) })]
        string IdentityProviderMetaDataEntityId { get; set; }
        /// <summary>Identity Provider log-out URL</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Identity Provider log-out URL",
        SerializedName = @"logoutUrl",
        PossibleTypes = new [] { typeof(string) })]
        string IdentityProviderMetaDataLogoutUrl { get; set; }
        /// <summary>Identity provider redirect URL</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Identity provider redirect URL",
        SerializedName = @"redirectUrl",
        PossibleTypes = new [] { typeof(string) })]
        string IdentityProviderMetaDataRedirectUrl { get; set; }
        /// <summary>SAML Protocol version</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"SAML Protocol version ",
        SerializedName = @"SAMLProtocolVersion",
        PossibleTypes = new [] { typeof(string) })]
        string IdentityProviderMetaDataSamlProtocolVersion { get; set; }
        /// <summary>IDP's secondary certificate</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"IDP's secondary certificate",
        SerializedName = @"secondaryCertificateData",
        PossibleTypes = new [] { typeof(string) })]
        string IdentityProviderMetaDataSecondaryCertificateData { get; set; }
        /// <summary>nameID in SAML assertion subject is used to perform login.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"nameID in SAML assertion subject is used to perform login.",
        SerializedName = @"nameIDAttribute",
        PossibleTypes = new [] { typeof(string) })]
        string NameIdAttribute { get; set; }
        /// <summary>certificate alias name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"certificate alias name",
        SerializedName = @"aliasName",
        PossibleTypes = new [] { typeof(string) })]
        string ServiceProviderMetaDataAliasName { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"autoGenerateSPMetaData",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ServiceProviderMetaDataAutoGenerateSpMetaData { get; set; }
        /// <summary>certificate alias name.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"certificate alias name.",
        SerializedName = @"certificateData",
        PossibleTypes = new [] { typeof(string) })]
        string ServiceProviderMetaDataCertificateData { get; set; }
        /// <summary>jks file contents as byte array</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"jks file contents as byte array",
        SerializedName = @"jksFileContents",
        PossibleTypes = new [] { typeof(string) })]
        string[] ServiceProviderMetaDataJksFileContents { get; set; }
        /// <summary>key store password.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"key store password.",
        SerializedName = @"JKSPrivateKey",
        PossibleTypes = new [] { typeof(string) })]
        string ServiceProviderMetaDataJksPrivateKey { get; set; }
        /// <summary>jks contents key store password.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"jks contents key store password.",
        SerializedName = @"keyStorePassword",
        PossibleTypes = new [] { typeof(string) })]
        string ServiceProviderMetaDataKeyStorePassword { get; set; }
        /// <summary>certificate private key password</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"certificate private key password",
        SerializedName = @"privateKeyPassword",
        PossibleTypes = new [] { typeof(string) })]
        string ServiceProviderMetaDataPrivateKeyPassword { get; set; }
        /// <summary>web console URL.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"web console URL.",
        SerializedName = @"serviceProviderEndpoint",
        PossibleTypes = new [] { typeof(string) })]
        string ServiceProviderMetaDataServiceProviderEndpoint { get; set; }
        /// <summary>web console URL list.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"web console URL list.",
        SerializedName = @"spAliases",
        PossibleTypes = new [] { typeof(string) })]
        string[] ServiceProviderMetaDataSpAliases { get; set; }
        /// <summary>
        /// By default, auto-created users will be associated to the Tenant Users group of the company. Add mapping to override this
        /// behaviour for a company.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"By default, auto-created users will be associated to the Tenant Users group of the company. Add mapping to override this behaviour for a company.",
        SerializedName = @"userGroups",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.ICompanyWithUserGroupAssocDetails) })]
        Commvault.Powershell.Models.ICompanyWithUserGroupAssocDetails[] UserGroups { get; set; }

    }
    /// Updates SAML details
    internal partial interface ISamlUpdateInternal

    {
        /// <summary>Companies associated with SAML</summary>
        Commvault.Powershell.Models.IIdName[] AssociationCompanies { get; set; }
        /// <summary>Domains associated with SAML</summary>
        Commvault.Powershell.Models.IIdName[] AssociationDomains { get; set; }
        /// <summary>Email suffixes associated with SAML</summary>
        string[] AssociationEmailSuffixes { get; set; }
        /// <summary>user groups associated with SAML</summary>
        Commvault.Powershell.Models.IIdName[] AssociationUserGroups { get; set; }
        /// <summary>SAMLAssociations</summary>
        Commvault.Powershell.Models.ISamlAssociations Associations { get; set; }
        /// <summary>attribute mapping details</summary>
        Commvault.Powershell.Models.ISamlAttributes[] AttributeMappings { get; set; }
        /// <summary>
        /// This auto-creates non-existing user if the user detail match with the identity rule.
        /// </summary>
        bool? AutoCreateUser { get; set; }
        /// <summary>SAML description</summary>
        string Description { get; set; }
        /// <summary>Boolean to indicate whether SAML is enabled.</summary>
        bool? Enabled { get; set; }
        /// <summary>SAML IDP meta data request</summary>
        Commvault.Powershell.Models.ISamlidpMetaDataReq IdentityProviderMetaData { get; set; }
        /// <summary>IDP certificate public key</summary>
        string IdentityProviderMetaDataCertificateData { get; set; }
        /// <summary>Identity provider entity</summary>
        string IdentityProviderMetaDataEntityId { get; set; }
        /// <summary>Identity Provider log-out URL</summary>
        string IdentityProviderMetaDataLogoutUrl { get; set; }
        /// <summary>Identity provider redirect URL</summary>
        string IdentityProviderMetaDataRedirectUrl { get; set; }
        /// <summary>SAML Protocol version</summary>
        string IdentityProviderMetaDataSamlProtocolVersion { get; set; }
        /// <summary>IDP's secondary certificate</summary>
        string IdentityProviderMetaDataSecondaryCertificateData { get; set; }
        /// <summary>nameID in SAML assertion subject is used to perform login.</summary>
        string NameIdAttribute { get; set; }
        /// <summary>SAML service provider meta data</summary>
        Commvault.Powershell.Models.ISamlspMetaData ServiceProviderMetaData { get; set; }
        /// <summary>certificate alias name</summary>
        string ServiceProviderMetaDataAliasName { get; set; }

        bool? ServiceProviderMetaDataAutoGenerateSpMetaData { get; set; }
        /// <summary>certificate alias name.</summary>
        string ServiceProviderMetaDataCertificateData { get; set; }
        /// <summary>jks file contents as byte array</summary>
        string[] ServiceProviderMetaDataJksFileContents { get; set; }
        /// <summary>key store password.</summary>
        string ServiceProviderMetaDataJksPrivateKey { get; set; }
        /// <summary>jks contents key store password.</summary>
        string ServiceProviderMetaDataKeyStorePassword { get; set; }
        /// <summary>certificate private key password</summary>
        string ServiceProviderMetaDataPrivateKeyPassword { get; set; }
        /// <summary>web console URL.</summary>
        string ServiceProviderMetaDataServiceProviderEndpoint { get; set; }
        /// <summary>web console URL list.</summary>
        string[] ServiceProviderMetaDataSpAliases { get; set; }
        /// <summary>
        /// By default, auto-created users will be associated to the Tenant Users group of the company. Add mapping to override this
        /// behaviour for a company.
        /// </summary>
        Commvault.Powershell.Models.ICompanyWithUserGroupAssocDetails[] UserGroups { get; set; }

    }
}