// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../core/resource'; import * as BusinessPartnersAPI from './business-partners'; import { APIPromise } from '../core/api-promise'; import { PageCursorURL, PagePromise } from '../core/pagination'; import { buildHeaders } from '../internal/headers'; import { RequestOptions } from '../internal/request-options'; import { path } from '../internal/utils/path'; /** * Job titles used by the company */ export class Titles extends APIResource { /** * A list of titles. * * - Requires: `API Tier 1` * - Sortable fields: `id`, `created_at`, `updated_at` */ list( query: TitleListParams | null | undefined = {}, options?: RequestOptions, ): PagePromise { return this._client.getAPIList('/titles/', PageCursorURL, { query, ...options }); } /** * Create a new title */ create(body: TitleCreateParams, options?: RequestOptions): APIPromise { return this._client.post('/titles/', { body, ...options }); } /** * Retrieve a specific title */ retrieve(id: string, options?: RequestOptions): APIPromise { return this._client.get(path`/titles/${id}/`, options); } /** * Update a specific title. */ update(id: string, body: TitleUpdateParams, options?: RequestOptions): APIPromise { return this._client.patch(path`/titles/${id}/`, { body, ...options }); } /** * Delete a title */ delete(id: string, options?: RequestOptions): APIPromise { return this._client.delete(path`/titles/${id}/`, { ...options, headers: buildHeaders([{ Accept: '*/*' }, options?.headers]), }); } } export type TitleListResponsesPageCursorURL = PageCursorURL; export interface TitleListResponse { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * The name of the title. */ name: string; /** * Record update date */ updated_at: string; } export interface TitleCreateResponse { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * The name of the title. */ name: string; /** * Record update date */ updated_at: string; } /** * Meta information for the response. */ export interface TitleRetrieveResponse extends BusinessPartnersAPI.Meta { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * The name of the title. */ name: string; /** * Record update date */ updated_at: string; } export interface TitleUpdateResponse { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * The name of the title. */ name: string; /** * Record update date */ updated_at: string; } export interface TitleListParams { cursor?: string; order_by?: string; } export interface TitleCreateParams { /** * The name of the title. */ name: string; } export interface TitleUpdateParams { /** * The name of the title. */ name: string; } export declare namespace Titles { export { type TitleListResponse as TitleListResponse, type TitleCreateResponse as TitleCreateResponse, type TitleRetrieveResponse as TitleRetrieveResponse, type TitleUpdateResponse as TitleUpdateResponse, type TitleListResponsesPageCursorURL as TitleListResponsesPageCursorURL, type TitleListParams as TitleListParams, type TitleCreateParams as TitleCreateParams, type TitleUpdateParams as TitleUpdateParams, }; }