import { APIResource } from "../core/resource.js"; import * as BusinessPartnersAPI from "./business-partners.js"; import { APIPromise } from "../core/api-promise.js"; import { PageCursorURL, PagePromise } from "../core/pagination.js"; import { RequestOptions } from "../internal/request-options.js"; /** * Job related information for the company */ export declare class JobDimensions extends APIResource { /** * A list of job dimensions. * * - Requires: `API Tier 1` * - Filterable fields: `name` * - Sortable fields: `id`, `created_at`, `updated_at` * * @example HTTP * Representative request and response shapes. * ``` * GET /job-dimensions/?filter=filter&order_by=order_by&limit=50&cursor=cursor HTTP/1.1 * Host: rest.ripplingapis.com * Accept: application/json * Rippling-Api-Version: 2024-08-01 * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "__meta": { * "redacted_fields": [ * { * "name": "date_of_birth", * "reason": "Insufficient entitlements" * } * ] * }, * "results": [ * { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "external_id": "string", * "includes_custom_location": false, * "roster_type": "PER_DIMENSION", * "group_id": "string", * "org_attribute_associations": [ * "DEPARTMENT" * ] * } * ], * "next_link": "string" * } * ``` */ list(query?: JobDimensionListParams | null | undefined, options?: RequestOptions): PagePromise; /** * Create a new job dimension * * @example HTTP * Representative request and response shapes. * ``` * POST /job-dimensions/ HTTP/1.1 * Host: rest.ripplingapis.com * Content-Type: application/json * Accept: application/json * Rippling-Api-Version: 2024-08-01 * * { * "name": "name" * } * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "external_id": "string", * "includes_custom_location": false, * "roster_type": "PER_DIMENSION", * "group_id": "string", * "org_attribute_associations": [ * "DEPARTMENT" * ] * } * ``` */ create(body: JobDimensionCreateParams, options?: RequestOptions): APIPromise; /** * Retrieve a specific job dimension * * @example HTTP * Representative request and response shapes. * ``` * GET /job-dimensions/{id}/ HTTP/1.1 * Host: rest.ripplingapis.com * Accept: application/json * Rippling-Api-Version: 2024-08-01 * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "__meta": { * "redacted_fields": [ * {} * ] * } * } * ``` */ retrieve(id: string, options?: RequestOptions): APIPromise; /** * Update a specific job dimension. * * @example HTTP * Representative request and response shapes. * ``` * PATCH /job-dimensions/{id}/ HTTP/1.1 * Host: rest.ripplingapis.com * Content-Type: application/json * Accept: application/json * Rippling-Api-Version: 2024-08-01 * * {} * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "external_id": "string", * "includes_custom_location": false, * "roster_type": "PER_DIMENSION", * "group_id": "string", * "org_attribute_associations": [ * "DEPARTMENT" * ] * } * ``` */ update(id: string, body?: JobDimensionUpdateParams | null | undefined, options?: RequestOptions): APIPromise; /** * Delete a job dimension * * @example HTTP * Representative request and response shapes. * ``` * DELETE /job-dimensions/{id}/ HTTP/1.1 * Host: rest.ripplingapis.com * Rippling-Api-Version: 2024-08-01 * * HTTP/1.1 204 No Content * ``` */ delete(id: string, options?: RequestOptions): APIPromise; } export type JobDimensionsPageCursorURL = PageCursorURL; export interface JobDimension { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * The name of the job dimension */ name: string; /** * Record update date */ updated_at: string; /** * The unique identifier of the job dimension in a third party system */ external_id?: string; /** * The ID of the dimension roster group. */ group_id?: string; /** * Whether the job dimension includes codes related to a custom location. Only one * dimension can have this set to true. */ includes_custom_location?: boolean; /** * Organizational attributes associated with the job dimension. Only 'PAY_RATE' can * be set or modified using POST or PATCH requests. */ org_attribute_associations?: Array<'DEPARTMENT' | 'WORK_LOCATION' | 'PAY_RATE' | 'ENTITY'>; /** * The roster type of the dimension. PER_DIMENSION means that there is a group on * the dimension level and employees within that group have access to all job codes * in the dimension. PER_JOB_CODE means that each job code has its own group. */ roster_type?: 'PER_DIMENSION' | 'PER_JOB_CODE'; } export interface JobDimensionRequest { /** * The name of the job dimension */ name: string; /** * The unique identifier of the job dimension in a third party system */ external_id?: string; /** * Whether the job dimension includes codes related to a custom location. Only one * dimension can have this set to true. */ includes_custom_location?: boolean; /** * Organizational attributes associated with the job dimension. Only 'PAY_RATE' can * be set or modified using POST or PATCH requests. */ org_attribute_associations?: Array<'DEPARTMENT' | 'WORK_LOCATION' | 'PAY_RATE' | 'ENTITY'>; /** * The roster type of the dimension. PER_DIMENSION means that there is a group on * the dimension level and employees within that group have access to all job codes * in the dimension. PER_JOB_CODE means that each job code has its own group. */ roster_type?: 'PER_DIMENSION' | 'PER_JOB_CODE'; } /** * Meta information for the response. */ export interface JobDimensionRetrieveResponse extends BusinessPartnersAPI.Meta, JobDimension { } export interface JobDimensionListParams { cursor?: string; filter?: string; /** * The maximum number of results to return. Defaults to 50. Maximum is 100. */ limit?: number; order_by?: string; } export interface JobDimensionCreateParams { /** * The name of the job dimension */ name: string; /** * The unique identifier of the job dimension in a third party system */ external_id?: string; /** * Whether the job dimension includes codes related to a custom location. Only one * dimension can have this set to true. */ includes_custom_location?: boolean; /** * Organizational attributes associated with the job dimension. Only 'PAY_RATE' can * be set or modified using POST or PATCH requests. */ org_attribute_associations?: Array<'DEPARTMENT' | 'WORK_LOCATION' | 'PAY_RATE' | 'ENTITY'>; /** * The roster type of the dimension. PER_DIMENSION means that there is a group on * the dimension level and employees within that group have access to all job codes * in the dimension. PER_JOB_CODE means that each job code has its own group. */ roster_type?: 'PER_DIMENSION' | 'PER_JOB_CODE'; } export interface JobDimensionUpdateParams { /** * The unique identifier of the job dimension in a third party system */ external_id?: string; /** * Whether the job dimension includes codes related to a custom location. Only one * dimension can have this set to true. */ includes_custom_location?: boolean; /** * The name of the job dimension */ name?: string; /** * Organizational attributes associated with the job dimension. Only 'PAY_RATE' can * be set or modified using POST or PATCH requests. */ org_attribute_associations?: Array<'DEPARTMENT' | 'WORK_LOCATION' | 'PAY_RATE' | 'ENTITY'>; /** * The roster type of the dimension. PER_DIMENSION means that there is a group on * the dimension level and employees within that group have access to all job codes * in the dimension. PER_JOB_CODE means that each job code has its own group. */ roster_type?: 'PER_DIMENSION' | 'PER_JOB_CODE'; } export declare namespace JobDimensions { export { 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, }; } //# sourceMappingURL=job-dimensions.d.ts.map