/**
 * BoldSign API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { RequestFile } from './models';
import { AuthenticationSettings } from './authenticationSettings';
import { EditFormField } from './editFormField';
import { IdentityVerificationSettings } from './identityVerificationSettings';
import { PhoneNumber } from './phoneNumber';
import { RecipientNotificationSettings } from './recipientNotificationSettings';

export class EditDocumentSigner {
    'editAction': EditDocumentSigner.EditActionEnum;
    'id'?: string | null;
    'name'?: string | null;
    'emailAddress'?: string | null;
    'privateMessage'?: string | null;
    'authenticationType'?: EditDocumentSigner.AuthenticationTypeEnum;
    'phoneNumber'?: PhoneNumber;
    'deliveryMode'?: EditDocumentSigner.DeliveryModeEnum;
    'authenticationCode'?: string | null;
    'identityVerificationSettings'?: IdentityVerificationSettings;
    'signerOrder'?: number | null;
    'enableEmailOTP'?: boolean | null;
    'signerType'?: EditDocumentSigner.SignerTypeEnum;
    'hostEmail'?: string | null;
    'signerRole'?: string | null;
    'allowFieldConfiguration'?: boolean | null;
    'formFields'?: Array<EditFormField> | null;
    'language'?: EditDocumentSigner.LanguageEnum;
    'locale'?: EditDocumentSigner.LocaleEnum;
    'signType'?: EditDocumentSigner.SignTypeEnum;
    'groupId'?: string | null;
    'recipientNotificationSettings'?: RecipientNotificationSettings;
    'authenticationRetryCount'?: number | null;
    'enableQes'?: boolean | null;
    'authenticationSettings'?: AuthenticationSettings;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "editAction",
            "baseName": "editAction",
            "type": "EditDocumentSigner.EditActionEnum"
        },
        {
            "name": "id",
            "baseName": "id",
            "type": "string"
        },
        {
            "name": "name",
            "baseName": "name",
            "type": "string"
        },
        {
            "name": "emailAddress",
            "baseName": "emailAddress",
            "type": "string"
        },
        {
            "name": "privateMessage",
            "baseName": "privateMessage",
            "type": "string"
        },
        {
            "name": "authenticationType",
            "baseName": "authenticationType",
            "type": "EditDocumentSigner.AuthenticationTypeEnum"
        },
        {
            "name": "phoneNumber",
            "baseName": "phoneNumber",
            "type": "PhoneNumber"
        },
        {
            "name": "deliveryMode",
            "baseName": "deliveryMode",
            "type": "EditDocumentSigner.DeliveryModeEnum"
        },
        {
            "name": "authenticationCode",
            "baseName": "authenticationCode",
            "type": "string"
        },
        {
            "name": "identityVerificationSettings",
            "baseName": "identityVerificationSettings",
            "type": "IdentityVerificationSettings"
        },
        {
            "name": "signerOrder",
            "baseName": "signerOrder",
            "type": "number"
        },
        {
            "name": "enableEmailOTP",
            "baseName": "enableEmailOTP",
            "type": "boolean"
        },
        {
            "name": "signerType",
            "baseName": "signerType",
            "type": "EditDocumentSigner.SignerTypeEnum"
        },
        {
            "name": "hostEmail",
            "baseName": "hostEmail",
            "type": "string"
        },
        {
            "name": "signerRole",
            "baseName": "signerRole",
            "type": "string"
        },
        {
            "name": "allowFieldConfiguration",
            "baseName": "allowFieldConfiguration",
            "type": "boolean"
        },
        {
            "name": "formFields",
            "baseName": "formFields",
            "type": "Array<EditFormField>"
        },
        {
            "name": "language",
            "baseName": "language",
            "type": "EditDocumentSigner.LanguageEnum"
        },
        {
            "name": "locale",
            "baseName": "locale",
            "type": "EditDocumentSigner.LocaleEnum"
        },
        {
            "name": "signType",
            "baseName": "signType",
            "type": "EditDocumentSigner.SignTypeEnum"
        },
        {
            "name": "groupId",
            "baseName": "groupId",
            "type": "string"
        },
        {
            "name": "recipientNotificationSettings",
            "baseName": "recipientNotificationSettings",
            "type": "RecipientNotificationSettings"
        },
        {
            "name": "authenticationRetryCount",
            "baseName": "authenticationRetryCount",
            "type": "number"
        },
        {
            "name": "enableQes",
            "baseName": "enableQes",
            "type": "boolean"
        },
        {
            "name": "authenticationSettings",
            "baseName": "authenticationSettings",
            "type": "AuthenticationSettings"
        }    ];

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

export namespace EditDocumentSigner {
    export enum EditActionEnum {
        Add = <any> 'Add',
        Update = <any> 'Update',
        Remove = <any> 'Remove'
    }
    export enum AuthenticationTypeEnum {
        None = <any> 'None',
        EmailOtp = <any> 'EmailOTP',
        AccessCode = <any> 'AccessCode',
        Smsotp = <any> 'SMSOTP',
        IdVerification = <any> 'IdVerification'
    }
    export enum DeliveryModeEnum {
        Email = <any> 'Email',
        Sms = <any> 'SMS',
        EmailAndSms = <any> 'EmailAndSMS',
        WhatsApp = <any> 'WhatsApp'
    }
    export enum SignerTypeEnum {
        Signer = <any> 'Signer',
        Reviewer = <any> 'Reviewer',
        InPersonSigner = <any> 'InPersonSigner'
    }
    export enum LanguageEnum {
        NUMBER_0 = <any> 0,
        NUMBER_1 = <any> 1,
        NUMBER_2 = <any> 2,
        NUMBER_3 = <any> 3,
        NUMBER_4 = <any> 4,
        NUMBER_5 = <any> 5,
        NUMBER_6 = <any> 6,
        NUMBER_7 = <any> 7,
        NUMBER_8 = <any> 8,
        NUMBER_9 = <any> 9,
        NUMBER_10 = <any> 10,
        NUMBER_11 = <any> 11,
        NUMBER_12 = <any> 12,
        NUMBER_13 = <any> 13,
        NUMBER_14 = <any> 14,
        NUMBER_15 = <any> 15,
        NUMBER_16 = <any> 16,
        NUMBER_17 = <any> 17,
        NUMBER_18 = <any> 18,
        NUMBER_19 = <any> 19,
        NUMBER_20 = <any> 20
    }
    export enum LocaleEnum {
        En = <any> 'EN',
        No = <any> 'NO',
        Fr = <any> 'FR',
        De = <any> 'DE',
        Es = <any> 'ES',
        Bg = <any> 'BG',
        Cs = <any> 'CS',
        Da = <any> 'DA',
        It = <any> 'IT',
        Nl = <any> 'NL',
        Pl = <any> 'PL',
        Pt = <any> 'PT',
        Ro = <any> 'RO',
        Ru = <any> 'RU',
        Sv = <any> 'SV',
        Default = <any> 'Default',
        Ja = <any> 'JA',
        Th = <any> 'TH',
        ZhCn = <any> 'ZH_CN',
        ZhTw = <any> 'ZH_TW',
        Ko = <any> 'KO'
    }
    export enum SignTypeEnum {
        Single = <any> 'Single',
        Group = <any> 'Group'
    }
}
