/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { employeeAddressesCreate } from "../funcs/employeeAddressesCreate.js"; import { employeeAddressesCreateWorkAddress } from "../funcs/employeeAddressesCreateWorkAddress.js"; import { employeeAddressesDelete } from "../funcs/employeeAddressesDelete.js"; import { employeeAddressesDeleteWorkAddress } from "../funcs/employeeAddressesDeleteWorkAddress.js"; import { employeeAddressesGet } from "../funcs/employeeAddressesGet.js"; import { employeeAddressesGetWorkAddresses } from "../funcs/employeeAddressesGetWorkAddresses.js"; import { employeeAddressesRetrieveHomeAddress } from "../funcs/employeeAddressesRetrieveHomeAddress.js"; import { employeeAddressesRetrieveWorkAddress } from "../funcs/employeeAddressesRetrieveWorkAddress.js"; import { employeeAddressesUpdate } from "../funcs/employeeAddressesUpdate.js"; import { employeeAddressesUpdateWorkAddress } from "../funcs/employeeAddressesUpdateWorkAddress.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import { DeleteV1HomeAddressesHomeAddressUuidRequest, DeleteV1HomeAddressesHomeAddressUuidResponse, } from "../models/operations/deletev1homeaddresseshomeaddressuuid.js"; import { DeleteV1WorkAddressesWorkAddressUuidRequest, DeleteV1WorkAddressesWorkAddressUuidResponse, } from "../models/operations/deletev1workaddressesworkaddressuuid.js"; import { GetV1EmployeesEmployeeIdHomeAddressesRequest, GetV1EmployeesEmployeeIdHomeAddressesResponse, } from "../models/operations/getv1employeesemployeeidhomeaddresses.js"; import { GetV1EmployeesEmployeeIdWorkAddressesRequest, GetV1EmployeesEmployeeIdWorkAddressesResponse, } from "../models/operations/getv1employeesemployeeidworkaddresses.js"; import { GetV1HomeAddressesHomeAddressUuidRequest, GetV1HomeAddressesHomeAddressUuidResponse, } from "../models/operations/getv1homeaddresseshomeaddressuuid.js"; import { GetV1WorkAddressesWorkAddressUuidRequest, GetV1WorkAddressesWorkAddressUuidResponse, } from "../models/operations/getv1workaddressesworkaddressuuid.js"; import { PostV1EmployeesEmployeeIdHomeAddressesRequest, PostV1EmployeesEmployeeIdHomeAddressesResponse, } from "../models/operations/postv1employeesemployeeidhomeaddresses.js"; import { PostV1EmployeesEmployeeIdWorkAddressesRequest, PostV1EmployeesEmployeeIdWorkAddressesResponse, } from "../models/operations/postv1employeesemployeeidworkaddresses.js"; import { PutV1HomeAddressesHomeAddressUuidRequest, PutV1HomeAddressesHomeAddressUuidResponse, } from "../models/operations/putv1homeaddresseshomeaddressuuid.js"; import { PutV1WorkAddressesWorkAddressUuidRequest, PutV1WorkAddressesWorkAddressUuidResponse, } from "../models/operations/putv1workaddressesworkaddressuuid.js"; import { unwrapAsync } from "../types/fp.js"; export class EmployeeAddresses extends ClientSDK { /** * Get an employee's home addresses * * @remarks * The home address of an employee is used to determine certain tax information about them. Addresses are geocoded on create and update to ensure validity. * * Supports home address effective dating and courtesy withholding. * * scope: `employees:read` */ async get( request: GetV1EmployeesEmployeeIdHomeAddressesRequest, options?: RequestOptions, ): Promise { return unwrapAsync(employeeAddressesGet( this, request, options, )); } /** * Create an employee's home address * * @remarks * The home address of an employee is used to determine certain tax information about them. Addresses are geocoded on create and update to ensure validity. * * Supports home address effective dating and courtesy withholding. * * scope: `employees:write` */ async create( request: PostV1EmployeesEmployeeIdHomeAddressesRequest, options?: RequestOptions, ): Promise { return unwrapAsync(employeeAddressesCreate( this, request, options, )); } /** * Get an employee's home address * * @remarks * The home address of an employee is used to determine certain tax information about them. Addresses are geocoded on create and update to ensure validity. * * Supports home address effective dating and courtesy withholding. * * scope: `employees:read` */ async retrieveHomeAddress( request: GetV1HomeAddressesHomeAddressUuidRequest, options?: RequestOptions, ): Promise { return unwrapAsync(employeeAddressesRetrieveHomeAddress( this, request, options, )); } /** * Update an employee's home address * * @remarks * The home address of an employee is used to determine certain tax information about them. Addresses are geocoded on create and update to ensure validity. * * Supports home address effective dating and courtesy withholding. * * scope: `employees:write` */ async update( request: PutV1HomeAddressesHomeAddressUuidRequest, options?: RequestOptions, ): Promise { return unwrapAsync(employeeAddressesUpdate( this, request, options, )); } /** * Delete an employee's home address * * @remarks * Used for deleting an employee's home address. Cannot delete the employee's active home address. * * scope: `employees:write` */ async delete( request: DeleteV1HomeAddressesHomeAddressUuidRequest, options?: RequestOptions, ): Promise { return unwrapAsync(employeeAddressesDelete( this, request, options, )); } /** * Get an employee's work addresses * * @remarks * Returns a list of an employee's work addresses. Each address includes its effective * date and a boolean signifying if it is the currently active work address. * * scope: `employees:read` */ async getWorkAddresses( request: GetV1EmployeesEmployeeIdWorkAddressesRequest, options?: RequestOptions, ): Promise { return unwrapAsync(employeeAddressesGetWorkAddresses( this, request, options, )); } /** * Create an employee work address * * @remarks * The work address of an employee describes when an employee began working at an associated company location. * * scope: `employees:manage` */ async createWorkAddress( request: PostV1EmployeesEmployeeIdWorkAddressesRequest, options?: RequestOptions, ): Promise { return unwrapAsync(employeeAddressesCreateWorkAddress( this, request, options, )); } /** * Get an employee work address * * @remarks * The work address of an employee is used for payroll tax purposes. * * scope: `employees:read` */ async retrieveWorkAddress( request: GetV1WorkAddressesWorkAddressUuidRequest, options?: RequestOptions, ): Promise { return unwrapAsync(employeeAddressesRetrieveWorkAddress( this, request, options, )); } /** * Update an employee work address * * @remarks * The work address of an employee is used for payroll tax purposes. * * scope: `employees:manage` */ async updateWorkAddress( request: PutV1WorkAddressesWorkAddressUuidRequest, options?: RequestOptions, ): Promise { return unwrapAsync(employeeAddressesUpdateWorkAddress( this, request, options, )); } /** * Delete an employee's work address * * @remarks * Used for deleting an employee's work address. Cannot delete the employee's active work address. * * scope: `employees:manage` */ async deleteWorkAddress( request: DeleteV1WorkAddressesWorkAddressUuidRequest, options?: RequestOptions, ): Promise { return unwrapAsync(employeeAddressesDeleteWorkAddress( this, request, options, )); } }