/**
 * 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 { DocumentCC } from './documentCC';
import { DocumentInfo } from './documentInfo';
import { FormGroup } from './formGroup';
import { GroupSignerSettings } from './groupSignerSettings';
import { RecipientNotificationSettings } from './recipientNotificationSettings';
import { ReminderSettings } from './reminderSettings';
import { Role } from './role';

export class EmbeddedSendTemplateFormRequest {
    'files'?: Array<RequestFile> | null;
    'fileUrls'?: Array<string> | null;
    'redirectUrl'?: string | null;
    'showToolbar'?: boolean;
    'sendViewOption'?: EmbeddedSendTemplateFormRequest.SendViewOptionEnum;
    'showSaveButton'?: boolean;
    'locale'?: EmbeddedSendTemplateFormRequest.LocaleEnum;
    'showSendButton'?: boolean;
    'showPreviewButton'?: boolean;
    'showNavigationButtons'?: boolean;
    'sendLinkValidTill'?: Date | null;
    'showTooltip'?: boolean;
    'documentId'?: string | null;
    'title'?: string | null;
    'message'?: string | null;
    'roles'?: Array<Role> | null;
    'brandId'?: string | null;
    'labels'?: Array<string> | null;
    'disableEmails'?: boolean;
    'disableSMS'?: boolean = false;
    'hideDocumentId'?: boolean | null;
    'reminderSettings'?: ReminderSettings;
    'cc'?: Array<DocumentCC> | null;
    'expiryDays'?: number;
    'expiryDateType'?: EmbeddedSendTemplateFormRequest.ExpiryDateTypeEnum;
    'expiryValue'?: number = 60;
    'enablePrintAndSign'?: boolean;
    'enableReassign'?: boolean | null;
    'enableSigningOrder'?: boolean | null;
    'disableExpiryAlert'?: boolean | null;
    'documentInfo'?: Array<DocumentInfo> | null;
    'onBehalfOf'?: string | null;
    'isSandbox'?: boolean | null;
    'roleRemovalIndices'?: Array<number> | null;
    'documentDownloadOption'?: EmbeddedSendTemplateFormRequest.DocumentDownloadOptionEnum;
    'metaData'?: { [key: string]: string | null; } | null;
    'formGroups'?: Array<FormGroup> | null;
    'removeFormFields'?: Array<string> | null;
    'recipientNotificationSettings'?: RecipientNotificationSettings;
    'enableAuditTrailLocalization'?: boolean | null;
    'downloadFileName'?: string | null;
    'scheduledSendTime'?: number | null;
    'allowScheduledSend'?: boolean = false;
    'allowedSignatureTypes'?: Array<EmbeddedSendTemplateFormRequest.AllowedSignatureTypesEnum>;
    'groupSignerSettings'?: GroupSignerSettings;
    'enableAllowSignEverywhere'?: boolean | null;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "files",
            "baseName": "files",
            "type": "Array<RequestFile>"
        },
        {
            "name": "fileUrls",
            "baseName": "fileUrls",
            "type": "Array<string>"
        },
        {
            "name": "redirectUrl",
            "baseName": "redirectUrl",
            "type": "string"
        },
        {
            "name": "showToolbar",
            "baseName": "showToolbar",
            "type": "boolean"
        },
        {
            "name": "sendViewOption",
            "baseName": "sendViewOption",
            "type": "EmbeddedSendTemplateFormRequest.SendViewOptionEnum"
        },
        {
            "name": "showSaveButton",
            "baseName": "showSaveButton",
            "type": "boolean"
        },
        {
            "name": "locale",
            "baseName": "locale",
            "type": "EmbeddedSendTemplateFormRequest.LocaleEnum"
        },
        {
            "name": "showSendButton",
            "baseName": "showSendButton",
            "type": "boolean"
        },
        {
            "name": "showPreviewButton",
            "baseName": "showPreviewButton",
            "type": "boolean"
        },
        {
            "name": "showNavigationButtons",
            "baseName": "showNavigationButtons",
            "type": "boolean"
        },
        {
            "name": "sendLinkValidTill",
            "baseName": "sendLinkValidTill",
            "type": "Date"
        },
        {
            "name": "showTooltip",
            "baseName": "showTooltip",
            "type": "boolean"
        },
        {
            "name": "documentId",
            "baseName": "documentId",
            "type": "string"
        },
        {
            "name": "title",
            "baseName": "title",
            "type": "string"
        },
        {
            "name": "message",
            "baseName": "message",
            "type": "string"
        },
        {
            "name": "roles",
            "baseName": "roles",
            "type": "Array<Role>"
        },
        {
            "name": "brandId",
            "baseName": "brandId",
            "type": "string"
        },
        {
            "name": "labels",
            "baseName": "labels",
            "type": "Array<string>"
        },
        {
            "name": "disableEmails",
            "baseName": "disableEmails",
            "type": "boolean"
        },
        {
            "name": "disableSMS",
            "baseName": "disableSMS",
            "type": "boolean"
        },
        {
            "name": "hideDocumentId",
            "baseName": "hideDocumentId",
            "type": "boolean"
        },
        {
            "name": "reminderSettings",
            "baseName": "reminderSettings",
            "type": "ReminderSettings"
        },
        {
            "name": "cc",
            "baseName": "cc",
            "type": "Array<DocumentCC>"
        },
        {
            "name": "expiryDays",
            "baseName": "expiryDays",
            "type": "number"
        },
        {
            "name": "expiryDateType",
            "baseName": "expiryDateType",
            "type": "EmbeddedSendTemplateFormRequest.ExpiryDateTypeEnum"
        },
        {
            "name": "expiryValue",
            "baseName": "expiryValue",
            "type": "number"
        },
        {
            "name": "enablePrintAndSign",
            "baseName": "enablePrintAndSign",
            "type": "boolean"
        },
        {
            "name": "enableReassign",
            "baseName": "enableReassign",
            "type": "boolean"
        },
        {
            "name": "enableSigningOrder",
            "baseName": "enableSigningOrder",
            "type": "boolean"
        },
        {
            "name": "disableExpiryAlert",
            "baseName": "disableExpiryAlert",
            "type": "boolean"
        },
        {
            "name": "documentInfo",
            "baseName": "documentInfo",
            "type": "Array<DocumentInfo>"
        },
        {
            "name": "onBehalfOf",
            "baseName": "onBehalfOf",
            "type": "string"
        },
        {
            "name": "isSandbox",
            "baseName": "isSandbox",
            "type": "boolean"
        },
        {
            "name": "roleRemovalIndices",
            "baseName": "roleRemovalIndices",
            "type": "Array<number>"
        },
        {
            "name": "documentDownloadOption",
            "baseName": "documentDownloadOption",
            "type": "EmbeddedSendTemplateFormRequest.DocumentDownloadOptionEnum"
        },
        {
            "name": "metaData",
            "baseName": "metaData",
            "type": "{ [key: string]: string | null; }"
        },
        {
            "name": "formGroups",
            "baseName": "formGroups",
            "type": "Array<FormGroup>"
        },
        {
            "name": "removeFormFields",
            "baseName": "removeFormFields",
            "type": "Array<string>"
        },
        {
            "name": "recipientNotificationSettings",
            "baseName": "recipientNotificationSettings",
            "type": "RecipientNotificationSettings"
        },
        {
            "name": "enableAuditTrailLocalization",
            "baseName": "enableAuditTrailLocalization",
            "type": "boolean"
        },
        {
            "name": "downloadFileName",
            "baseName": "downloadFileName",
            "type": "string"
        },
        {
            "name": "scheduledSendTime",
            "baseName": "scheduledSendTime",
            "type": "number"
        },
        {
            "name": "allowScheduledSend",
            "baseName": "allowScheduledSend",
            "type": "boolean"
        },
        {
            "name": "allowedSignatureTypes",
            "baseName": "allowedSignatureTypes",
            "type": "Array<EmbeddedSendTemplateFormRequest.AllowedSignatureTypesEnum>"
        },
        {
            "name": "groupSignerSettings",
            "baseName": "groupSignerSettings",
            "type": "GroupSignerSettings"
        },
        {
            "name": "enableAllowSignEverywhere",
            "baseName": "enableAllowSignEverywhere",
            "type": "boolean"
        }    ];

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

export namespace EmbeddedSendTemplateFormRequest {
    export enum SendViewOptionEnum {
        PreparePage = <any> 'PreparePage',
        FillingPage = <any> 'FillingPage'
    }
    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 ExpiryDateTypeEnum {
        Days = <any> 'Days',
        Hours = <any> 'Hours',
        SpecificDateTime = <any> 'SpecificDateTime'
    }
    export enum DocumentDownloadOptionEnum {
        Combined = <any> 'Combined',
        Individually = <any> 'Individually'
    }
    export enum AllowedSignatureTypesEnum {
        Text = <any> 'Text',
        Draw = <any> 'Draw',
        Image = <any> 'Image'
    }
}
