/**
 * SQL Server Big Data Cluster API
 * OpenAPI specification for **SQL Server Big Data Cluster**.
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { ActiveDirectory } from './activeDirectory';

export class Security {
    'activeDirectory'?: ActiveDirectory;
    'privileged'?: boolean;
    'useInternalDomain'?: boolean;
    'ouDistinguishedName'?: string;
    'dnsIpAddresses'?: Array<string>;
    'domainControllerFullyQualifiedDns'?: Array<string>;
    'realm'?: string;
    'domainDnsName'?: string;
    'clusterAdmins'?: Array<string>;
    'clusterUsers'?: Array<string>;
    'appOwners'?: Array<string>;
    'appReaders'?: Array<string>;
    'kerberosDelegationMode'?: Security.KerberosDelegationModeEnum;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "activeDirectory",
            "baseName": "activeDirectory",
            "type": "ActiveDirectory"
        },
        {
            "name": "privileged",
            "baseName": "privileged",
            "type": "boolean"
        },
        {
            "name": "useInternalDomain",
            "baseName": "useInternalDomain",
            "type": "boolean"
        },
        {
            "name": "ouDistinguishedName",
            "baseName": "ouDistinguishedName",
            "type": "string"
        },
        {
            "name": "dnsIpAddresses",
            "baseName": "dnsIpAddresses",
            "type": "Array<string>"
        },
        {
            "name": "domainControllerFullyQualifiedDns",
            "baseName": "domainControllerFullyQualifiedDns",
            "type": "Array<string>"
        },
        {
            "name": "realm",
            "baseName": "realm",
            "type": "string"
        },
        {
            "name": "domainDnsName",
            "baseName": "domainDnsName",
            "type": "string"
        },
        {
            "name": "clusterAdmins",
            "baseName": "clusterAdmins",
            "type": "Array<string>"
        },
        {
            "name": "clusterUsers",
            "baseName": "clusterUsers",
            "type": "Array<string>"
        },
        {
            "name": "appOwners",
            "baseName": "appOwners",
            "type": "Array<string>"
        },
        {
            "name": "appReaders",
            "baseName": "appReaders",
            "type": "Array<string>"
        },
        {
            "name": "kerberosDelegationMode",
            "baseName": "kerberosDelegationMode",
            "type": "Security.KerberosDelegationModeEnum"
        }    ];

    static getAttributeTypeMap() {
        return Security.attributeTypeMap;
    }
}

export namespace Security {
    export enum KerberosDelegationModeEnum {
        None = <any> 'None',
        ConstrainedDelegation = <any> 'ConstrainedDelegation',
        UnconstrainedDelegation = <any> 'UnconstrainedDelegation'
    }
}
