/**
 * 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 { AuditTrail } from './auditTrail';
import { BehalfOf } from './behalfOf';
import { DocumentCcDetails } from './documentCcDetails';
import { DocumentFiles } from './documentFiles';
import { DocumentFormFields } from './documentFormFields';
import { DocumentReassign } from './documentReassign';
import { DocumentSenderDetail } from './documentSenderDetail';
import { DocumentSignerDetails } from './documentSignerDetails';
import { FormGroup } from './formGroup';
import { RecipientNotificationSettings } from './recipientNotificationSettings';
import { ReminderSettings } from './reminderSettings';

export class DocumentProperties {
    'documentId'?: string | null;
    'brandId'?: string | null;
    'messageTitle'?: string | null;
    'documentDescription'?: string | null;
    'status'?: DocumentProperties.StatusEnum;
    'files'?: Array<DocumentFiles> | null;
    'senderDetail'?: DocumentSenderDetail;
    'signerDetails'?: Array<DocumentSignerDetails> | null;
    'formGroups'?: Array<FormGroup> | null;
    'commonFields'?: Array<DocumentFormFields> | null;
    'behalfOf'?: BehalfOf;
    'ccDetails'?: Array<DocumentCcDetails> | null;
    'reminderSettings'?: ReminderSettings;
    'reassign'?: Array<DocumentReassign> | null;
    'documentHistory'?: Array<AuditTrail> | null;
    'activityBy'?: string | null;
    'activityDate'?: number;
    'activityAction'?: DocumentProperties.ActivityActionEnum;
    'createdDate'?: number;
    'expiryDays'?: number;
    'expiryDate'?: number | null;
    'enableSigningOrder'?: boolean;
    'isDeleted'?: boolean;
    'revokeMessage'?: string | null;
    'declineMessage'?: string | null;
    'applicationId'?: string | null;
    'labels'?: Array<string> | null;
    'disableEmails'?: boolean;
    'enablePrintAndSign'?: boolean;
    'enableReassign'?: boolean;
    'disableExpiryAlert'?: boolean;
    'hideDocumentId'?: boolean;
    'expiryDateType'?: DocumentProperties.ExpiryDateTypeEnum;
    'expiryValue'?: number;
    'documentDownloadOption'?: DocumentProperties.DocumentDownloadOptionEnum;
    'metaData'?: { [key: string]: string | null; } | null;
    'recipientNotificationSettings'?: RecipientNotificationSettings;
    'enableAuditTrailLocalization'?: boolean;
    'downloadFileName'?: string | null;
    'scheduledSendTime'?: number | null;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "documentId",
            "baseName": "documentId",
            "type": "string"
        },
        {
            "name": "brandId",
            "baseName": "brandId",
            "type": "string"
        },
        {
            "name": "messageTitle",
            "baseName": "messageTitle",
            "type": "string"
        },
        {
            "name": "documentDescription",
            "baseName": "documentDescription",
            "type": "string"
        },
        {
            "name": "status",
            "baseName": "status",
            "type": "DocumentProperties.StatusEnum"
        },
        {
            "name": "files",
            "baseName": "files",
            "type": "Array<DocumentFiles>"
        },
        {
            "name": "senderDetail",
            "baseName": "senderDetail",
            "type": "DocumentSenderDetail"
        },
        {
            "name": "signerDetails",
            "baseName": "signerDetails",
            "type": "Array<DocumentSignerDetails>"
        },
        {
            "name": "formGroups",
            "baseName": "formGroups",
            "type": "Array<FormGroup>"
        },
        {
            "name": "commonFields",
            "baseName": "commonFields",
            "type": "Array<DocumentFormFields>"
        },
        {
            "name": "behalfOf",
            "baseName": "behalfOf",
            "type": "BehalfOf"
        },
        {
            "name": "ccDetails",
            "baseName": "ccDetails",
            "type": "Array<DocumentCcDetails>"
        },
        {
            "name": "reminderSettings",
            "baseName": "reminderSettings",
            "type": "ReminderSettings"
        },
        {
            "name": "reassign",
            "baseName": "reassign",
            "type": "Array<DocumentReassign>"
        },
        {
            "name": "documentHistory",
            "baseName": "documentHistory",
            "type": "Array<AuditTrail>"
        },
        {
            "name": "activityBy",
            "baseName": "activityBy",
            "type": "string"
        },
        {
            "name": "activityDate",
            "baseName": "activityDate",
            "type": "number"
        },
        {
            "name": "activityAction",
            "baseName": "activityAction",
            "type": "DocumentProperties.ActivityActionEnum"
        },
        {
            "name": "createdDate",
            "baseName": "createdDate",
            "type": "number"
        },
        {
            "name": "expiryDays",
            "baseName": "expiryDays",
            "type": "number"
        },
        {
            "name": "expiryDate",
            "baseName": "expiryDate",
            "type": "number"
        },
        {
            "name": "enableSigningOrder",
            "baseName": "enableSigningOrder",
            "type": "boolean"
        },
        {
            "name": "isDeleted",
            "baseName": "isDeleted",
            "type": "boolean"
        },
        {
            "name": "revokeMessage",
            "baseName": "revokeMessage",
            "type": "string"
        },
        {
            "name": "declineMessage",
            "baseName": "declineMessage",
            "type": "string"
        },
        {
            "name": "applicationId",
            "baseName": "applicationId",
            "type": "string"
        },
        {
            "name": "labels",
            "baseName": "labels",
            "type": "Array<string>"
        },
        {
            "name": "disableEmails",
            "baseName": "disableEmails",
            "type": "boolean"
        },
        {
            "name": "enablePrintAndSign",
            "baseName": "enablePrintAndSign",
            "type": "boolean"
        },
        {
            "name": "enableReassign",
            "baseName": "enableReassign",
            "type": "boolean"
        },
        {
            "name": "disableExpiryAlert",
            "baseName": "disableExpiryAlert",
            "type": "boolean"
        },
        {
            "name": "hideDocumentId",
            "baseName": "hideDocumentId",
            "type": "boolean"
        },
        {
            "name": "expiryDateType",
            "baseName": "expiryDateType",
            "type": "DocumentProperties.ExpiryDateTypeEnum"
        },
        {
            "name": "expiryValue",
            "baseName": "expiryValue",
            "type": "number"
        },
        {
            "name": "documentDownloadOption",
            "baseName": "documentDownloadOption",
            "type": "DocumentProperties.DocumentDownloadOptionEnum"
        },
        {
            "name": "metaData",
            "baseName": "metaData",
            "type": "{ [key: string]: string | null; }"
        },
        {
            "name": "recipientNotificationSettings",
            "baseName": "recipientNotificationSettings",
            "type": "RecipientNotificationSettings"
        },
        {
            "name": "enableAuditTrailLocalization",
            "baseName": "enableAuditTrailLocalization",
            "type": "boolean"
        },
        {
            "name": "downloadFileName",
            "baseName": "downloadFileName",
            "type": "string"
        },
        {
            "name": "scheduledSendTime",
            "baseName": "scheduledSendTime",
            "type": "number"
        }    ];

    static getAttributeTypeMap() {
        return DocumentProperties.attributeTypeMap;
    }
}

export namespace DocumentProperties {
    export enum StatusEnum {
        InProgress = <any> 'InProgress',
        Completed = <any> 'Completed',
        Declined = <any> 'Declined',
        Expired = <any> 'Expired',
        Revoked = <any> 'Revoked',
        Draft = <any> 'Draft',
        Scheduled = <any> 'Scheduled'
    }
    export enum ActivityActionEnum {
        Viewed = <any> 'Viewed',
        Signed = <any> 'Signed',
        Reassigned = <any> 'Reassigned',
        Declined = <any> 'Declined',
        Revoked = <any> 'Revoked',
        Expired = <any> 'Expired',
        Downloaded = <any> 'Downloaded',
        DownloadedForPrintSign = <any> 'DownloadedForPrintSign',
        InitiatePrintAndSign = <any> 'InitiatePrintAndSign',
        InitiateFormSign = <any> 'InitiateFormSign',
        CancelPrintAndSign = <any> 'CancelPrintAndSign',
        CompletePrintAndSign = <any> 'CompletePrintAndSign',
        Reviewed = <any> 'Reviewed',
        None = <any> 'None',
        EditingInitiated = <any> 'EditingInitiated',
        EditingCancelled = <any> 'EditingCancelled',
        EditingCompleted = <any> 'EditingCompleted',
        DocumentScheduled = <any> 'DocumentScheduled'
    }
    export enum ExpiryDateTypeEnum {
        Days = <any> 'Days',
        Hours = <any> 'Hours',
        SpecificDateTime = <any> 'SpecificDateTime'
    }
    export enum DocumentDownloadOptionEnum {
        Combined = <any> 'Combined',
        Individually = <any> 'Individually'
    }
}
