/* tslint:disable */
/* eslint-disable */
/**
* Lemonway DirectKit API 2.0
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { exists, mapValues } from '../runtime';
/**
*
* @export
* @interface UploadDocumentInput
*/
export interface UploadDocumentInput {
/**
* Document Name
* @type {string}
* @memberof UploadDocumentInput
*/
name: string;
/**
* Document Type:
Note:
* If you have previously uploaded a document in a reserved slot(0-13) and need to upload another document of the same type, use the slot Other document(14-20).
0 = ID card (both sides in one file).
1 = Proof of address.
2 = Scan of a proof of IBAN.
3 = Passport (European Union).
4 = Passport (outside the European Union).
5 = Residence permit (both sides in one file).
7 = Official company registration document (Kbis extract or equivalent).
11 = Driver licence (both sides in one file).
12 = Status.
13 = Selfie.
14 = Other document type.
15 = Other document type.
16 = Other document type.
17 = Other document type.
18 = Other document type.
19 = Other document type.
20 = Other document type.
21 = SDD mandate.
* @type {number}
* @memberof UploadDocumentInput
*/
type: UploadDocumentInputTypeEnum;
/**
* Byte array with the document. Encode in base 64 if necessary.
* @type {string}
* @memberof UploadDocumentInput
*/
buffer: string;
/**
* Lets you upload your signed (with your own signing partner) mandate document, to validate a mandate ID you previously created with RegisterSddMandate.
* @type {number}
* @memberof UploadDocumentInput
*/
sddMandateId?: number;
}
/**
* @export
*/
export const UploadDocumentInputTypeEnum = {
NUMBER_0: 0,
NUMBER_1: 1,
NUMBER_2: 2,
NUMBER_3: 3,
NUMBER_4: 4,
NUMBER_5: 5,
NUMBER_7: 7,
NUMBER_11: 11,
NUMBER_12: 12,
NUMBER_13: 13,
NUMBER_14: 14,
NUMBER_15: 15,
NUMBER_16: 16,
NUMBER_17: 17,
NUMBER_18: 18,
NUMBER_19: 19,
NUMBER_20: 20,
NUMBER_21: 21
} as const;
export type UploadDocumentInputTypeEnum = typeof UploadDocumentInputTypeEnum[keyof typeof UploadDocumentInputTypeEnum];
/**
* Check if a given object implements the UploadDocumentInput interface.
*/
export function instanceOfUploadDocumentInput(value: object): boolean {
let isInstance = true;
isInstance = isInstance && "name" in value;
isInstance = isInstance && "type" in value;
isInstance = isInstance && "buffer" in value;
return isInstance;
}
export function UploadDocumentInputFromJSON(json: any): UploadDocumentInput {
return UploadDocumentInputFromJSONTyped(json, false);
}
export function UploadDocumentInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): UploadDocumentInput {
if ((json === undefined) || (json === null)) {
return json;
}
return {
'name': json['name'],
'type': json['type'],
'buffer': json['buffer'],
'sddMandateId': !exists(json, 'sddMandateId') ? undefined : json['sddMandateId'],
};
}
export function UploadDocumentInputToJSON(value?: UploadDocumentInput | null): any {
if (value === undefined) {
return undefined;
}
if (value === null) {
return null;
}
return {
'name': value.name,
'type': value.type,
'buffer': value.buffer,
'sddMandateId': value.sddMandateId,
};
}