UNPKG

@apideck/node

Version:
697 lines (690 loc) 21.8 kB
/* tslint:disable */ /* eslint-disable */ /** * Apideck * The Apideck OpenAPI Spec: SDK Optimized * * The version of the OpenAPI document: 10.13.0 * Contact: support@apideck.com * * 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 } from '../runtime' import { Address, AddressFromJSON, AddressToJSON } from './Address' import { BankAccount, BankAccountFromJSON, BankAccountToJSON } from './BankAccount' import { CustomField, CustomFieldFromJSON, CustomFieldToJSON } from './CustomField' import { Email, EmailFromJSON, EmailToJSON } from './Email' import { EmployeeCompensation, EmployeeCompensationFromJSON, EmployeeCompensationToJSON } from './EmployeeCompensation' import { EmployeeEmploymentRole, EmployeeEmploymentRoleFromJSON, EmployeeEmploymentRoleToJSON } from './EmployeeEmploymentRole' import { EmployeeJob, EmployeeJobFromJSON, EmployeeJobToJSON } from './EmployeeJob' import { EmployeeManager, EmployeeManagerFromJSON, EmployeeManagerToJSON } from './EmployeeManager' import { EmploymentStatus, EmploymentStatusFromJSON, EmploymentStatusToJSON } from './EmploymentStatus' import { Gender, GenderFromJSON, GenderToJSON } from './Gender' import { PassThroughBody, PassThroughBodyFromJSON, PassThroughBodyToJSON } from './PassThroughBody' import { Person, PersonFromJSON, PersonToJSON } from './Person' import { PhoneNumber, PhoneNumberFromJSON, PhoneNumberToJSON } from './PhoneNumber' import { ProbationPeriod, ProbationPeriodFromJSON, ProbationPeriodToJSON } from './ProbationPeriod' import { SocialLink, SocialLinkFromJSON, SocialLinkToJSON } from './SocialLink' import { Tags, TagsFromJSON, TagsToJSON } from './Tags' import { Team, TeamFromJSON, TeamToJSON } from './Team' /** * * @export * @interface Employee */ export interface Employee { /** * A unique identifier for an object. * @type {string} * @memberof Employee */ id?: string | null /** * The first name of the person. * @type {string} * @memberof Employee */ first_name?: string | null /** * The last name of the person. * @type {string} * @memberof Employee */ last_name?: string | null /** * Middle name of the person. * @type {string} * @memberof Employee */ middle_name?: string | null /** * The name used to display the employee, often a combination of their first and last names. * @type {string} * @memberof Employee */ display_name?: string | null /** * The name the employee prefers to be addressed by, which may be different from their legal name. * @type {string} * @memberof Employee */ preferred_name?: string | null /** * The initials of the person, usually derived from their first, middle, and last names. * @type {string} * @memberof Employee */ initials?: string | null /** * A formal salutation for the person. For example, 'Mr', 'Mrs' * @type {string} * @memberof Employee */ salutation?: string | null /** * The job title of the person. * @type {string} * @memberof Employee */ title?: string | null /** * The marital status of the employee. * @type {string} * @memberof Employee */ marital_status?: string | null /** * * @type {Person} * @memberof Employee */ partner?: Person /** * The division the person is currently in. Usually a collection of departments or teams or regions. * @type {string} * @memberof Employee */ division?: string | null /** * Unique identifier of the division this employee belongs to. * @type {string} * @memberof Employee */ division_id?: string | null /** * The department the person is currently in. [Deprecated](https://developers.apideck.com/changelog) in favor of the dedicated department_id and department_name field. * @type {string} * @memberof Employee */ department?: string | null /** * Unique identifier of the department ID this employee belongs to. * @type {string} * @memberof Employee */ department_id?: string | null /** * Name of the department this employee belongs to. * @type {string} * @memberof Employee */ department_name?: string | null /** * * @type {Team} * @memberof Employee */ team?: Team | null /** * The unique identifier of the company. * @type {string} * @memberof Employee */ company_id?: string | null /** * The name of the company. * @type {string} * @memberof Employee */ company_name?: string | null /** * A Start Date is the date that the employee started working at the company * @type {string} * @memberof Employee */ employment_start_date?: string | null /** * An End Date is the date that the employee ended working at the company * @type {string} * @memberof Employee */ employment_end_date?: string | null /** * The reason because the employment ended. * @type {string} * @memberof Employee */ leaving_reason?: EmployeeLeavingReason /** * An Employee Number, Employee ID or Employee Code, is a unique number that has been assigned to each individual staff member within a company. * @type {string} * @memberof Employee */ employee_number?: string | null /** * * @type {EmploymentStatus} * @memberof Employee */ employment_status?: EmploymentStatus | null /** * * @type {EmployeeEmploymentRole} * @memberof Employee */ employment_role?: EmployeeEmploymentRole /** * The ethnicity of the employee * @type {string} * @memberof Employee */ ethnicity?: string | null /** * * @type {EmployeeManager} * @memberof Employee */ manager?: EmployeeManager /** * Direct reports is an array of ids that reflect the individuals in an organizational hierarchy who are directly supervised by this specific employee. * @type {Array<string>} * @memberof Employee */ direct_reports?: Array<string> | null /** * A unique identifier assigned by the government. This field is considered sensitive information and may be subject to special security and privacy restrictions. * @type {string} * @memberof Employee */ social_security_number?: string | null /** * The date of birth of the person. * @type {Date} * @memberof Employee */ birthday?: Date | null /** * The date the person deceased. * @type {Date} * @memberof Employee */ deceased_on?: Date | null /** * Country code according to ISO 3166-1 alpha-2. * @type {string} * @memberof Employee */ country_of_birth?: string | null /** * A description of the object. * @type {string} * @memberof Employee */ description?: string | null /** * * @type {Gender} * @memberof Employee */ gender?: Gender | null /** * The preferred pronouns of the person. * @type {string} * @memberof Employee */ pronouns?: string | null /** * language code according to ISO 639-1. For the United States - EN * @type {string} * @memberof Employee */ preferred_language?: string | null /** * * @type {Array<string>} * @memberof Employee */ languages?: Array<string> /** * * @type {Array<string>} * @memberof Employee */ nationalities?: Array<string> /** * The URL of the photo of a person. * @type {string} * @memberof Employee */ photo_url?: string | null /** * The time zone related to the resource. The value is a string containing a standard time zone identifier, e.g. Europe/London. * @type {string} * @memberof Employee */ timezone?: string | null /** * When the employee is imported as a new hire, this field indicates what system (e.g. the name of the ATS) this employee was imported from. * @type {string} * @memberof Employee */ source?: string | null /** * Unique identifier of the employee in the system this employee was imported from (e.g. the ID in the ATS). * @type {string} * @memberof Employee */ source_id?: string | null /** * * @type {string} * @memberof Employee */ record_url?: string | null /** * * @type {Array<EmployeeJob>} * @memberof Employee */ jobs?: Array<EmployeeJob> | null /** * * @type {Array<EmployeeCompensation>} * @memberof Employee */ compensations?: Array<EmployeeCompensation> | null /** * Indicates if the employee works from a remote location. * @type {boolean} * @memberof Employee */ works_remote?: boolean | null /** * * @type {Array<Address>} * @memberof Employee */ addresses?: Array<Address> /** * * @type {Array<PhoneNumber>} * @memberof Employee */ phone_numbers?: Array<PhoneNumber> /** * * @type {Array<Email>} * @memberof Employee */ emails?: Array<Email> /** * * @type {Array<CustomField>} * @memberof Employee */ custom_fields?: Array<CustomField> /** * * @type {Array<SocialLink>} * @memberof Employee */ social_links?: Array<SocialLink> /** * * @type {Array<BankAccount>} * @memberof Employee */ bank_accounts?: Array<BankAccount> /** * * @type {string} * @memberof Employee */ tax_code?: string | null /** * * @type {string} * @memberof Employee */ tax_id?: string | null /** * Indicate the employee's dietary preference. * @type {string} * @memberof Employee */ dietary_preference?: string | null /** * Indicate the employee's food allergies. * @type {Array<string>} * @memberof Employee */ food_allergies?: Array<string> | null /** * * @type {ProbationPeriod} * @memberof Employee */ probation_period?: ProbationPeriod /** * * @type {Tags} * @memberof Employee */ tags?: Tags | null /** * When custom mappings are configured on the resource, the result is included here. * @type {object} * @memberof Employee */ readonly custom_mappings?: object | null /** * A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. * @type {string} * @memberof Employee */ row_version?: string | null /** * Flag to indicate if the object is deleted. * @type {boolean} * @memberof Employee */ deleted?: boolean | null /** * The user who last updated the object. * @type {string} * @memberof Employee */ readonly updated_by?: string | null /** * The user who created the object. * @type {string} * @memberof Employee */ readonly created_by?: string | null /** * The date and time when the object was last updated. * @type {Date} * @memberof Employee */ readonly updated_at?: Date | null /** * The date and time when the object was created. * @type {Date} * @memberof Employee */ readonly created_at?: Date | null /** * * @type {PassThroughBody} * @memberof Employee */ pass_through?: PassThroughBody } /** * @export * @enum {string} */ export enum EmployeeLeavingReason { dismissed = 'dismissed', resigned = 'resigned', redundancy = 'redundancy', other = 'other' } export function EmployeeFromJSON(json: any): Employee { return EmployeeFromJSONTyped(json, false) } export function EmployeeFromJSONTyped(json: any, ignoreDiscriminator: boolean): Employee { if (json === undefined || json === null) { return json } return { id: !exists(json, 'id') ? undefined : json['id'], first_name: !exists(json, 'first_name') ? undefined : json['first_name'], last_name: !exists(json, 'last_name') ? undefined : json['last_name'], middle_name: !exists(json, 'middle_name') ? undefined : json['middle_name'], display_name: !exists(json, 'display_name') ? undefined : json['display_name'], preferred_name: !exists(json, 'preferred_name') ? undefined : json['preferred_name'], initials: !exists(json, 'initials') ? undefined : json['initials'], salutation: !exists(json, 'salutation') ? undefined : json['salutation'], title: !exists(json, 'title') ? undefined : json['title'], marital_status: !exists(json, 'marital_status') ? undefined : json['marital_status'], partner: !exists(json, 'partner') ? undefined : PersonFromJSON(json['partner']), division: !exists(json, 'division') ? undefined : json['division'], division_id: !exists(json, 'division_id') ? undefined : json['division_id'], department: !exists(json, 'department') ? undefined : json['department'], department_id: !exists(json, 'department_id') ? undefined : json['department_id'], department_name: !exists(json, 'department_name') ? undefined : json['department_name'], team: !exists(json, 'team') ? undefined : TeamFromJSON(json['team']), company_id: !exists(json, 'company_id') ? undefined : json['company_id'], company_name: !exists(json, 'company_name') ? undefined : json['company_name'], employment_start_date: !exists(json, 'employment_start_date') ? undefined : json['employment_start_date'], employment_end_date: !exists(json, 'employment_end_date') ? undefined : json['employment_end_date'], leaving_reason: !exists(json, 'leaving_reason') ? undefined : json['leaving_reason'], employee_number: !exists(json, 'employee_number') ? undefined : json['employee_number'], employment_status: !exists(json, 'employment_status') ? undefined : EmploymentStatusFromJSON(json['employment_status']), employment_role: !exists(json, 'employment_role') ? undefined : EmployeeEmploymentRoleFromJSON(json['employment_role']), ethnicity: !exists(json, 'ethnicity') ? undefined : json['ethnicity'], manager: !exists(json, 'manager') ? undefined : EmployeeManagerFromJSON(json['manager']), direct_reports: !exists(json, 'direct_reports') ? undefined : json['direct_reports'], social_security_number: !exists(json, 'social_security_number') ? undefined : json['social_security_number'], birthday: !exists(json, 'birthday') ? undefined : json['birthday'] === null ? null : new Date(json['birthday']), deceased_on: !exists(json, 'deceased_on') ? undefined : json['deceased_on'] === null ? null : new Date(json['deceased_on']), country_of_birth: !exists(json, 'country_of_birth') ? undefined : json['country_of_birth'], description: !exists(json, 'description') ? undefined : json['description'], gender: !exists(json, 'gender') ? undefined : GenderFromJSON(json['gender']), pronouns: !exists(json, 'pronouns') ? undefined : json['pronouns'], preferred_language: !exists(json, 'preferred_language') ? undefined : json['preferred_language'], languages: !exists(json, 'languages') ? undefined : json['languages'], nationalities: !exists(json, 'nationalities') ? undefined : json['nationalities'], photo_url: !exists(json, 'photo_url') ? undefined : json['photo_url'], timezone: !exists(json, 'timezone') ? undefined : json['timezone'], source: !exists(json, 'source') ? undefined : json['source'], source_id: !exists(json, 'source_id') ? undefined : json['source_id'], record_url: !exists(json, 'record_url') ? undefined : json['record_url'], jobs: !exists(json, 'jobs') ? undefined : json['jobs'] === null ? null : (json['jobs'] as Array<any>).map(EmployeeJobFromJSON), compensations: !exists(json, 'compensations') ? undefined : json['compensations'] === null ? null : (json['compensations'] as Array<any>).map(EmployeeCompensationFromJSON), works_remote: !exists(json, 'works_remote') ? undefined : json['works_remote'], addresses: !exists(json, 'addresses') ? undefined : (json['addresses'] as Array<any>).map(AddressFromJSON), phone_numbers: !exists(json, 'phone_numbers') ? undefined : (json['phone_numbers'] as Array<any>).map(PhoneNumberFromJSON), emails: !exists(json, 'emails') ? undefined : (json['emails'] as Array<any>).map(EmailFromJSON), custom_fields: !exists(json, 'custom_fields') ? undefined : (json['custom_fields'] as Array<any>).map(CustomFieldFromJSON), social_links: !exists(json, 'social_links') ? undefined : (json['social_links'] as Array<any>).map(SocialLinkFromJSON), bank_accounts: !exists(json, 'bank_accounts') ? undefined : (json['bank_accounts'] as Array<any>).map(BankAccountFromJSON), tax_code: !exists(json, 'tax_code') ? undefined : json['tax_code'], tax_id: !exists(json, 'tax_id') ? undefined : json['tax_id'], dietary_preference: !exists(json, 'dietary_preference') ? undefined : json['dietary_preference'], food_allergies: !exists(json, 'food_allergies') ? undefined : json['food_allergies'], probation_period: !exists(json, 'probation_period') ? undefined : ProbationPeriodFromJSON(json['probation_period']), tags: !exists(json, 'tags') ? undefined : TagsFromJSON(json['tags']), custom_mappings: !exists(json, 'custom_mappings') ? undefined : json['custom_mappings'], row_version: !exists(json, 'row_version') ? undefined : json['row_version'], deleted: !exists(json, 'deleted') ? undefined : json['deleted'], updated_by: !exists(json, 'updated_by') ? undefined : json['updated_by'], created_by: !exists(json, 'created_by') ? undefined : json['created_by'], updated_at: !exists(json, 'updated_at') ? undefined : json['updated_at'] === null ? null : new Date(json['updated_at']), created_at: !exists(json, 'created_at') ? undefined : json['created_at'] === null ? null : new Date(json['created_at']), pass_through: !exists(json, 'pass_through') ? undefined : PassThroughBodyFromJSON(json['pass_through']) } } export function EmployeeToJSON(value?: Employee | null): any { if (value === undefined) { return undefined } if (value === null) { return null } return { id: value.id, first_name: value.first_name, last_name: value.last_name, middle_name: value.middle_name, display_name: value.display_name, preferred_name: value.preferred_name, initials: value.initials, salutation: value.salutation, title: value.title, marital_status: value.marital_status, partner: PersonToJSON(value.partner), division: value.division, division_id: value.division_id, department: value.department, department_id: value.department_id, department_name: value.department_name, team: TeamToJSON(value.team), company_id: value.company_id, company_name: value.company_name, employment_start_date: value.employment_start_date, employment_end_date: value.employment_end_date, leaving_reason: value.leaving_reason, employee_number: value.employee_number, employment_status: EmploymentStatusToJSON(value.employment_status), employment_role: EmployeeEmploymentRoleToJSON(value.employment_role), ethnicity: value.ethnicity, manager: EmployeeManagerToJSON(value.manager), direct_reports: value.direct_reports, social_security_number: value.social_security_number, birthday: value.birthday === undefined ? undefined : value.birthday === null ? null : new Date(value.birthday).toISOString().substr(0, 10), deceased_on: value.deceased_on === undefined ? undefined : value.deceased_on === null ? null : new Date(value.deceased_on).toISOString().substr(0, 10), country_of_birth: value.country_of_birth, description: value.description, gender: GenderToJSON(value.gender), pronouns: value.pronouns, preferred_language: value.preferred_language, languages: value.languages, nationalities: value.nationalities, photo_url: value.photo_url, timezone: value.timezone, source: value.source, source_id: value.source_id, record_url: value.record_url, jobs: value.jobs === undefined ? undefined : value.jobs === null ? null : (value.jobs as Array<any>).map(EmployeeJobToJSON), compensations: value.compensations === undefined ? undefined : value.compensations === null ? null : (value.compensations as Array<any>).map(EmployeeCompensationToJSON), works_remote: value.works_remote, addresses: value.addresses === undefined ? undefined : (value.addresses as Array<any>).map(AddressToJSON), phone_numbers: value.phone_numbers === undefined ? undefined : (value.phone_numbers as Array<any>).map(PhoneNumberToJSON), emails: value.emails === undefined ? undefined : (value.emails as Array<any>).map(EmailToJSON), custom_fields: value.custom_fields === undefined ? undefined : (value.custom_fields as Array<any>).map(CustomFieldToJSON), social_links: value.social_links === undefined ? undefined : (value.social_links as Array<any>).map(SocialLinkToJSON), bank_accounts: value.bank_accounts === undefined ? undefined : (value.bank_accounts as Array<any>).map(BankAccountToJSON), tax_code: value.tax_code, tax_id: value.tax_id, dietary_preference: value.dietary_preference, food_allergies: value.food_allergies, probation_period: ProbationPeriodToJSON(value.probation_period), tags: TagsToJSON(value.tags), row_version: value.row_version, deleted: value.deleted, pass_through: PassThroughBodyToJSON(value.pass_through) } }