/**
 * 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 { FormField } from './formField';
import { IdentityVerificationSettings } from './identityVerificationSettings';
import { PhoneNumber } from './phoneNumber';
import { RecipientNotificationSettings } from './recipientNotificationSettings';

export class DocumentSigner {
    'id'?: string | null;
    'name'?: string | null;
    'emailAddress'?: string | null;
    'privateMessage'?: string | null;
    'authenticationType'?: DocumentSigner.AuthenticationTypeEnum;
    'phoneNumber'?: PhoneNumber;
    'deliveryMode'?: DocumentSigner.DeliveryModeEnum;
    'authenticationCode'?: string | null;
    'identityVerificationSettings'?: IdentityVerificationSettings;
    'signerOrder'?: number;
    'enableEmailOTP'?: boolean;
    'signerType'?: DocumentSigner.SignerTypeEnum;
    'hostEmail'?: string | null;
    'signerRole'?: string | null;
    'allowFieldConfiguration'?: boolean;
    'formFields'?: Array<FormField> | null;
    /**
    * <p>Description:</p><ul><li><i>0</i> - None</li><li><i>1</i> - English</li><li><i>2</i> - Spanish</li><li><i>3</i> - German</li><li><i>4</i> - French</li><li><i>5</i> - Romanian</li><li><i>6</i> - Norwegian</li><li><i>7</i> - Bulgarian</li><li><i>8</i> - Italian</li><li><i>9</i> - Danish</li><li><i>10</i> - Polish</li><li><i>11</i> - Portuguese</li><li><i>12</i> - Czech</li><li><i>13</i> - Dutch</li><li><i>14</i> - Swedish</li><li><i>15</i> - Russian</li><li><i>16</i> - Japanese</li><li><i>17</i> - Thai</li><li><i>18</i> - SimplifiedChinese</li><li><i>19</i> - TraditionalChinese</li><li><i>20</i> - Korean</li></ul>
    */
    'language'?: DocumentSigner.LanguageEnum;
    'locale'?: DocumentSigner.LocaleEnum;
    'signType'?: DocumentSigner.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": "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": "DocumentSigner.AuthenticationTypeEnum"
        },
        {
            "name": "phoneNumber",
            "baseName": "phoneNumber",
            "type": "PhoneNumber"
        },
        {
            "name": "deliveryMode",
            "baseName": "deliveryMode",
            "type": "DocumentSigner.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": "DocumentSigner.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<FormField>"
        },
        {
            "name": "language",
            "baseName": "language",
            "type": "DocumentSigner.LanguageEnum"
        },
        {
            "name": "locale",
            "baseName": "locale",
            "type": "DocumentSigner.LocaleEnum"
        },
        {
            "name": "signType",
            "baseName": "signType",
            "type": "DocumentSigner.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 DocumentSigner.attributeTypeMap;
    }
}

export namespace DocumentSigner {
    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'
    }
}
