/**
 * 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 { DocumentSigner } from './documentSigner';
import { FormGroup } from './formGroup';
import { RecipientNotificationSettings } from './recipientNotificationSettings';
import { ReminderSettings } from './reminderSettings';
import { TextTagDefinition } from './textTagDefinition';

export class EmbeddedDocumentRequest {
    'redirectUrl'?: string | null;
    'showToolbar'?: boolean = false;
    'sendViewOption'?: EmbeddedDocumentRequest.SendViewOptionEnum = EmbeddedDocumentRequest.SendViewOptionEnum.PreparePage;
    'showSaveButton'?: boolean = true;
    'locale'?: EmbeddedDocumentRequest.LocaleEnum = EmbeddedDocumentRequest.LocaleEnum.En;
    'showSendButton'?: boolean = true;
    'showPreviewButton'?: boolean = true;
    'showNavigationButtons'?: boolean = true;
    'showTooltip'?: boolean = false;
    'embeddedSendLinkValidTill'?: Date;
    'files'?: Array<RequestFile> | null;
    'title'?: string | null;
    'message'?: string | null;
    'signers'?: Array<DocumentSigner> | null;
    'cc'?: Array<DocumentCC> | null;
    'enableSigningOrder'?: boolean = false;
    'expiryDays'?: number;
    'expiryDateType'?: EmbeddedDocumentRequest.ExpiryDateTypeEnum;
    'expiryValue'?: number = 60;
    'reminderSettings'?: ReminderSettings;
    'enableEmbeddedSigning'?: boolean = false;
    'disableEmails'?: boolean = false;
    'disableSMS'?: boolean = false;
    'brandId'?: string | null;
    'hideDocumentId'?: boolean | null = false;
    'labels'?: Array<string> | null;
    'fileUrls'?: Array<string> | null;
    'sendLinkValidTill'?: Date | null;
    'useTextTags'?: boolean = false;
    'textTagDefinitions'?: Array<TextTagDefinition> | null;
    'enablePrintAndSign'?: boolean = false;
    'enableReassign'?: boolean = true;
    'disableExpiryAlert'?: boolean | null;
    'documentInfo'?: Array<DocumentInfo> | null;
    'onBehalfOf'?: string | null;
    'autoDetectFields'?: boolean = false;
    'documentDownloadOption'?: EmbeddedDocumentRequest.DocumentDownloadOptionEnum;
    'isSandbox'?: boolean | null;
    'metaData'?: { [key: string]: string | null; } | null;
    'recipientNotificationSettings'?: RecipientNotificationSettings;
    'formGroups'?: Array<FormGroup> | null;
    'enableAuditTrailLocalization'?: boolean | null;
    'downloadFileName'?: string | null;
    'scheduledSendTime'?: number | null;
    'allowScheduledSend'?: boolean = false;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "redirectUrl",
            "baseName": "redirectUrl",
            "type": "string"
        },
        {
            "name": "showToolbar",
            "baseName": "showToolbar",
            "type": "boolean"
        },
        {
            "name": "sendViewOption",
            "baseName": "sendViewOption",
            "type": "EmbeddedDocumentRequest.SendViewOptionEnum"
        },
        {
            "name": "showSaveButton",
            "baseName": "showSaveButton",
            "type": "boolean"
        },
        {
            "name": "locale",
            "baseName": "locale",
            "type": "EmbeddedDocumentRequest.LocaleEnum"
        },
        {
            "name": "showSendButton",
            "baseName": "showSendButton",
            "type": "boolean"
        },
        {
            "name": "showPreviewButton",
            "baseName": "showPreviewButton",
            "type": "boolean"
        },
        {
            "name": "showNavigationButtons",
            "baseName": "showNavigationButtons",
            "type": "boolean"
        },
        {
            "name": "showTooltip",
            "baseName": "showTooltip",
            "type": "boolean"
        },
        {
            "name": "embeddedSendLinkValidTill",
            "baseName": "embeddedSendLinkValidTill",
            "type": "Date"
        },
        {
            "name": "files",
            "baseName": "files",
            "type": "Array<RequestFile>"
        },
        {
            "name": "title",
            "baseName": "title",
            "type": "string"
        },
        {
            "name": "message",
            "baseName": "message",
            "type": "string"
        },
        {
            "name": "signers",
            "baseName": "signers",
            "type": "Array<DocumentSigner>"
        },
        {
            "name": "cc",
            "baseName": "cc",
            "type": "Array<DocumentCC>"
        },
        {
            "name": "enableSigningOrder",
            "baseName": "enableSigningOrder",
            "type": "boolean"
        },
        {
            "name": "expiryDays",
            "baseName": "expiryDays",
            "type": "number"
        },
        {
            "name": "expiryDateType",
            "baseName": "expiryDateType",
            "type": "EmbeddedDocumentRequest.ExpiryDateTypeEnum"
        },
        {
            "name": "expiryValue",
            "baseName": "expiryValue",
            "type": "number"
        },
        {
            "name": "reminderSettings",
            "baseName": "reminderSettings",
            "type": "ReminderSettings"
        },
        {
            "name": "enableEmbeddedSigning",
            "baseName": "enableEmbeddedSigning",
            "type": "boolean"
        },
        {
            "name": "disableEmails",
            "baseName": "disableEmails",
            "type": "boolean"
        },
        {
            "name": "disableSMS",
            "baseName": "disableSMS",
            "type": "boolean"
        },
        {
            "name": "brandId",
            "baseName": "brandId",
            "type": "string"
        },
        {
            "name": "hideDocumentId",
            "baseName": "hideDocumentId",
            "type": "boolean"
        },
        {
            "name": "labels",
            "baseName": "labels",
            "type": "Array<string>"
        },
        {
            "name": "fileUrls",
            "baseName": "fileUrls",
            "type": "Array<string>"
        },
        {
            "name": "sendLinkValidTill",
            "baseName": "sendLinkValidTill",
            "type": "Date"
        },
        {
            "name": "useTextTags",
            "baseName": "useTextTags",
            "type": "boolean"
        },
        {
            "name": "textTagDefinitions",
            "baseName": "textTagDefinitions",
            "type": "Array<TextTagDefinition>"
        },
        {
            "name": "enablePrintAndSign",
            "baseName": "enablePrintAndSign",
            "type": "boolean"
        },
        {
            "name": "enableReassign",
            "baseName": "enableReassign",
            "type": "boolean"
        },
        {
            "name": "disableExpiryAlert",
            "baseName": "disableExpiryAlert",
            "type": "boolean"
        },
        {
            "name": "documentInfo",
            "baseName": "documentInfo",
            "type": "Array<DocumentInfo>"
        },
        {
            "name": "onBehalfOf",
            "baseName": "onBehalfOf",
            "type": "string"
        },
        {
            "name": "autoDetectFields",
            "baseName": "AutoDetectFields",
            "type": "boolean"
        },
        {
            "name": "documentDownloadOption",
            "baseName": "documentDownloadOption",
            "type": "EmbeddedDocumentRequest.DocumentDownloadOptionEnum"
        },
        {
            "name": "isSandbox",
            "baseName": "isSandbox",
            "type": "boolean"
        },
        {
            "name": "metaData",
            "baseName": "metaData",
            "type": "{ [key: string]: string | null; }"
        },
        {
            "name": "recipientNotificationSettings",
            "baseName": "recipientNotificationSettings",
            "type": "RecipientNotificationSettings"
        },
        {
            "name": "formGroups",
            "baseName": "formGroups",
            "type": "Array<FormGroup>"
        },
        {
            "name": "enableAuditTrailLocalization",
            "baseName": "enableAuditTrailLocalization",
            "type": "boolean"
        },
        {
            "name": "downloadFileName",
            "baseName": "downloadFileName",
            "type": "string"
        },
        {
            "name": "scheduledSendTime",
            "baseName": "scheduledSendTime",
            "type": "number"
        },
        {
            "name": "allowScheduledSend",
            "baseName": "allowScheduledSend",
            "type": "boolean"
        }    ];

    static getAttributeTypeMap() {
        return EmbeddedDocumentRequest.attributeTypeMap;
    }
}

export namespace EmbeddedDocumentRequest {
    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'
    }
    export enum ExpiryDateTypeEnum {
        Days = <any> 'Days',
        Hours = <any> 'Hours',
        SpecificDateTime = <any> 'SpecificDateTime'
    }
    export enum DocumentDownloadOptionEnum {
        Combined = <any> 'Combined',
        Individually = <any> 'Individually'
    }
}
