/**
 * 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 { RecipientNotificationSettings } from './recipientNotificationSettings';
import { TemplateRole } from './templateRole';
import { TextTagDefinition } from './textTagDefinition';

export class EmbeddedCreateTemplateRequest {
    'title': string;
    'redirectUrl'?: string | null;
    'showToolbar'?: boolean = false;
    'viewOption'?: EmbeddedCreateTemplateRequest.ViewOptionEnum = EmbeddedCreateTemplateRequest.ViewOptionEnum.PreparePage;
    'showSaveButton'?: boolean = true;
    'locale'?: EmbeddedCreateTemplateRequest.LocaleEnum = EmbeddedCreateTemplateRequest.LocaleEnum.En;
    'showSendButton'?: boolean | null;
    'showCreateButton'?: boolean = true;
    'showPreviewButton'?: boolean = true;
    'showNavigationButtons'?: boolean = true;
    'linkValidTill'?: Date | null;
    'showTooltip'?: boolean = false;
    'description'?: string | null;
    'documentTitle'?: string | null;
    'documentMessage'?: string | null;
    'files'?: Array<RequestFile> | null;
    'fileUrls'?: Array<string> | null;
    'roles'?: Array<TemplateRole> | null;
    'allowModifyFiles'?: boolean = true;
    'cc'?: Array<DocumentCC> | null;
    'brandId'?: string | null;
    'allowMessageEditing'?: boolean = true;
    'allowNewRoles'?: boolean = true;
    'allowNewFiles'?: boolean = true;
    'enableReassign'?: boolean = true;
    'enablePrintAndAssign'?: boolean = false;
    'enableSigningOrder'?: boolean = false;
    'documentInfo'?: Array<DocumentInfo> | null;
    'useTextTags'?: boolean = false;
    'textTagDefinitions'?: Array<TextTagDefinition> | null;
    'autoDetectFields'?: boolean = false;
    'onBehalfOf'?: string | null;
    'labels'?: Array<string> | null;
    'templateLabels'?: Array<string> | null;
    'recipientNotificationSettings'?: RecipientNotificationSettings;
    'formGroups'?: Array<FormGroup> | null;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "title",
            "baseName": "title",
            "type": "string"
        },
        {
            "name": "redirectUrl",
            "baseName": "redirectUrl",
            "type": "string"
        },
        {
            "name": "showToolbar",
            "baseName": "showToolbar",
            "type": "boolean"
        },
        {
            "name": "viewOption",
            "baseName": "viewOption",
            "type": "EmbeddedCreateTemplateRequest.ViewOptionEnum"
        },
        {
            "name": "showSaveButton",
            "baseName": "showSaveButton",
            "type": "boolean"
        },
        {
            "name": "locale",
            "baseName": "locale",
            "type": "EmbeddedCreateTemplateRequest.LocaleEnum"
        },
        {
            "name": "showSendButton",
            "baseName": "showSendButton",
            "type": "boolean"
        },
        {
            "name": "showCreateButton",
            "baseName": "showCreateButton",
            "type": "boolean"
        },
        {
            "name": "showPreviewButton",
            "baseName": "showPreviewButton",
            "type": "boolean"
        },
        {
            "name": "showNavigationButtons",
            "baseName": "showNavigationButtons",
            "type": "boolean"
        },
        {
            "name": "linkValidTill",
            "baseName": "linkValidTill",
            "type": "Date"
        },
        {
            "name": "showTooltip",
            "baseName": "showTooltip",
            "type": "boolean"
        },
        {
            "name": "description",
            "baseName": "description",
            "type": "string"
        },
        {
            "name": "documentTitle",
            "baseName": "documentTitle",
            "type": "string"
        },
        {
            "name": "documentMessage",
            "baseName": "documentMessage",
            "type": "string"
        },
        {
            "name": "files",
            "baseName": "files",
            "type": "Array<RequestFile>"
        },
        {
            "name": "fileUrls",
            "baseName": "fileUrls",
            "type": "Array<string>"
        },
        {
            "name": "roles",
            "baseName": "roles",
            "type": "Array<TemplateRole>"
        },
        {
            "name": "allowModifyFiles",
            "baseName": "allowModifyFiles",
            "type": "boolean"
        },
        {
            "name": "cc",
            "baseName": "cc",
            "type": "Array<DocumentCC>"
        },
        {
            "name": "brandId",
            "baseName": "brandId",
            "type": "string"
        },
        {
            "name": "allowMessageEditing",
            "baseName": "allowMessageEditing",
            "type": "boolean"
        },
        {
            "name": "allowNewRoles",
            "baseName": "allowNewRoles",
            "type": "boolean"
        },
        {
            "name": "allowNewFiles",
            "baseName": "allowNewFiles",
            "type": "boolean"
        },
        {
            "name": "enableReassign",
            "baseName": "enableReassign",
            "type": "boolean"
        },
        {
            "name": "enablePrintAndAssign",
            "baseName": "enablePrintAndAssign",
            "type": "boolean"
        },
        {
            "name": "enableSigningOrder",
            "baseName": "enableSigningOrder",
            "type": "boolean"
        },
        {
            "name": "documentInfo",
            "baseName": "documentInfo",
            "type": "Array<DocumentInfo>"
        },
        {
            "name": "useTextTags",
            "baseName": "useTextTags",
            "type": "boolean"
        },
        {
            "name": "textTagDefinitions",
            "baseName": "textTagDefinitions",
            "type": "Array<TextTagDefinition>"
        },
        {
            "name": "autoDetectFields",
            "baseName": "autoDetectFields",
            "type": "boolean"
        },
        {
            "name": "onBehalfOf",
            "baseName": "onBehalfOf",
            "type": "string"
        },
        {
            "name": "labels",
            "baseName": "labels",
            "type": "Array<string>"
        },
        {
            "name": "templateLabels",
            "baseName": "templateLabels",
            "type": "Array<string>"
        },
        {
            "name": "recipientNotificationSettings",
            "baseName": "recipientNotificationSettings",
            "type": "RecipientNotificationSettings"
        },
        {
            "name": "formGroups",
            "baseName": "formGroups",
            "type": "Array<FormGroup>"
        }    ];

    static getAttributeTypeMap() {
        return EmbeddedCreateTemplateRequest.attributeTypeMap;
    }
}

export namespace EmbeddedCreateTemplateRequest {
    export enum ViewOptionEnum {
        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'
    }
}
