// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import type { RequestInit, RequestInfo, BodyInit } from './internal/builtin-types'; import type { HTTPMethod, PromiseOrValue, MergedRequestInit, FinalizedRequestInit } from './internal/types'; import { uuid4 } from './internal/utils/uuid'; import { validatePositiveInteger, isAbsoluteURL, safeJSON } from './internal/utils/values'; import { sleep } from './internal/utils/sleep'; export type { Logger, LogLevel } from './internal/utils/log'; import { castToError, isAbortError } from './internal/errors'; import type { APIResponseProps } from './internal/parse'; import { getPlatformHeaders } from './internal/detect-platform'; import * as Shims from './internal/shims'; import * as Opts from './internal/request-options'; import { stringifyQuery } from './internal/utils/query'; import { VERSION } from './version'; import * as Errors from './core/error'; import * as Pagination from './core/pagination'; import { AbstractPage, PageCursorURLResponse } from './core/pagination'; import * as Uploads from './core/uploads'; import * as API from './resources/index'; import { APIPromise } from './core/api-promise'; import { BreakPolicies, BreakPolicyListParams, BreakPolicyListResponse, BreakPolicyListResponsesPageCursorURL, BreakPolicyRetrieveResponse, } from './resources/break-policies'; import { BreakTypeListParams, BreakTypeListResponse, BreakTypeListResponsesPageCursorURL, BreakTypeRetrieveParams, BreakTypeRetrieveResponse, BreakTypes, } from './resources/break-types'; import { BusinessPartnerGroup, BusinessPartnerGroupCreateParams, BusinessPartnerGroupListParams, BusinessPartnerGroupRetrieveParams, BusinessPartnerGroupRetrieveResponse, BusinessPartnerGroups, BusinessPartnerGroupsPageCursorURL, } from './resources/business-partner-groups'; import { BusinessPartner, BusinessPartnerCreateParams, BusinessPartnerListParams, BusinessPartnerRetrieveParams, BusinessPartnerRetrieveResponse, BusinessPartners, BusinessPartnersPageCursorURL, Meta, } from './resources/business-partners'; import { BusinessStructurePathListParams, BusinessStructurePathListResponse, BusinessStructurePathListResponsesPageCursorURL, BusinessStructurePathRetrieveParams, BusinessStructurePathRetrieveResponse, BusinessStructurePaths, } from './resources/business-structure-paths'; import { CandidateApplicationListParams, CandidateApplicationListResponse, CandidateApplicationListResponsesPageCursorURL, CandidateApplications, } from './resources/candidate-applications'; import { CandidateListParams, CandidateListResponse, CandidateListResponsesPageCursorURL, Candidates, } from './resources/candidates'; import { Companies, CompaniesPageCursorURL, Company, CompanyListParams } from './resources/companies'; import { CompanyLegalEntities, CompanyLegalEntityListParams, CompanyLegalEntityListResponse, CompanyLegalEntityListResponsesPageCursorURL, CompanyLegalEntityRetrieveResponse, } from './resources/company-legal-entities'; import { CompanyLegalEntityWorkerListParams, CompanyLegalEntityWorkerListResponse, CompanyLegalEntityWorkerListResponsesPageCursorURL, CompanyLegalEntityWorkerRetrieveResponse, CompanyLegalEntityWorkers, } from './resources/company-legal-entity-workers'; import { CompensationBandsDetailListParams, CompensationBandsDetailListResponse, CompensationBandsDetailListResponsesPageCursorURL, CompensationBandsDetailRetrieveParams, CompensationBandsDetailRetrieveResponse, CompensationBandsDetails, } from './resources/compensation-bands-details'; import { Compensation, CompensationListParams, CompensationRetrieveParams, CompensationRetrieveResponse, Compensations, CompensationsPageCursorURL, } from './resources/compensations'; import { CustomAppCreateParams, CustomAppCreateResponse, CustomAppListResponse, CustomAppListResponsesPageCursorURL, CustomAppRetrieveResponse, CustomAppUpdateParams, CustomAppUpdateResponse, CustomApps, } from './resources/custom-apps'; import { CustomFieldListParams, CustomFieldListResponse, CustomFieldListResponsesPageCursorURL, CustomFields, } from './resources/custom-fields'; import { CustomPageCreateParams, CustomPageCreateResponse, CustomPageListResponse, CustomPageListResponsesPageCursorURL, CustomPageRetrieveResponse, CustomPageUpdateParams, CustomPageUpdateResponse, CustomPages, } from './resources/custom-pages'; import { CustomSettingCreateParams, CustomSettingCreateResponse, CustomSettingListParams, CustomSettingListResponse, CustomSettingListResponsesPageCursorURL, CustomSettingRetrieveResponse, CustomSettingUpdateParams, CustomSettingUpdateResponse, CustomSettings, } from './resources/custom-settings'; import { Department, DepartmentCreateParams, DepartmentListParams, DepartmentRetrieveParams, DepartmentRetrieveResponse, DepartmentUpdateParams, Departments, DepartmentsPageCursorURL, } from './resources/departments'; import { DeviceOrderListParams, DeviceOrderListResponse, DeviceOrderListResponsesPageCursorURL, DeviceOrderRetrieveParams, DeviceOrderRetrieveResponse, DeviceOrders, } from './resources/device-orders'; import { DraftHireCreateParams, DraftHireCreateResponse, DraftHires } from './resources/draft-hires'; import { EarningTypeListResponse, EarningTypeListResponsesPageCursorURL, EarningTypes, } from './resources/earning-types'; import { EarningsInputCreateParams, EarningsInputCreateResponse, EarningsInputListResponse, EarningsInputListResponsesPageCursorURL, EarningsInputs, } from './resources/earnings-inputs'; import { EmployeeDocumentCreateParams, EmployeeDocumentCreateResponse, EmployeeDocuments, } from './resources/employee-documents'; import { CompanyEmploymentType, CompanyEmploymentTypesPageCursorURL, EmploymentTypeListParams, EmploymentTypeRetrieveResponse, EmploymentTypes, } from './resources/employment-types'; import { EntitlementListResponse, EntitlementListResponsesPageCursorURL, Entitlements, } from './resources/entitlements'; import { FileCreateParams, FileCreateResponse, FileRetrieveResponse, Files } from './resources/files'; import { HeadcountPositionListParams, HeadcountPositionListResponse, HeadcountPositionListResponsesPageCursorURL, HeadcountPositionRetrieveParams, HeadcountPositionRetrieveResponse, HeadcountPositions, } from './resources/headcount-positions'; import { HeadcountPriorities, HeadcountPriorityListParams, HeadcountPriorityListResponse, HeadcountPriorityListResponsesPageCursorURL, HeadcountPriorityRetrieveResponse, } from './resources/headcount-priorities'; import { AttributeChangeDetails, AttributeChangeDetailsPageCursorURL, JobAssignment, JobAssignmentCreateParams, JobAssignmentDeleteParams, JobAssignmentListChangeLogParams, JobAssignmentListParams, JobAssignmentRetrieveParams, JobAssignmentRetrieveResponse, JobAssignmentUpdateParams, JobAssignments, JobAssignmentsPageCursorURL, } from './resources/job-assignments'; import { JobCode, JobCodeCreateParams, JobCodeListChangeLogParams, JobCodeListParams, JobCodeRequest, JobCodeRetrieveParams, JobCodeRetrieveResponse, JobCodeUpdateParams, JobCodes, JobCodesPageCursorURL, } from './resources/job-codes'; import { JobDimension, JobDimensionCreateParams, JobDimensionListParams, JobDimensionRequest, JobDimensionRetrieveResponse, JobDimensionUpdateParams, JobDimensions, JobDimensionsPageCursorURL, } from './resources/job-dimensions'; import { JobFunctionListParams, JobFunctionListResponse, JobFunctionListResponsesPageCursorURL, JobFunctionRetrieveResponse, JobFunctions, } from './resources/job-functions'; import { JobPayRateException, JobPayRateExceptionListChangeLogParams, JobPayRateExceptionListParams, JobPayRateExceptionRetrieveParams, JobPayRateExceptionRetrieveResponse, JobPayRateExceptions, JobPayRateExceptionsPageCursorURL, } from './resources/job-pay-rate-exceptions'; import { JobRequisition, JobRequisitionListParams, JobRequisitions, JobRequisitionsPageCursorURL, } from './resources/job-requisitions'; import { JobRequisitionsWrite, JobRequisitionsWriteCreateParams, JobRequisitionsWriteCreateResponse, } from './resources/job-requisitions-write'; import { KioskBadgeCreateParams, KioskBadgeCreateResponse, KioskBadgeListParams, KioskBadgeListResponse, KioskBadgeListResponsesPageCursorURL, KioskBadgeRetrieveParams, KioskBadgeRetrieveResponse, KioskBadgeUpdateParams, KioskBadgeUpdateResponse, KioskBadges, TimeKioskBadge, } from './resources/kiosk-badges'; import { LeaveAccrualCreateParams, LeaveAccrualCreateResponse, LeaveAccrualListParams, LeaveAccrualListResponse, LeaveAccrualListResponsesPageCursorURL, LeaveAccrualRetrieveParams, LeaveAccrualRetrieveResponse, LeaveAccruals, } from './resources/leave-accruals'; import { LeaveBalance, LeaveBalanceListParams, LeaveBalanceRetrieveParams, LeaveBalanceRetrieveResponse, LeaveBalances, LeaveBalancesPageCursorURL, } from './resources/leave-balances'; import { LeaveRequest, LeaveRequestCreateParams, LeaveRequestCreateResponse, LeaveRequestListParams, LeaveRequestListResponse, LeaveRequestListResponsesPageCursorURL, LeaveRequestRetrieveParams, LeaveRequestRetrieveResponse, LeaveRequestUpdateParams, LeaveRequestUpdateResponse, LeaveRequests, } from './resources/leave-requests'; import { LeaveType, LeaveTypeListParams, LeaveTypeRetrieveResponse, LeaveTypes, LeaveTypesPageCursorURL, } from './resources/leave-types'; import { LegalEntities, LegalEntitiesPageCursorURL, LegalEntity, LegalEntityListParams, LegalEntityRetrieveParams, LegalEntityRetrieveResponse, } from './resources/legal-entities'; import { Level, LevelListParams, LevelRetrieveParams, LevelRetrieveResponse, Levels, LevelsPageCursorURL, } from './resources/levels'; import { LocationFactorListParams, LocationFactorListResponse, LocationFactorListResponsesPageCursorURL, LocationFactorRetrieveResponse, LocationFactors, } from './resources/location-factors'; import { ObjectCategories, ObjectCategoriesPageCursorURL, ObjectCategory, ObjectCategoryCreateParams, ObjectCategoryUpdateParams, } from './resources/object-categories'; import { PlatformCapabilities, PlatformCapabilityListResponse, PlatformCapabilityListResponsesPageCursorURL, } from './resources/platform-capabilities'; import { ReportRunCreateParams, ReportRunCreateResponse, ReportRunRetrieveResponse, ReportRuns, } from './resources/report-runs'; import { ScheduledJobAssignmentListParams, ScheduledJobAssignmentListResponse, ScheduledJobAssignmentListResponsesPageCursorURL, ScheduledJobAssignmentRetrieveResponse, ScheduledJobAssignments, } from './resources/scheduled-job-assignments'; import { ScheduleCreateParams, ScheduleCreateResponse, ScheduleListParams, ScheduleListResponse, ScheduleListResponsesPageCursorURL, ScheduleRetrieveParams, ScheduleRetrieveResponse, ScheduleUpdateParams, ScheduleUpdateResponse, Schedules, } from './resources/schedules'; import { ShiftAssignmentUpdateCustomfieldsParams, ShiftAssignmentUpdateCustomfieldsResponse, ShiftAssignments, } from './resources/shift-assignments'; import { ShiftInput, ShiftInputCreateParams, ShiftInputCreateResponse, ShiftInputListParams, ShiftInputListResponse, ShiftInputListResponsesPageCursorURL, ShiftInputRetrieveParams, ShiftInputRetrieveResponse, ShiftInputUpdateParams, ShiftInputUpdateResponse, ShiftInputs, } from './resources/shift-inputs'; import { ShiftassignmentCreateParams, ShiftassignmentCreateResponse, ShiftassignmentListParams, ShiftassignmentListResponse, ShiftassignmentListResponsesPageCursorURL, ShiftassignmentRetrieveParams, ShiftassignmentRetrieveResponse, ShiftassignmentUpdateParams, ShiftassignmentUpdateResponse, Shiftassignments, } from './resources/shiftassignments'; import { SoftwareDeploymentCreateParams, SoftwareDeploymentCreateResponse, SoftwareDeploymentListParams, SoftwareDeploymentListResponse, SoftwareDeploymentListResponsesPageCursorURL, SoftwareDeploymentRetrieveParams, SoftwareDeploymentRetrieveResponse, SoftwareDeploymentUpdateParams, SoftwareDeploymentUpdateResponse, SoftwareDeployments, } from './resources/software-deployments'; import { SSOMe, SSOMeListParams, SSOMeResource } from './resources/sso-me'; import { Team, TeamListParams, TeamRetrieveParams, TeamRetrieveResponse, Teams, TeamsPageCursorURL, } from './resources/teams'; import { PayPeriod, TimeCard, TimeCardListParams, TimeCardRetrieveParams, TimeCardRetrieveResponse, TimeCards, TimeCardsPageCursorURL, } from './resources/time-cards'; import { TimeEntries, TimeEntry, TimeEntryCreateParams, TimeEntryCreateResponse, TimeEntryListParams, TimeEntryListResponse, TimeEntryListResponsesPageCursorURL, TimeEntryRetrieveParams, TimeEntryRetrieveResponse, TimeEntryUpdateParams, TimeEntryUpdateResponse, } from './resources/time-entries'; import { TitleCreateParams, TitleCreateResponse, TitleListParams, TitleListResponse, TitleListResponsesPageCursorURL, TitleRetrieveResponse, TitleUpdateParams, TitleUpdateResponse, Titles, } from './resources/titles'; import { Track, TrackListParams, TrackRetrieveResponse, Tracks, TracksPageCursorURL, } from './resources/tracks'; import { UnassignedShiftAssignParams, UnassignedShiftAssignResponse, UnassignedShiftUpdateCustomfieldsParams, UnassignedShiftUpdateCustomfieldsResponse, UnassignedShifts, } from './resources/unassigned-shifts'; import { UnassignedshiftCreateParams, UnassignedshiftCreateResponse, UnassignedshiftListParams, UnassignedshiftListResponse, UnassignedshiftListResponsesPageCursorURL, UnassignedshiftRetrieveParams, UnassignedshiftRetrieveResponse, UnassignedshiftUpdateParams, UnassignedshiftUpdateResponse, Unassignedshifts, } from './resources/unassignedshifts'; import { User, UserListParams, UserRetrieveResponse, Users, UsersPageCursorURL } from './resources/users'; import { WorkLocation, WorkLocationCreateParams, WorkLocationListParams, WorkLocationRetrieveResponse, WorkLocationUpdateParams, WorkLocations, WorkLocationsPageCursorURL, } from './resources/work-locations'; import { WorkerChangeFieldListResponse, WorkerChangeFieldListResponsesPageCursorURL, WorkerChangeFields, } from './resources/worker-change-fields'; import { WorkerChangeListParams, WorkerChangeListResponse, WorkerChangeListResponsesPageCursorURL, WorkerChangeRetrieveParams, WorkerChangeRetrieveResponse, WorkerChanges, } from './resources/worker-changes'; import { WorkerTimeSplitCreateParams, WorkerTimeSplitCreateResponse, WorkerTimeSplitListParams, WorkerTimeSplitListResponse, WorkerTimeSplitListResponsesPageCursorURL, WorkerTimeSplitRetrieveParams, WorkerTimeSplitRetrieveResponse, WorkerTimeSplitUpdateParams, WorkerTimeSplitUpdateResponse, WorkerTimeSplits, } from './resources/worker-time-splits'; import { Worker, WorkerListParams, WorkerRetrieveParams, WorkerRetrieveResponse, Workers, WorkersPageCursorURL, } from './resources/workers'; import { WorkflowActionExecutionCreateParams, WorkflowActionExecutionCreateResponse, WorkflowActionExecutions, } from './resources/workflow-action-executions'; import { CustomObject, CustomObjectCreateParams, CustomObjectUpdateParams, CustomObjects, CustomObjectsPageCursorURL, } from './resources/custom-objects/custom-objects'; import { Function, FunctionCreateDevBundleParams, FunctionCreateDevBundleResponse, FunctionCreateParams, FunctionListParams, FunctionUpdateParams, Functions, FunctionsPageCursorURL, } from './resources/functions/functions'; import { PayrollRunListParams, PayrollRunListResponse, PayrollRunListResponsesPageCursorURL, PayrollRunRetrieveResponse, PayrollRuns, } from './resources/payroll-runs/payroll-runs'; import { ReportRetrieveResponse, Reports } from './resources/reports/reports'; import { Supergroup, SupergroupListParams, SupergroupRetrieveResponse, Supergroups, SupergroupsPageCursorURL, } from './resources/supergroups/supergroups'; import { type Fetch } from './internal/builtin-types'; import { HeadersLike, NullableHeaders, buildHeaders } from './internal/headers'; import { FinalRequestOptions, RequestOptions } from './internal/request-options'; import { readEnv } from './internal/utils/env'; import { type LogLevel, type Logger, formatRequestDetails, loggerFor, parseLogLevel, } from './internal/utils/log'; import { isEmptyObj } from './internal/utils/values'; export interface ClientOptions { /** * Bearer token for authorization */ bearerToken?: string | undefined; /** * Override the default base URL for the API, e.g., "https://api.example.com/v2/" * * Defaults to process.env['RIPPLING_SDK_BASE_URL']. */ baseURL?: string | null | undefined; /** * The maximum amount of time (in milliseconds) that the client should wait for a response * from the server before timing out a single request. * * Note that request timeouts are retried by default, so in a worst-case scenario you may wait * much longer than this timeout before the promise succeeds or fails. * * @unit milliseconds */ timeout?: number | undefined; /** * Additional `RequestInit` options to be passed to `fetch` calls. * Properties will be overridden by per-request `fetchOptions`. */ fetchOptions?: MergedRequestInit | undefined; /** * Specify a custom `fetch` function implementation. * * If not provided, we expect that `fetch` is defined globally. */ fetch?: Fetch | undefined; /** * The maximum number of times that the client will retry a request in case of a * temporary failure, like a network error or a 5XX error from the server. * * @default 2 */ maxRetries?: number | undefined; /** * Default headers to include with every request to the API. * * These can be removed in individual requests by explicitly setting the * header to `null` in request options. */ defaultHeaders?: HeadersLike | undefined; /** * Default query parameters to include with every request to the API. * * These can be removed in individual requests by explicitly setting the * param to `undefined` in request options. */ defaultQuery?: Record | undefined; /** * Set the log level. * * Defaults to process.env['RIPPLING_SDK_LOG'] or 'warn' if it isn't set. */ logLevel?: LogLevel | undefined; /** * Set the logger. * * Defaults to globalThis.console. */ logger?: Logger | undefined; } /** * API Client for interfacing with the Rippling SDK API. */ export class RipplingSDK { bearerToken: string; baseURL: string; maxRetries: number; timeout: number; logger: Logger; logLevel: LogLevel | undefined; fetchOptions: MergedRequestInit | undefined; private fetch: Fetch; #encoder: Opts.RequestEncoder; protected idempotencyHeader?: string; private _options: ClientOptions; /** * API Client for interfacing with the Rippling SDK API. * * @param {string | undefined} [opts.bearerToken=process.env['BEARER_TOKEN_PRODUCTION'] ?? undefined] * @param {string} [opts.baseURL=process.env['RIPPLING_SDK_BASE_URL'] ?? https://rest.ripplingapis.com] - Override the default base URL for the API. * @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out. * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls. * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation. * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request. * @param {HeadersLike} opts.defaultHeaders - Default headers to include with every request to the API. * @param {Record} opts.defaultQuery - Default query parameters to include with every request to the API. */ constructor({ baseURL = readEnv('RIPPLING_SDK_BASE_URL'), bearerToken = readEnv('BEARER_TOKEN_PRODUCTION'), ...opts }: ClientOptions = {}) { if (bearerToken === undefined) { throw new Errors.RipplingSDKError( "The BEARER_TOKEN_PRODUCTION environment variable is missing or empty; either provide it, or instantiate the RipplingSDK client with an bearerToken option, like new RipplingSDK({ bearerToken: 'My Bearer Token' }).", ); } const options: ClientOptions = { bearerToken, ...opts, baseURL: baseURL || `https://rest.ripplingapis.com`, }; this.baseURL = options.baseURL!; this.timeout = options.timeout ?? RipplingSDK.DEFAULT_TIMEOUT /* 1 minute */; this.logger = options.logger ?? console; const defaultLogLevel = 'warn'; // Set default logLevel early so that we can log a warning in parseLogLevel. this.logLevel = defaultLogLevel; this.logLevel = parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ?? parseLogLevel(readEnv('RIPPLING_SDK_LOG'), "process.env['RIPPLING_SDK_LOG']", this) ?? defaultLogLevel; this.fetchOptions = options.fetchOptions; this.maxRetries = options.maxRetries ?? 2; this.fetch = options.fetch ?? Shims.getDefaultFetch(); this.#encoder = Opts.FallbackEncoder; const customHeadersEnv = readEnv('RIPPLING_SDK_CUSTOM_HEADERS'); if (customHeadersEnv) { const parsed: Record = {}; for (const line of customHeadersEnv.split('\n')) { const colon = line.indexOf(':'); if (colon >= 0) { parsed[line.substring(0, colon).trim()] = line.substring(colon + 1).trim(); } } options.defaultHeaders = { ...parsed, ...options.defaultHeaders }; } this._options = options; this.bearerToken = bearerToken; } /** * Create a new client instance re-using the same options given to the current client with optional overriding. */ withOptions(options: Partial): this { const client = new (this.constructor as any as new (props: ClientOptions) => typeof this)({ ...this._options, baseURL: this.baseURL, maxRetries: this.maxRetries, timeout: this.timeout, logger: this.logger, logLevel: this.logLevel, fetch: this.fetch, fetchOptions: this.fetchOptions, bearerToken: this.bearerToken, ...options, }); return client; } /** * Check whether the base URL is set to its default. */ #baseURLOverridden(): boolean { return this.baseURL !== 'https://rest.ripplingapis.com'; } protected defaultQuery(): Record | undefined { return this._options.defaultQuery; } protected validateHeaders({ values, nulls }: NullableHeaders) { return; } protected async authHeaders(opts: FinalRequestOptions): Promise { return buildHeaders([{ Authorization: `Bearer ${this.bearerToken}` }]); } /** * Basic re-implementation of `qs.stringify` for primitive types. */ protected stringifyQuery(query: object | Record): string { return stringifyQuery(query); } private getUserAgent(): string { return `${this.constructor.name}/JS ${VERSION}`; } protected defaultIdempotencyKey(): string { return `stainless-node-retry-${uuid4()}`; } protected makeStatusError( status: number, error: Object, message: string | undefined, headers: Headers, ): Errors.APIError { return Errors.APIError.generate(status, error, message, headers); } buildURL( path: string, query: Record | null | undefined, defaultBaseURL?: string | undefined, ): string { const baseURL = (!this.#baseURLOverridden() && defaultBaseURL) || this.baseURL; const url = isAbsoluteURL(path) ? new URL(path) : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path)); const defaultQuery = this.defaultQuery(); const pathQuery = Object.fromEntries(url.searchParams); if (!isEmptyObj(defaultQuery) || !isEmptyObj(pathQuery)) { query = { ...pathQuery, ...defaultQuery, ...query }; } if (typeof query === 'object' && query && !Array.isArray(query)) { url.search = this.stringifyQuery(query); } return url.toString(); } /** * Used as a callback for mutating the given `FinalRequestOptions` object. */ protected async prepareOptions(options: FinalRequestOptions): Promise {} /** * Used as a callback for mutating the given `RequestInit` object. * * This is useful for cases where you want to add certain headers based off of * the request properties, e.g. `method` or `url`. */ protected async prepareRequest( request: RequestInit, { url, options }: { url: string; options: FinalRequestOptions }, ): Promise {} get(path: string, opts?: PromiseOrValue): APIPromise { return this.methodRequest('get', path, opts); } post(path: string, opts?: PromiseOrValue): APIPromise { return this.methodRequest('post', path, opts); } patch(path: string, opts?: PromiseOrValue): APIPromise { return this.methodRequest('patch', path, opts); } put(path: string, opts?: PromiseOrValue): APIPromise { return this.methodRequest('put', path, opts); } delete(path: string, opts?: PromiseOrValue): APIPromise { return this.methodRequest('delete', path, opts); } private methodRequest( method: HTTPMethod, path: string, opts?: PromiseOrValue, ): APIPromise { return this.request( Promise.resolve(opts).then((opts) => { return { method, path, ...opts }; }), ); } request( options: PromiseOrValue, remainingRetries: number | null = null, ): APIPromise { return new APIPromise(this, this.makeRequest(options, remainingRetries, undefined)); } private async makeRequest( optionsInput: PromiseOrValue, retriesRemaining: number | null, retryOfRequestLogID: string | undefined, ): Promise { const options = await optionsInput; const maxRetries = options.maxRetries ?? this.maxRetries; if (retriesRemaining == null) { retriesRemaining = maxRetries; } await this.prepareOptions(options); const { req, url, timeout } = await this.buildRequest(options, { retryCount: maxRetries - retriesRemaining, }); await this.prepareRequest(req, { url, options }); /** Not an API request ID, just for correlating local log entries. */ const requestLogID = 'log_' + ((Math.random() * (1 << 24)) | 0).toString(16).padStart(6, '0'); const retryLogStr = retryOfRequestLogID === undefined ? '' : `, retryOf: ${retryOfRequestLogID}`; const startTime = Date.now(); loggerFor(this).debug( `[${requestLogID}] sending request`, formatRequestDetails({ retryOfRequestLogID, method: options.method, url, options, headers: req.headers, }), ); if (options.signal?.aborted) { throw new Errors.APIUserAbortError(); } const controller = new AbortController(); const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError); const headersTime = Date.now(); if (response instanceof globalThis.Error) { const retryMessage = `retrying, ${retriesRemaining} attempts remaining`; if (options.signal?.aborted) { throw new Errors.APIUserAbortError(); } // detect native connection timeout errors // deno throws "TypeError: error sending request for url (https://example/): client error (Connect): tcp connect error: Operation timed out (os error 60): Operation timed out (os error 60)" // undici throws "TypeError: fetch failed" with cause "ConnectTimeoutError: Connect Timeout Error (attempted address: example:443, timeout: 1ms)" // others do not provide enough information to distinguish timeouts from other connection errors const isTimeout = isAbortError(response) || /timed? ?out/i.test(String(response) + ('cause' in response ? String(response.cause) : '')); if (retriesRemaining) { loggerFor(this).info( `[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - ${retryMessage}`, ); loggerFor(this).debug( `[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (${retryMessage})`, formatRequestDetails({ retryOfRequestLogID, url, durationMs: headersTime - startTime, message: response.message, }), ); return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID); } loggerFor(this).info( `[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - error; no more retries left`, ); loggerFor(this).debug( `[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (error; no more retries left)`, formatRequestDetails({ retryOfRequestLogID, url, durationMs: headersTime - startTime, message: response.message, }), ); if (isTimeout) { throw new Errors.APIConnectionTimeoutError(); } throw new Errors.APIConnectionError({ cause: response }); } const responseInfo = `[${requestLogID}${retryLogStr}] ${req.method} ${url} ${ response.ok ? 'succeeded' : 'failed' } with status ${response.status} in ${headersTime - startTime}ms`; if (!response.ok) { const shouldRetry = await this.shouldRetry(response); if (retriesRemaining && shouldRetry) { const retryMessage = `retrying, ${retriesRemaining} attempts remaining`; // We don't need the body of this response. await Shims.CancelReadableStream(response.body); loggerFor(this).info(`${responseInfo} - ${retryMessage}`); loggerFor(this).debug( `[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({ retryOfRequestLogID, url: response.url, status: response.status, headers: response.headers, durationMs: headersTime - startTime, }), ); return this.retryRequest( options, retriesRemaining, retryOfRequestLogID ?? requestLogID, response.headers, ); } const retryMessage = shouldRetry ? `error; no more retries left` : `error; not retryable`; loggerFor(this).info(`${responseInfo} - ${retryMessage}`); const errText = await response.text().catch((err: any) => castToError(err).message); const errJSON = safeJSON(errText) as any; const errMessage = errJSON ? undefined : errText; loggerFor(this).debug( `[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({ retryOfRequestLogID, url: response.url, status: response.status, headers: response.headers, message: errMessage, durationMs: Date.now() - startTime, }), ); const err = this.makeStatusError(response.status, errJSON, errMessage, response.headers); throw err; } loggerFor(this).info(responseInfo); loggerFor(this).debug( `[${requestLogID}] response start`, formatRequestDetails({ retryOfRequestLogID, url: response.url, status: response.status, headers: response.headers, durationMs: headersTime - startTime, }), ); return { response, options, controller, requestLogID, retryOfRequestLogID, startTime }; } getAPIList = Pagination.AbstractPage>( path: string, Page: new (...args: any[]) => PageClass, opts?: PromiseOrValue, ): Pagination.PagePromise { return this.requestAPIList( Page, opts && 'then' in opts ? opts.then((opts) => ({ method: 'get', path, ...opts })) : { method: 'get', path, ...opts }, ); } requestAPIList< Item = unknown, PageClass extends Pagination.AbstractPage = Pagination.AbstractPage, >( Page: new (...args: ConstructorParameters) => PageClass, options: PromiseOrValue, ): Pagination.PagePromise { const request = this.makeRequest(options, null, undefined); return new Pagination.PagePromise(this as any as RipplingSDK, request, Page); } async fetchWithTimeout( url: RequestInfo, init: RequestInit | undefined, ms: number, controller: AbortController, ): Promise { const { signal, method, ...options } = init || {}; const abort = this._makeAbort(controller); if (signal) signal.addEventListener('abort', abort, { once: true }); const timeout = setTimeout(abort, ms); const isReadableBody = ((globalThis as any).ReadableStream && options.body instanceof (globalThis as any).ReadableStream) || (typeof options.body === 'object' && options.body !== null && Symbol.asyncIterator in options.body); const fetchOptions: RequestInit = { signal: controller.signal as any, ...(isReadableBody ? { duplex: 'half' } : {}), method: 'GET', ...options, }; if (method) { // Custom methods like 'patch' need to be uppercased // See https://github.com/nodejs/undici/issues/2294 fetchOptions.method = method.toUpperCase(); } try { // use undefined this binding; fetch errors if bound to something else in browser/cloudflare return await this.fetch.call(undefined, url, fetchOptions); } finally { clearTimeout(timeout); } } private async shouldRetry(response: Response): Promise { // Note this is not a standard header. const shouldRetryHeader = response.headers.get('x-should-retry'); // If the server explicitly says whether or not to retry, obey. if (shouldRetryHeader === 'true') return true; if (shouldRetryHeader === 'false') return false; // Retry on request timeouts. if (response.status === 408) return true; // Retry on lock timeouts. if (response.status === 409) return true; // Retry on rate limits. if (response.status === 429) return true; // Retry internal errors. if (response.status >= 500) return true; return false; } private async retryRequest( options: FinalRequestOptions, retriesRemaining: number, requestLogID: string, responseHeaders?: Headers | undefined, ): Promise { let timeoutMillis: number | undefined; // Note the `retry-after-ms` header may not be standard, but is a good idea and we'd like proactive support for it. const retryAfterMillisHeader = responseHeaders?.get('retry-after-ms'); if (retryAfterMillisHeader) { const timeoutMs = parseFloat(retryAfterMillisHeader); if (!Number.isNaN(timeoutMs)) { timeoutMillis = timeoutMs; } } // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After const retryAfterHeader = responseHeaders?.get('retry-after'); if (retryAfterHeader && !timeoutMillis) { const timeoutSeconds = parseFloat(retryAfterHeader); if (!Number.isNaN(timeoutSeconds)) { timeoutMillis = timeoutSeconds * 1000; } else { timeoutMillis = Date.parse(retryAfterHeader) - Date.now(); } } // If the API asks us to wait a certain amount of time, just do what it // says, but otherwise calculate a default if (timeoutMillis === undefined) { const maxRetries = options.maxRetries ?? this.maxRetries; timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries); } await sleep(timeoutMillis); return this.makeRequest(options, retriesRemaining - 1, requestLogID); } private calculateDefaultRetryTimeoutMillis(retriesRemaining: number, maxRetries: number): number { const initialRetryDelay = 0.5; const maxRetryDelay = 8.0; const numRetries = maxRetries - retriesRemaining; // Apply exponential backoff, but not more than the max. const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay); // Apply some jitter, take up to at most 25 percent of the retry time. const jitter = 1 - Math.random() * 0.25; return sleepSeconds * jitter * 1000; } async buildRequest( inputOptions: FinalRequestOptions, { retryCount = 0 }: { retryCount?: number } = {}, ): Promise<{ req: FinalizedRequestInit; url: string; timeout: number }> { const options = { ...inputOptions }; const { method, path, query, defaultBaseURL } = options; const url = this.buildURL(path!, query as Record, defaultBaseURL); if ('timeout' in options) validatePositiveInteger('timeout', options.timeout); options.timeout = options.timeout ?? this.timeout; const { bodyHeaders, body } = this.buildBody({ options }); const reqHeaders = await this.buildHeaders({ options: inputOptions, method, bodyHeaders, retryCount }); const req: FinalizedRequestInit = { method, headers: reqHeaders, ...(options.signal && { signal: options.signal }), ...((globalThis as any).ReadableStream && body instanceof (globalThis as any).ReadableStream && { duplex: 'half' }), ...(body && { body }), ...((this.fetchOptions as any) ?? {}), ...((options.fetchOptions as any) ?? {}), }; return { req, url, timeout: options.timeout }; } private async buildHeaders({ options, method, bodyHeaders, retryCount, }: { options: FinalRequestOptions; method: HTTPMethod; bodyHeaders: HeadersLike; retryCount: number; }): Promise { let idempotencyHeaders: HeadersLike = {}; if (this.idempotencyHeader && method !== 'get') { if (!options.idempotencyKey) options.idempotencyKey = this.defaultIdempotencyKey(); idempotencyHeaders[this.idempotencyHeader] = options.idempotencyKey; } const headers = buildHeaders([ idempotencyHeaders, { Accept: 'application/json', 'User-Agent': this.getUserAgent(), 'X-Stainless-Retry-Count': String(retryCount), ...(options.timeout ? { 'X-Stainless-Timeout': String(Math.trunc(options.timeout / 1000)) } : {}), ...getPlatformHeaders(), 'Rippling-Api-Version': '2024-08-01', }, await this.authHeaders(options), this._options.defaultHeaders, bodyHeaders, options.headers, ]); this.validateHeaders(headers); return headers.values; } private _makeAbort(controller: AbortController) { // note: we can't just inline this method inside `fetchWithTimeout()` because then the closure // would capture all request options, and cause a memory leak. return () => controller.abort(); } private buildBody({ options }: { options: FinalRequestOptions }): { bodyHeaders: HeadersLike; body: BodyInit | undefined; } { const { body, headers: rawHeaders } = options; if (!body) { // A resource method always passes a `body` key when its operation defines a // request body, even if the caller omitted an optional body param. Keep the // content-type for those, and only elide it for operations with no body at // all (e.g. GET/DELETE). if (body == null && 'body' in options) { return this.#encoder({ body, headers: buildHeaders([rawHeaders]) }); } return { bodyHeaders: undefined, body: undefined }; } const headers = buildHeaders([rawHeaders]); if ( // Pass raw type verbatim ArrayBuffer.isView(body) || body instanceof ArrayBuffer || body instanceof DataView || (typeof body === 'string' && // Preserve legacy string encoding behavior for now headers.values.has('content-type')) || // `Blob` is superset of `File` ((globalThis as any).Blob && body instanceof (globalThis as any).Blob) || // `FormData` -> `multipart/form-data` body instanceof FormData || // `URLSearchParams` -> `application/x-www-form-urlencoded` body instanceof URLSearchParams || // Send chunked stream (each chunk has own `length`) ((globalThis as any).ReadableStream && body instanceof (globalThis as any).ReadableStream) ) { return { bodyHeaders: undefined, body: body as BodyInit }; } else if ( typeof body === 'object' && (Symbol.asyncIterator in body || (Symbol.iterator in body && 'next' in body && typeof body.next === 'function')) ) { return { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body as AsyncIterable) }; } else if ( typeof body === 'object' && headers.values.get('content-type') === 'application/x-www-form-urlencoded' ) { return { bodyHeaders: { 'content-type': 'application/x-www-form-urlencoded' }, body: this.stringifyQuery(body), }; } else { return this.#encoder({ body, headers }); } } static RipplingSDK = this; static DEFAULT_TIMEOUT = 60000; // 1 minute static RipplingSDKError = Errors.RipplingSDKError; static APIError = Errors.APIError; static APIConnectionError = Errors.APIConnectionError; static APIConnectionTimeoutError = Errors.APIConnectionTimeoutError; static APIUserAbortError = Errors.APIUserAbortError; static NotFoundError = Errors.NotFoundError; static ConflictError = Errors.ConflictError; static RateLimitError = Errors.RateLimitError; static BadRequestError = Errors.BadRequestError; static AuthenticationError = Errors.AuthenticationError; static InternalServerError = Errors.InternalServerError; static PermissionDeniedError = Errors.PermissionDeniedError; static UnprocessableEntityError = Errors.UnprocessableEntityError; static toFile = Uploads.toFile; /** * Companies on Rippling */ companies: API.Companies = new API.Companies(this); /** * Compensation associated with workers */ compensations: API.Compensations = new API.Compensations(this); /** * Custom objects defined by the company */ customObjects: API.CustomObjects = new API.CustomObjects(this); /** * Departments used by the company */ departments: API.Departments = new API.Departments(this); /** * Employment types used by the company */ employmentTypes: API.EmploymentTypes = new API.EmploymentTypes(this); /** * Job related information for the company */ jobCodes: API.JobCodes = new API.JobCodes(this); /** * Job related information for the company */ jobDimensions: API.JobDimensions = new API.JobDimensions(this); /** * A request for a job to be filled by a candidate */ jobRequisitions: API.JobRequisitions = new API.JobRequisitions(this); /** * Badge information used with Timeclock Kiosk */ kioskBadges: API.KioskBadges = new API.KioskBadges(this); /** * Leave balances for workers */ leaveBalances: API.LeaveBalances = new API.LeaveBalances(this); /** * Leave requests submitted by workers */ leaveRequests: API.LeaveRequests = new API.LeaveRequests(this); /** * Leave types used by the company */ leaveTypes: API.LeaveTypes = new API.LeaveTypes(this); /** * Legal entities registered by the company */ legalEntities: API.LegalEntities = new API.LegalEntities(this); /** * Levels and tracks used by the company for workers */ levels: API.Levels = new API.Levels(this); /** * Object Categories defined by the company */ objectCategories: API.ObjectCategories = new API.ObjectCategories(this); /** * Shift inputs used by the company */ shiftInputs: API.ShiftInputs = new API.ShiftInputs(this); /** * Provides the user's SSO information */ ssoMe: API.SSOMeResource = new API.SSOMeResource(this); /** * Supergroups used by the company */ supergroups: API.Supergroups = new API.Supergroups(this); /** * Teams at the company */ teams: API.Teams = new API.Teams(this); /** * Time entries submitted by workers */ timeCards: API.TimeCards = new API.TimeCards(this); /** * Time entries submitted by workers */ timeEntries: API.TimeEntries = new API.TimeEntries(this); /** * Levels and tracks used by the company for workers */ tracks: API.Tracks = new API.Tracks(this); /** * Users of the company */ users: API.Users = new API.Users(this); /** * Work locations used by the company */ workLocations: API.WorkLocations = new API.WorkLocations(this); /** * Workers who work or have worked at the company */ workers: API.Workers = new API.Workers(this); /** * Business partners of the company */ businessPartners: API.BusinessPartners = new API.BusinessPartners(this); /** * Business partners of the company */ businessPartnerGroups: API.BusinessPartnerGroups = new API.BusinessPartnerGroups(this); /** * Functions defined by the company */ functions: API.Functions = new API.Functions(this); /** * Job related information for the company */ jobAssignments: API.JobAssignments = new API.JobAssignments(this); /** * Job related information for the company */ jobPayRateExceptions: API.JobPayRateExceptions = new API.JobPayRateExceptions(this); /** * Break types configured by the company for time tracking */ breakPolicies: API.BreakPolicies = new API.BreakPolicies(this); /** * Break types configured by the company for time tracking */ breakTypes: API.BreakTypes = new API.BreakTypes(this); /** * Business structure used for defining hierarchy of company's org attributes */ businessStructurePaths: API.BusinessStructurePaths = new API.BusinessStructurePaths(this); /** * Someone who applies to a job requisition opened by the company */ candidates: API.Candidates = new API.Candidates(this); /** * An application by a candidate to a specific job requisition */ candidateApplications: API.CandidateApplications = new API.CandidateApplications(this); /** * Legal entities registered by the company */ companyLegalEntities: API.CompanyLegalEntities = new API.CompanyLegalEntities(this); /** * Workers who work or have worked at the company */ companyLegalEntityWorkers: API.CompanyLegalEntityWorkers = new API.CompanyLegalEntityWorkers(this); /** * Compensation bands details associated with workers */ compensationBandsDetails: API.CompensationBandsDetails = new API.CompensationBandsDetails(this); customApps: API.CustomApps = new API.CustomApps(this); /** * Custom fields defined by the company */ customFields: API.CustomFields = new API.CustomFields(this); customPages: API.CustomPages = new API.CustomPages(this); customSettings: API.CustomSettings = new API.CustomSettings(this); /** * Device orders (new device shipments, retrievals, etc.) for company workers */ deviceOrders: API.DeviceOrders = new API.DeviceOrders(this); /** * Candidates who have not yet started work at the company */ draftHires: API.DraftHires = new API.DraftHires(this); /** * Earning types configured for the company */ earningTypes: API.EarningTypes = new API.EarningTypes(this); /** * External earnings inputs for the company */ earningsInputs: API.EarningsInputs = new API.EarningsInputs(this); /** * Documents attached to existing employees */ employeeDocuments: API.EmployeeDocuments = new API.EmployeeDocuments(this); /** * Availability of API features to the company or Partners. */ entitlements: API.Entitlements = new API.Entitlements(this); /** * Generate presigned URLs to upload files to Rippling storage */ files: API.Files = new API.Files(this); /** * Headcount allocations for the company */ headcountPositions: API.HeadcountPositions = new API.HeadcountPositions(this); /** * Organizational classifications used to categorize hiring needs based on business urgency and strategic importance */ headcountPriorities: API.HeadcountPriorities = new API.HeadcountPriorities(this); /** * Organizational job categories that group similar roles and responsibilities within a company */ jobFunctions: API.JobFunctions = new API.JobFunctions(this); /** * A request for a job to be filled by a candidate */ jobRequisitionsWrite: API.JobRequisitionsWrite = new API.JobRequisitionsWrite(this); /** * Leave accruals for workers */ leaveAccruals: API.LeaveAccruals = new API.LeaveAccruals(this); /** * Geographic compensation adjustment factors that modify base compensation based on location-specific market conditions and cost of living */ locationFactors: API.LocationFactors = new API.LocationFactors(this); /** * Payroll runs for the company */ payrollRuns: API.PayrollRuns = new API.PayrollRuns(this); /** * Custom objects defined by the company */ platformCapabilities: API.PlatformCapabilities = new API.PlatformCapabilities(this); /** * Report data for company */ reports: API.Reports = new API.Reports(this); /** * Report data for company */ reportRuns: API.ReportRuns = new API.ReportRuns(this); /** * Schedules used by the company */ schedules: API.Schedules = new API.Schedules(this); /** * Job related information for the company */ scheduledJobAssignments: API.ScheduledJobAssignments = new API.ScheduledJobAssignments(this); /** * Shift assignments assigned to workers */ shiftassignments: API.Shiftassignments = new API.Shiftassignments(this); /** * Software deployed to company devices */ softwareDeployments: API.SoftwareDeployments = new API.SoftwareDeployments(this); /** * Job titles used by the company */ titles: API.Titles = new API.Titles(this); /** * Unassigned shifts that are part of a schedule */ unassignedshifts: API.Unassignedshifts = new API.Unassignedshifts(this); /** * Historical changes to worker data over time */ workerChanges: API.WorkerChanges = new API.WorkerChanges(this); /** * Historical changes to worker data over time */ workerChangeFields: API.WorkerChangeFields = new API.WorkerChangeFields(this); /** * Job related information for the company */ workerTimeSplits: API.WorkerTimeSplits = new API.WorkerTimeSplits(this); /** * Execute workflow actions like sending emails, Slack messages, and notifications */ workflowActionExecutions: API.WorkflowActionExecutions = new API.WorkflowActionExecutions(this); /** * Shift assignments assigned to workers */ shiftAssignments: API.ShiftAssignments = new API.ShiftAssignments(this); /** * Unassigned shifts that are part of a schedule */ unassignedShifts: API.UnassignedShifts = new API.UnassignedShifts(this); } RipplingSDK.Companies = Companies; RipplingSDK.Compensations = Compensations; RipplingSDK.CustomObjects = CustomObjects; RipplingSDK.Departments = Departments; RipplingSDK.EmploymentTypes = EmploymentTypes; RipplingSDK.JobCodes = JobCodes; RipplingSDK.JobDimensions = JobDimensions; RipplingSDK.JobRequisitions = JobRequisitions; RipplingSDK.KioskBadges = KioskBadges; RipplingSDK.LeaveBalances = LeaveBalances; RipplingSDK.LeaveRequests = LeaveRequests; RipplingSDK.LeaveTypes = LeaveTypes; RipplingSDK.LegalEntities = LegalEntities; RipplingSDK.Levels = Levels; RipplingSDK.ObjectCategories = ObjectCategories; RipplingSDK.ShiftInputs = ShiftInputs; RipplingSDK.SSOMeResource = SSOMeResource; RipplingSDK.Supergroups = Supergroups; RipplingSDK.Teams = Teams; RipplingSDK.TimeCards = TimeCards; RipplingSDK.TimeEntries = TimeEntries; RipplingSDK.Tracks = Tracks; RipplingSDK.Users = Users; RipplingSDK.WorkLocations = WorkLocations; RipplingSDK.Workers = Workers; RipplingSDK.BusinessPartners = BusinessPartners; RipplingSDK.BusinessPartnerGroups = BusinessPartnerGroups; RipplingSDK.Functions = Functions; RipplingSDK.JobAssignments = JobAssignments; RipplingSDK.JobPayRateExceptions = JobPayRateExceptions; RipplingSDK.BreakPolicies = BreakPolicies; RipplingSDK.BreakTypes = BreakTypes; RipplingSDK.BusinessStructurePaths = BusinessStructurePaths; RipplingSDK.Candidates = Candidates; RipplingSDK.CandidateApplications = CandidateApplications; RipplingSDK.CompanyLegalEntities = CompanyLegalEntities; RipplingSDK.CompanyLegalEntityWorkers = CompanyLegalEntityWorkers; RipplingSDK.CompensationBandsDetails = CompensationBandsDetails; RipplingSDK.CustomApps = CustomApps; RipplingSDK.CustomFields = CustomFields; RipplingSDK.CustomPages = CustomPages; RipplingSDK.CustomSettings = CustomSettings; RipplingSDK.DeviceOrders = DeviceOrders; RipplingSDK.DraftHires = DraftHires; RipplingSDK.EarningTypes = EarningTypes; RipplingSDK.EarningsInputs = EarningsInputs; RipplingSDK.EmployeeDocuments = EmployeeDocuments; RipplingSDK.Entitlements = Entitlements; RipplingSDK.Files = Files; RipplingSDK.HeadcountPositions = HeadcountPositions; RipplingSDK.HeadcountPriorities = HeadcountPriorities; RipplingSDK.JobFunctions = JobFunctions; RipplingSDK.JobRequisitionsWrite = JobRequisitionsWrite; RipplingSDK.LeaveAccruals = LeaveAccruals; RipplingSDK.LocationFactors = LocationFactors; RipplingSDK.PayrollRuns = PayrollRuns; RipplingSDK.PlatformCapabilities = PlatformCapabilities; RipplingSDK.Reports = Reports; RipplingSDK.ReportRuns = ReportRuns; RipplingSDK.Schedules = Schedules; RipplingSDK.ScheduledJobAssignments = ScheduledJobAssignments; RipplingSDK.Shiftassignments = Shiftassignments; RipplingSDK.SoftwareDeployments = SoftwareDeployments; RipplingSDK.Titles = Titles; RipplingSDK.Unassignedshifts = Unassignedshifts; RipplingSDK.WorkerChanges = WorkerChanges; RipplingSDK.WorkerChangeFields = WorkerChangeFields; RipplingSDK.WorkerTimeSplits = WorkerTimeSplits; RipplingSDK.WorkflowActionExecutions = WorkflowActionExecutions; RipplingSDK.ShiftAssignments = ShiftAssignments; RipplingSDK.UnassignedShifts = UnassignedShifts; export declare namespace RipplingSDK { export type RequestOptions = Opts.RequestOptions; export import PageCursorURL = Pagination.PageCursorURL; export { type PageCursorURLResponse as PageCursorURLResponse }; export { Companies as Companies, type Company as Company, type CompaniesPageCursorURL as CompaniesPageCursorURL, type CompanyListParams as CompanyListParams, }; export { Compensations as Compensations, type Compensation as Compensation, type CompensationRetrieveResponse as CompensationRetrieveResponse, type CompensationsPageCursorURL as CompensationsPageCursorURL, type CompensationListParams as CompensationListParams, type CompensationRetrieveParams as CompensationRetrieveParams, }; export { CustomObjects as CustomObjects, type CustomObject as CustomObject, type CustomObjectsPageCursorURL as CustomObjectsPageCursorURL, type CustomObjectCreateParams as CustomObjectCreateParams, type CustomObjectUpdateParams as CustomObjectUpdateParams, }; export { Departments as Departments, type Department as Department, type DepartmentRetrieveResponse as DepartmentRetrieveResponse, type DepartmentsPageCursorURL as DepartmentsPageCursorURL, type DepartmentListParams as DepartmentListParams, type DepartmentCreateParams as DepartmentCreateParams, type DepartmentRetrieveParams as DepartmentRetrieveParams, type DepartmentUpdateParams as DepartmentUpdateParams, }; export { EmploymentTypes as EmploymentTypes, type CompanyEmploymentType as CompanyEmploymentType, type EmploymentTypeRetrieveResponse as EmploymentTypeRetrieveResponse, type CompanyEmploymentTypesPageCursorURL as CompanyEmploymentTypesPageCursorURL, type EmploymentTypeListParams as EmploymentTypeListParams, }; export { JobCodes as JobCodes, type JobCode as JobCode, type JobCodeRequest as JobCodeRequest, type JobCodeRetrieveResponse as JobCodeRetrieveResponse, type JobCodesPageCursorURL as JobCodesPageCursorURL, type JobCodeListParams as JobCodeListParams, type JobCodeCreateParams as JobCodeCreateParams, type JobCodeRetrieveParams as JobCodeRetrieveParams, type JobCodeUpdateParams as JobCodeUpdateParams, type JobCodeListChangeLogParams as JobCodeListChangeLogParams, }; export { JobDimensions as JobDimensions, type JobDimension as JobDimension, type JobDimensionRequest as JobDimensionRequest, type JobDimensionRetrieveResponse as JobDimensionRetrieveResponse, type JobDimensionsPageCursorURL as JobDimensionsPageCursorURL, type JobDimensionListParams as JobDimensionListParams, type JobDimensionCreateParams as JobDimensionCreateParams, type JobDimensionUpdateParams as JobDimensionUpdateParams, }; export { JobRequisitions as JobRequisitions, type JobRequisition as JobRequisition, type JobRequisitionsPageCursorURL as JobRequisitionsPageCursorURL, type JobRequisitionListParams as JobRequisitionListParams, }; export { KioskBadges as KioskBadges, type TimeKioskBadge as TimeKioskBadge, type KioskBadgeListResponse as KioskBadgeListResponse, type KioskBadgeCreateResponse as KioskBadgeCreateResponse, type KioskBadgeRetrieveResponse as KioskBadgeRetrieveResponse, type KioskBadgeUpdateResponse as KioskBadgeUpdateResponse, type KioskBadgeListResponsesPageCursorURL as KioskBadgeListResponsesPageCursorURL, type KioskBadgeListParams as KioskBadgeListParams, type KioskBadgeCreateParams as KioskBadgeCreateParams, type KioskBadgeRetrieveParams as KioskBadgeRetrieveParams, type KioskBadgeUpdateParams as KioskBadgeUpdateParams, }; export { LeaveBalances as LeaveBalances, type LeaveBalance as LeaveBalance, type LeaveBalanceRetrieveResponse as LeaveBalanceRetrieveResponse, type LeaveBalancesPageCursorURL as LeaveBalancesPageCursorURL, type LeaveBalanceListParams as LeaveBalanceListParams, type LeaveBalanceRetrieveParams as LeaveBalanceRetrieveParams, }; export { LeaveRequests as LeaveRequests, type LeaveRequest as LeaveRequest, type LeaveRequestListResponse as LeaveRequestListResponse, type LeaveRequestCreateResponse as LeaveRequestCreateResponse, type LeaveRequestRetrieveResponse as LeaveRequestRetrieveResponse, type LeaveRequestUpdateResponse as LeaveRequestUpdateResponse, type LeaveRequestListResponsesPageCursorURL as LeaveRequestListResponsesPageCursorURL, type LeaveRequestListParams as LeaveRequestListParams, type LeaveRequestCreateParams as LeaveRequestCreateParams, type LeaveRequestRetrieveParams as LeaveRequestRetrieveParams, type LeaveRequestUpdateParams as LeaveRequestUpdateParams, }; export { LeaveTypes as LeaveTypes, type LeaveType as LeaveType, type LeaveTypeRetrieveResponse as LeaveTypeRetrieveResponse, type LeaveTypesPageCursorURL as LeaveTypesPageCursorURL, type LeaveTypeListParams as LeaveTypeListParams, }; export { LegalEntities as LegalEntities, type LegalEntity as LegalEntity, type LegalEntityRetrieveResponse as LegalEntityRetrieveResponse, type LegalEntitiesPageCursorURL as LegalEntitiesPageCursorURL, type LegalEntityListParams as LegalEntityListParams, type LegalEntityRetrieveParams as LegalEntityRetrieveParams, }; export { Levels as Levels, type Level as Level, type LevelRetrieveResponse as LevelRetrieveResponse, type LevelsPageCursorURL as LevelsPageCursorURL, type LevelListParams as LevelListParams, type LevelRetrieveParams as LevelRetrieveParams, }; export { ObjectCategories as ObjectCategories, type ObjectCategory as ObjectCategory, type ObjectCategoriesPageCursorURL as ObjectCategoriesPageCursorURL, type ObjectCategoryCreateParams as ObjectCategoryCreateParams, type ObjectCategoryUpdateParams as ObjectCategoryUpdateParams, }; export { ShiftInputs as ShiftInputs, type ShiftInput as ShiftInput, type ShiftInputListResponse as ShiftInputListResponse, type ShiftInputCreateResponse as ShiftInputCreateResponse, type ShiftInputRetrieveResponse as ShiftInputRetrieveResponse, type ShiftInputUpdateResponse as ShiftInputUpdateResponse, type ShiftInputListResponsesPageCursorURL as ShiftInputListResponsesPageCursorURL, type ShiftInputListParams as ShiftInputListParams, type ShiftInputCreateParams as ShiftInputCreateParams, type ShiftInputRetrieveParams as ShiftInputRetrieveParams, type ShiftInputUpdateParams as ShiftInputUpdateParams, }; export { SSOMeResource as SSOMeResource, type SSOMe as SSOMe, type SSOMeListParams as SSOMeListParams }; export { Supergroups as Supergroups, type Supergroup as Supergroup, type SupergroupRetrieveResponse as SupergroupRetrieveResponse, type SupergroupsPageCursorURL as SupergroupsPageCursorURL, type SupergroupListParams as SupergroupListParams, }; export { Teams as Teams, type Team as Team, type TeamRetrieveResponse as TeamRetrieveResponse, type TeamsPageCursorURL as TeamsPageCursorURL, type TeamListParams as TeamListParams, type TeamRetrieveParams as TeamRetrieveParams, }; export { TimeCards as TimeCards, type PayPeriod as PayPeriod, type TimeCard as TimeCard, type TimeCardRetrieveResponse as TimeCardRetrieveResponse, type TimeCardsPageCursorURL as TimeCardsPageCursorURL, type TimeCardListParams as TimeCardListParams, type TimeCardRetrieveParams as TimeCardRetrieveParams, }; export { TimeEntries as TimeEntries, type TimeEntry as TimeEntry, type TimeEntryListResponse as TimeEntryListResponse, type TimeEntryCreateResponse as TimeEntryCreateResponse, type TimeEntryRetrieveResponse as TimeEntryRetrieveResponse, type TimeEntryUpdateResponse as TimeEntryUpdateResponse, type TimeEntryListResponsesPageCursorURL as TimeEntryListResponsesPageCursorURL, type TimeEntryListParams as TimeEntryListParams, type TimeEntryCreateParams as TimeEntryCreateParams, type TimeEntryRetrieveParams as TimeEntryRetrieveParams, type TimeEntryUpdateParams as TimeEntryUpdateParams, }; export { Tracks as Tracks, type Track as Track, type TrackRetrieveResponse as TrackRetrieveResponse, type TracksPageCursorURL as TracksPageCursorURL, type TrackListParams as TrackListParams, }; export { Users as Users, type User as User, type UserRetrieveResponse as UserRetrieveResponse, type UsersPageCursorURL as UsersPageCursorURL, type UserListParams as UserListParams, }; export { WorkLocations as WorkLocations, type WorkLocation as WorkLocation, type WorkLocationRetrieveResponse as WorkLocationRetrieveResponse, type WorkLocationsPageCursorURL as WorkLocationsPageCursorURL, type WorkLocationListParams as WorkLocationListParams, type WorkLocationCreateParams as WorkLocationCreateParams, type WorkLocationUpdateParams as WorkLocationUpdateParams, }; export { Workers as Workers, type Worker as Worker, type WorkerRetrieveResponse as WorkerRetrieveResponse, type WorkersPageCursorURL as WorkersPageCursorURL, type WorkerListParams as WorkerListParams, type WorkerRetrieveParams as WorkerRetrieveParams, }; export { BusinessPartners as BusinessPartners, type BusinessPartner as BusinessPartner, type Meta as Meta, type BusinessPartnerRetrieveResponse as BusinessPartnerRetrieveResponse, type BusinessPartnersPageCursorURL as BusinessPartnersPageCursorURL, type BusinessPartnerListParams as BusinessPartnerListParams, type BusinessPartnerCreateParams as BusinessPartnerCreateParams, type BusinessPartnerRetrieveParams as BusinessPartnerRetrieveParams, }; export { BusinessPartnerGroups as BusinessPartnerGroups, type BusinessPartnerGroup as BusinessPartnerGroup, type BusinessPartnerGroupRetrieveResponse as BusinessPartnerGroupRetrieveResponse, type BusinessPartnerGroupsPageCursorURL as BusinessPartnerGroupsPageCursorURL, type BusinessPartnerGroupListParams as BusinessPartnerGroupListParams, type BusinessPartnerGroupCreateParams as BusinessPartnerGroupCreateParams, type BusinessPartnerGroupRetrieveParams as BusinessPartnerGroupRetrieveParams, }; export { Functions as Functions, type Function as Function, type FunctionCreateDevBundleResponse as FunctionCreateDevBundleResponse, type FunctionsPageCursorURL as FunctionsPageCursorURL, type FunctionListParams as FunctionListParams, type FunctionCreateParams as FunctionCreateParams, type FunctionUpdateParams as FunctionUpdateParams, type FunctionCreateDevBundleParams as FunctionCreateDevBundleParams, }; export { JobAssignments as JobAssignments, type AttributeChangeDetails as AttributeChangeDetails, type JobAssignment as JobAssignment, type JobAssignmentRetrieveResponse as JobAssignmentRetrieveResponse, type JobAssignmentsPageCursorURL as JobAssignmentsPageCursorURL, type AttributeChangeDetailsPageCursorURL as AttributeChangeDetailsPageCursorURL, type JobAssignmentListParams as JobAssignmentListParams, type JobAssignmentCreateParams as JobAssignmentCreateParams, type JobAssignmentRetrieveParams as JobAssignmentRetrieveParams, type JobAssignmentUpdateParams as JobAssignmentUpdateParams, type JobAssignmentDeleteParams as JobAssignmentDeleteParams, type JobAssignmentListChangeLogParams as JobAssignmentListChangeLogParams, }; export { JobPayRateExceptions as JobPayRateExceptions, type JobPayRateException as JobPayRateException, type JobPayRateExceptionRetrieveResponse as JobPayRateExceptionRetrieveResponse, type JobPayRateExceptionsPageCursorURL as JobPayRateExceptionsPageCursorURL, type JobPayRateExceptionListParams as JobPayRateExceptionListParams, type JobPayRateExceptionRetrieveParams as JobPayRateExceptionRetrieveParams, type JobPayRateExceptionListChangeLogParams as JobPayRateExceptionListChangeLogParams, }; export { BreakPolicies as BreakPolicies, type BreakPolicyListResponse as BreakPolicyListResponse, type BreakPolicyRetrieveResponse as BreakPolicyRetrieveResponse, type BreakPolicyListResponsesPageCursorURL as BreakPolicyListResponsesPageCursorURL, type BreakPolicyListParams as BreakPolicyListParams, }; export { BreakTypes as BreakTypes, type BreakTypeListResponse as BreakTypeListResponse, type BreakTypeRetrieveResponse as BreakTypeRetrieveResponse, type BreakTypeListResponsesPageCursorURL as BreakTypeListResponsesPageCursorURL, type BreakTypeListParams as BreakTypeListParams, type BreakTypeRetrieveParams as BreakTypeRetrieveParams, }; export { BusinessStructurePaths as BusinessStructurePaths, type BusinessStructurePathListResponse as BusinessStructurePathListResponse, type BusinessStructurePathRetrieveResponse as BusinessStructurePathRetrieveResponse, type BusinessStructurePathListResponsesPageCursorURL as BusinessStructurePathListResponsesPageCursorURL, type BusinessStructurePathListParams as BusinessStructurePathListParams, type BusinessStructurePathRetrieveParams as BusinessStructurePathRetrieveParams, }; export { Candidates as Candidates, type CandidateListResponse as CandidateListResponse, type CandidateListResponsesPageCursorURL as CandidateListResponsesPageCursorURL, type CandidateListParams as CandidateListParams, }; export { CandidateApplications as CandidateApplications, type CandidateApplicationListResponse as CandidateApplicationListResponse, type CandidateApplicationListResponsesPageCursorURL as CandidateApplicationListResponsesPageCursorURL, type CandidateApplicationListParams as CandidateApplicationListParams, }; export { CompanyLegalEntities as CompanyLegalEntities, type CompanyLegalEntityListResponse as CompanyLegalEntityListResponse, type CompanyLegalEntityRetrieveResponse as CompanyLegalEntityRetrieveResponse, type CompanyLegalEntityListResponsesPageCursorURL as CompanyLegalEntityListResponsesPageCursorURL, type CompanyLegalEntityListParams as CompanyLegalEntityListParams, }; export { CompanyLegalEntityWorkers as CompanyLegalEntityWorkers, type CompanyLegalEntityWorkerListResponse as CompanyLegalEntityWorkerListResponse, type CompanyLegalEntityWorkerRetrieveResponse as CompanyLegalEntityWorkerRetrieveResponse, type CompanyLegalEntityWorkerListResponsesPageCursorURL as CompanyLegalEntityWorkerListResponsesPageCursorURL, type CompanyLegalEntityWorkerListParams as CompanyLegalEntityWorkerListParams, }; export { CompensationBandsDetails as CompensationBandsDetails, type CompensationBandsDetailListResponse as CompensationBandsDetailListResponse, type CompensationBandsDetailRetrieveResponse as CompensationBandsDetailRetrieveResponse, type CompensationBandsDetailListResponsesPageCursorURL as CompensationBandsDetailListResponsesPageCursorURL, type CompensationBandsDetailListParams as CompensationBandsDetailListParams, type CompensationBandsDetailRetrieveParams as CompensationBandsDetailRetrieveParams, }; export { CustomApps as CustomApps, type CustomAppListResponse as CustomAppListResponse, type CustomAppCreateResponse as CustomAppCreateResponse, type CustomAppRetrieveResponse as CustomAppRetrieveResponse, type CustomAppUpdateResponse as CustomAppUpdateResponse, type CustomAppListResponsesPageCursorURL as CustomAppListResponsesPageCursorURL, type CustomAppCreateParams as CustomAppCreateParams, type CustomAppUpdateParams as CustomAppUpdateParams, }; export { CustomFields as CustomFields, type CustomFieldListResponse as CustomFieldListResponse, type CustomFieldListResponsesPageCursorURL as CustomFieldListResponsesPageCursorURL, type CustomFieldListParams as CustomFieldListParams, }; export { CustomPages as CustomPages, type CustomPageListResponse as CustomPageListResponse, type CustomPageCreateResponse as CustomPageCreateResponse, type CustomPageRetrieveResponse as CustomPageRetrieveResponse, type CustomPageUpdateResponse as CustomPageUpdateResponse, type CustomPageListResponsesPageCursorURL as CustomPageListResponsesPageCursorURL, type CustomPageCreateParams as CustomPageCreateParams, type CustomPageUpdateParams as CustomPageUpdateParams, }; export { CustomSettings as CustomSettings, type CustomSettingListResponse as CustomSettingListResponse, type CustomSettingCreateResponse as CustomSettingCreateResponse, type CustomSettingRetrieveResponse as CustomSettingRetrieveResponse, type CustomSettingUpdateResponse as CustomSettingUpdateResponse, type CustomSettingListResponsesPageCursorURL as CustomSettingListResponsesPageCursorURL, type CustomSettingListParams as CustomSettingListParams, type CustomSettingCreateParams as CustomSettingCreateParams, type CustomSettingUpdateParams as CustomSettingUpdateParams, }; export { DeviceOrders as DeviceOrders, type DeviceOrderListResponse as DeviceOrderListResponse, type DeviceOrderRetrieveResponse as DeviceOrderRetrieveResponse, type DeviceOrderListResponsesPageCursorURL as DeviceOrderListResponsesPageCursorURL, type DeviceOrderListParams as DeviceOrderListParams, type DeviceOrderRetrieveParams as DeviceOrderRetrieveParams, }; export { DraftHires as DraftHires, type DraftHireCreateResponse as DraftHireCreateResponse, type DraftHireCreateParams as DraftHireCreateParams, }; export { EarningTypes as EarningTypes, type EarningTypeListResponse as EarningTypeListResponse, type EarningTypeListResponsesPageCursorURL as EarningTypeListResponsesPageCursorURL, }; export { EarningsInputs as EarningsInputs, type EarningsInputListResponse as EarningsInputListResponse, type EarningsInputCreateResponse as EarningsInputCreateResponse, type EarningsInputListResponsesPageCursorURL as EarningsInputListResponsesPageCursorURL, type EarningsInputCreateParams as EarningsInputCreateParams, }; export { EmployeeDocuments as EmployeeDocuments, type EmployeeDocumentCreateResponse as EmployeeDocumentCreateResponse, type EmployeeDocumentCreateParams as EmployeeDocumentCreateParams, }; export { Entitlements as Entitlements, type EntitlementListResponse as EntitlementListResponse, type EntitlementListResponsesPageCursorURL as EntitlementListResponsesPageCursorURL, }; export { Files as Files, type FileRetrieveResponse as FileRetrieveResponse, type FileCreateResponse as FileCreateResponse, type FileCreateParams as FileCreateParams, }; export { HeadcountPositions as HeadcountPositions, type HeadcountPositionListResponse as HeadcountPositionListResponse, type HeadcountPositionRetrieveResponse as HeadcountPositionRetrieveResponse, type HeadcountPositionListResponsesPageCursorURL as HeadcountPositionListResponsesPageCursorURL, type HeadcountPositionListParams as HeadcountPositionListParams, type HeadcountPositionRetrieveParams as HeadcountPositionRetrieveParams, }; export { HeadcountPriorities as HeadcountPriorities, type HeadcountPriorityListResponse as HeadcountPriorityListResponse, type HeadcountPriorityRetrieveResponse as HeadcountPriorityRetrieveResponse, type HeadcountPriorityListResponsesPageCursorURL as HeadcountPriorityListResponsesPageCursorURL, type HeadcountPriorityListParams as HeadcountPriorityListParams, }; export { JobFunctions as JobFunctions, type JobFunctionListResponse as JobFunctionListResponse, type JobFunctionRetrieveResponse as JobFunctionRetrieveResponse, type JobFunctionListResponsesPageCursorURL as JobFunctionListResponsesPageCursorURL, type JobFunctionListParams as JobFunctionListParams, }; export { JobRequisitionsWrite as JobRequisitionsWrite, type JobRequisitionsWriteCreateResponse as JobRequisitionsWriteCreateResponse, type JobRequisitionsWriteCreateParams as JobRequisitionsWriteCreateParams, }; export { LeaveAccruals as LeaveAccruals, type LeaveAccrualListResponse as LeaveAccrualListResponse, type LeaveAccrualCreateResponse as LeaveAccrualCreateResponse, type LeaveAccrualRetrieveResponse as LeaveAccrualRetrieveResponse, type LeaveAccrualListResponsesPageCursorURL as LeaveAccrualListResponsesPageCursorURL, type LeaveAccrualListParams as LeaveAccrualListParams, type LeaveAccrualCreateParams as LeaveAccrualCreateParams, type LeaveAccrualRetrieveParams as LeaveAccrualRetrieveParams, }; export { LocationFactors as LocationFactors, type LocationFactorListResponse as LocationFactorListResponse, type LocationFactorRetrieveResponse as LocationFactorRetrieveResponse, type LocationFactorListResponsesPageCursorURL as LocationFactorListResponsesPageCursorURL, type LocationFactorListParams as LocationFactorListParams, }; export { PayrollRuns as PayrollRuns, type PayrollRunListResponse as PayrollRunListResponse, type PayrollRunRetrieveResponse as PayrollRunRetrieveResponse, type PayrollRunListResponsesPageCursorURL as PayrollRunListResponsesPageCursorURL, type PayrollRunListParams as PayrollRunListParams, }; export { PlatformCapabilities as PlatformCapabilities, type PlatformCapabilityListResponse as PlatformCapabilityListResponse, type PlatformCapabilityListResponsesPageCursorURL as PlatformCapabilityListResponsesPageCursorURL, }; export { Reports as Reports, type ReportRetrieveResponse as ReportRetrieveResponse }; export { ReportRuns as ReportRuns, type ReportRunCreateResponse as ReportRunCreateResponse, type ReportRunRetrieveResponse as ReportRunRetrieveResponse, type ReportRunCreateParams as ReportRunCreateParams, }; export { Schedules as Schedules, type ScheduleListResponse as ScheduleListResponse, type ScheduleCreateResponse as ScheduleCreateResponse, type ScheduleRetrieveResponse as ScheduleRetrieveResponse, type ScheduleUpdateResponse as ScheduleUpdateResponse, type ScheduleListResponsesPageCursorURL as ScheduleListResponsesPageCursorURL, type ScheduleListParams as ScheduleListParams, type ScheduleCreateParams as ScheduleCreateParams, type ScheduleRetrieveParams as ScheduleRetrieveParams, type ScheduleUpdateParams as ScheduleUpdateParams, }; export { ScheduledJobAssignments as ScheduledJobAssignments, type ScheduledJobAssignmentListResponse as ScheduledJobAssignmentListResponse, type ScheduledJobAssignmentRetrieveResponse as ScheduledJobAssignmentRetrieveResponse, type ScheduledJobAssignmentListResponsesPageCursorURL as ScheduledJobAssignmentListResponsesPageCursorURL, type ScheduledJobAssignmentListParams as ScheduledJobAssignmentListParams, }; export { Shiftassignments as Shiftassignments, type ShiftassignmentListResponse as ShiftassignmentListResponse, type ShiftassignmentCreateResponse as ShiftassignmentCreateResponse, type ShiftassignmentRetrieveResponse as ShiftassignmentRetrieveResponse, type ShiftassignmentUpdateResponse as ShiftassignmentUpdateResponse, type ShiftassignmentListResponsesPageCursorURL as ShiftassignmentListResponsesPageCursorURL, type ShiftassignmentListParams as ShiftassignmentListParams, type ShiftassignmentCreateParams as ShiftassignmentCreateParams, type ShiftassignmentRetrieveParams as ShiftassignmentRetrieveParams, type ShiftassignmentUpdateParams as ShiftassignmentUpdateParams, }; export { SoftwareDeployments as SoftwareDeployments, type SoftwareDeploymentListResponse as SoftwareDeploymentListResponse, type SoftwareDeploymentCreateResponse as SoftwareDeploymentCreateResponse, type SoftwareDeploymentRetrieveResponse as SoftwareDeploymentRetrieveResponse, type SoftwareDeploymentUpdateResponse as SoftwareDeploymentUpdateResponse, type SoftwareDeploymentListResponsesPageCursorURL as SoftwareDeploymentListResponsesPageCursorURL, type SoftwareDeploymentListParams as SoftwareDeploymentListParams, type SoftwareDeploymentCreateParams as SoftwareDeploymentCreateParams, type SoftwareDeploymentRetrieveParams as SoftwareDeploymentRetrieveParams, type SoftwareDeploymentUpdateParams as SoftwareDeploymentUpdateParams, }; export { Titles as Titles, 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, }; export { Unassignedshifts as Unassignedshifts, type UnassignedshiftListResponse as UnassignedshiftListResponse, type UnassignedshiftCreateResponse as UnassignedshiftCreateResponse, type UnassignedshiftRetrieveResponse as UnassignedshiftRetrieveResponse, type UnassignedshiftUpdateResponse as UnassignedshiftUpdateResponse, type UnassignedshiftListResponsesPageCursorURL as UnassignedshiftListResponsesPageCursorURL, type UnassignedshiftListParams as UnassignedshiftListParams, type UnassignedshiftCreateParams as UnassignedshiftCreateParams, type UnassignedshiftRetrieveParams as UnassignedshiftRetrieveParams, type UnassignedshiftUpdateParams as UnassignedshiftUpdateParams, }; export { WorkerChanges as WorkerChanges, type WorkerChangeListResponse as WorkerChangeListResponse, type WorkerChangeRetrieveResponse as WorkerChangeRetrieveResponse, type WorkerChangeListResponsesPageCursorURL as WorkerChangeListResponsesPageCursorURL, type WorkerChangeListParams as WorkerChangeListParams, type WorkerChangeRetrieveParams as WorkerChangeRetrieveParams, }; export { WorkerChangeFields as WorkerChangeFields, type WorkerChangeFieldListResponse as WorkerChangeFieldListResponse, type WorkerChangeFieldListResponsesPageCursorURL as WorkerChangeFieldListResponsesPageCursorURL, }; export { WorkerTimeSplits as WorkerTimeSplits, type WorkerTimeSplitListResponse as WorkerTimeSplitListResponse, type WorkerTimeSplitCreateResponse as WorkerTimeSplitCreateResponse, type WorkerTimeSplitRetrieveResponse as WorkerTimeSplitRetrieveResponse, type WorkerTimeSplitUpdateResponse as WorkerTimeSplitUpdateResponse, type WorkerTimeSplitListResponsesPageCursorURL as WorkerTimeSplitListResponsesPageCursorURL, type WorkerTimeSplitListParams as WorkerTimeSplitListParams, type WorkerTimeSplitCreateParams as WorkerTimeSplitCreateParams, type WorkerTimeSplitRetrieveParams as WorkerTimeSplitRetrieveParams, type WorkerTimeSplitUpdateParams as WorkerTimeSplitUpdateParams, }; export { WorkflowActionExecutions as WorkflowActionExecutions, type WorkflowActionExecutionCreateResponse as WorkflowActionExecutionCreateResponse, type WorkflowActionExecutionCreateParams as WorkflowActionExecutionCreateParams, }; export { ShiftAssignments as ShiftAssignments, type ShiftAssignmentUpdateCustomfieldsResponse as ShiftAssignmentUpdateCustomfieldsResponse, type ShiftAssignmentUpdateCustomfieldsParams as ShiftAssignmentUpdateCustomfieldsParams, }; export { UnassignedShifts as UnassignedShifts, type UnassignedShiftUpdateCustomfieldsResponse as UnassignedShiftUpdateCustomfieldsResponse, type UnassignedShiftAssignResponse as UnassignedShiftAssignResponse, type UnassignedShiftUpdateCustomfieldsParams as UnassignedShiftUpdateCustomfieldsParams, type UnassignedShiftAssignParams as UnassignedShiftAssignParams, }; export type Address = API.Address; export type CountryCode = API.CountryCode; export type GroupMember = API.GroupMember; export type RedactedFields = API.RedactedFields; }