@apideck/node
Version:
Apideck Node.js SDK
697 lines (690 loc) • 21.8 kB
text/typescript
/* 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)
}
}