@stackone/ai
Version:
Tools for agents to perform actions on your SaaS
1,494 lines (1,493 loc) • 555 kB
JavaScript
//#region src/openapi/generated/hris.ts
const hrisSpec = {
openapi: "3.1.0",
paths: {
"/unified/hris/companies": { get: {
operationId: "hris_list_companies",
parameters: [
{
name: "x-account-id",
in: "header",
description: "The account identifier",
required: true,
schema: { type: "string" }
},
{
name: "raw",
required: false,
in: "query",
description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)",
schema: {
nullable: true,
type: "boolean"
}
},
{
name: "proxy",
required: false,
in: "query",
description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key",
style: "deepObject",
explode: true,
schema: {
additionalProperties: true,
nullable: true,
type: "object"
}
},
{
name: "fields",
required: false,
in: "query",
description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)",
schema: {
nullable: true,
example: "id,remote_id,name,full_name,display_name,created_at,updated_at",
type: "string"
}
},
{
name: "filter",
required: false,
in: "query",
description: "Filter parameters that allow greater customisation of the list response",
explode: true,
style: "deepObject",
schema: {
properties: { updated_after: {
description: "Use a string with a date to only select results updated after that given date",
example: "2020-01-01T00:00:00.000Z",
type: "string",
format: "date-time",
nullable: true,
additionalProperties: false
} },
nullable: true,
type: "object"
}
},
{
name: "page",
required: false,
in: "query",
description: "The page number of the results to fetch",
deprecated: true,
schema: {
nullable: true,
type: "string"
}
},
{
name: "page_size",
required: false,
in: "query",
description: "The number of results per page (default value is 25)",
schema: {
nullable: true,
type: "string"
}
},
{
name: "next",
required: false,
in: "query",
description: "The unified cursor",
schema: {
nullable: true,
type: "string"
}
},
{
name: "updated_after",
required: false,
in: "query",
description: "Use a string with a date to only select results updated after that given date",
deprecated: true,
schema: {
format: "date-time",
nullable: true,
example: "2020-01-01T00:00:00.000Z",
type: "string"
}
}
],
responses: {
"200": {
description: "The list of Companies was retrieved.",
content: { "application/json": { schema: { $ref: "#/components/schemas/CompaniesPaginated" } } }
},
"400": {
description: "Invalid request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } }
},
"401": {
description: "Unauthorized access.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } }
},
"403": {
description: "Forbidden.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } }
},
"404": {
description: "Resource not found.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } }
},
"408": {
description: "The request has timed out.",
headers: { "Retry-After": {
description: "A time in seconds after which the request can be retried.",
schema: { type: "string" }
} },
content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } }
},
"409": {
description: "Conflict with current state.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } }
},
"412": {
description: "Precondition failed: linked account belongs to a disabled integration.",
content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } }
},
"422": {
description: "Validation error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } }
},
"429": {
description: "Too many requests.",
content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } }
},
"500": {
description: "Server error while executing the request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } }
},
"501": {
description: "This functionality is not implemented.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } }
},
"502": {
description: "Bad gateway error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } }
}
},
security: [{ basic: [] }],
summary: "List Companies",
tags: ["Companies"],
"x-speakeasy-group": "hris",
"x-speakeasy-name-override": "list_companies",
"x-speakeasy-pagination": {
type: "cursor",
inputs: [{
name: "next",
in: "parameters",
type: "cursor"
}],
outputs: { nextCursor: "$.next" }
},
"x-speakeasy-retries": {
statusCodes: [429, 408],
strategy: "backoff"
}
} },
"/unified/hris/companies/{id}": { get: {
operationId: "hris_get_company",
parameters: [
{
name: "x-account-id",
in: "header",
description: "The account identifier",
required: true,
schema: { type: "string" }
},
{
name: "id",
required: true,
in: "path",
schema: { type: "string" }
},
{
name: "raw",
required: false,
in: "query",
description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)",
schema: {
nullable: true,
type: "boolean"
}
},
{
name: "proxy",
required: false,
in: "query",
description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key",
style: "deepObject",
explode: true,
schema: {
additionalProperties: true,
nullable: true,
type: "object"
}
},
{
name: "fields",
required: false,
in: "query",
description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)",
schema: {
nullable: true,
example: "id,remote_id,name,full_name,display_name,created_at,updated_at",
type: "string"
}
}
],
responses: {
"200": {
description: "The Company with the given identifier was retrieved.",
content: { "application/json": { schema: { $ref: "#/components/schemas/CompanyResult" } } }
},
"400": {
description: "Invalid request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } }
},
"401": {
description: "Unauthorized access.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } }
},
"403": {
description: "Forbidden.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } }
},
"404": {
description: "Resource not found.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } }
},
"408": {
description: "The request has timed out.",
headers: { "Retry-After": {
description: "A time in seconds after which the request can be retried.",
schema: { type: "string" }
} },
content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } }
},
"409": {
description: "Conflict with current state.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } }
},
"412": {
description: "Precondition failed: linked account belongs to a disabled integration.",
content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } }
},
"422": {
description: "Validation error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } }
},
"429": {
description: "Too many requests.",
content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } }
},
"500": {
description: "Server error while executing the request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } }
},
"501": {
description: "This functionality is not implemented.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } }
},
"502": {
description: "Bad gateway error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } }
}
},
security: [{ basic: [] }],
summary: "Get Company",
tags: ["Companies"],
"x-speakeasy-group": "hris",
"x-speakeasy-name-override": "get_company",
"x-speakeasy-retries": {
statusCodes: [429, 408],
strategy: "backoff"
}
} },
"/unified/hris/custom_field_definitions/employees": { get: {
operationId: "hris_list_employee_custom_field_definitions",
parameters: [
{
name: "x-account-id",
in: "header",
description: "The account identifier",
required: true,
schema: { type: "string" }
},
{
name: "raw",
required: false,
in: "query",
description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)",
schema: {
nullable: true,
type: "boolean"
}
},
{
name: "proxy",
required: false,
in: "query",
description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key",
style: "deepObject",
explode: true,
schema: {
additionalProperties: true,
nullable: true,
type: "object"
}
},
{
name: "fields",
required: false,
in: "query",
description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)",
schema: {
nullable: true,
example: "id,remote_id,name,description,type,options",
type: "string"
}
},
{
name: "filter",
required: false,
in: "query",
description: "Filter parameters that allow greater customisation of the list response",
explode: true,
style: "deepObject",
schema: {
properties: { updated_after: {
description: "Use a string with a date to only select results updated after that given date",
example: "2020-01-01T00:00:00.000Z",
type: "string",
format: "date-time",
nullable: true,
additionalProperties: false
} },
nullable: true,
type: "object"
}
},
{
name: "page",
required: false,
in: "query",
description: "The page number of the results to fetch",
deprecated: true,
schema: {
nullable: true,
type: "string"
}
},
{
name: "page_size",
required: false,
in: "query",
description: "The number of results per page (default value is 25)",
schema: {
nullable: true,
type: "string"
}
},
{
name: "next",
required: false,
in: "query",
description: "The unified cursor",
schema: {
nullable: true,
type: "string"
}
},
{
name: "updated_after",
required: false,
in: "query",
description: "Use a string with a date to only select results updated after that given date",
deprecated: true,
schema: {
format: "date-time",
nullable: true,
example: "2020-01-01T00:00:00.000Z",
type: "string"
}
}
],
responses: {
"200": {
description: "The list of employee custom field definitions was retrieved.",
content: { "application/json": { schema: { $ref: "#/components/schemas/CustomFieldDefinitionsPaginated" } } }
},
"400": {
description: "Invalid request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } }
},
"401": {
description: "Unauthorized access.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } }
},
"403": {
description: "Forbidden.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } }
},
"404": {
description: "Resource not found.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } }
},
"408": {
description: "The request has timed out.",
headers: { "Retry-After": {
description: "A time in seconds after which the request can be retried.",
schema: { type: "string" }
} },
content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } }
},
"409": {
description: "Conflict with current state.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } }
},
"412": {
description: "Precondition failed: linked account belongs to a disabled integration.",
content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } }
},
"422": {
description: "Validation error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } }
},
"429": {
description: "Too many requests.",
content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } }
},
"500": {
description: "Server error while executing the request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } }
},
"501": {
description: "This functionality is not implemented.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } }
},
"502": {
description: "Bad gateway error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } }
}
},
security: [{ basic: [] }],
summary: "List employee Custom Field Definitions",
tags: ["Custom Field Definitions"],
"x-speakeasy-group": "hris",
"x-speakeasy-name-override": "list_employee_custom_field_definitions",
"x-speakeasy-pagination": {
type: "cursor",
inputs: [{
name: "next",
in: "parameters",
type: "cursor"
}],
outputs: { nextCursor: "$.next" }
},
"x-speakeasy-retries": {
statusCodes: [429, 408],
strategy: "backoff"
}
} },
"/unified/hris/custom_field_definitions/employees/{id}": { get: {
operationId: "hris_get_employee_custom_field_definition",
parameters: [
{
name: "x-account-id",
in: "header",
description: "The account identifier",
required: true,
schema: { type: "string" }
},
{
name: "id",
required: true,
in: "path",
schema: { type: "string" }
},
{
name: "raw",
required: false,
in: "query",
description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)",
schema: {
nullable: true,
type: "boolean"
}
},
{
name: "proxy",
required: false,
in: "query",
description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key",
style: "deepObject",
explode: true,
schema: {
additionalProperties: true,
nullable: true,
type: "object"
}
},
{
name: "fields",
required: false,
in: "query",
description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)",
schema: {
nullable: true,
example: "id,remote_id,name,description,type,options",
type: "string"
}
},
{
name: "filter",
required: false,
in: "query",
description: "Filter parameters that allow greater customisation of the list response",
explode: true,
style: "deepObject",
schema: {
properties: { updated_after: {
description: "Use a string with a date to only select results updated after that given date",
example: "2020-01-01T00:00:00.000Z",
type: "string",
format: "date-time",
nullable: true,
additionalProperties: false
} },
nullable: true,
type: "object"
}
},
{
name: "page",
required: false,
in: "query",
description: "The page number of the results to fetch",
deprecated: true,
schema: {
nullable: true,
type: "string"
}
},
{
name: "page_size",
required: false,
in: "query",
description: "The number of results per page (default value is 25)",
schema: {
nullable: true,
type: "string"
}
},
{
name: "next",
required: false,
in: "query",
description: "The unified cursor",
schema: {
nullable: true,
type: "string"
}
},
{
name: "updated_after",
required: false,
in: "query",
description: "Use a string with a date to only select results updated after that given date",
deprecated: true,
schema: {
format: "date-time",
nullable: true,
example: "2020-01-01T00:00:00.000Z",
type: "string"
}
}
],
responses: {
"200": {
description: "The employee custom field definition was retrieved.",
content: { "application/json": { schema: { $ref: "#/components/schemas/CustomFieldDefinitionResultApiModel" } } }
},
"400": {
description: "Invalid request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } }
},
"401": {
description: "Unauthorized access.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } }
},
"403": {
description: "Forbidden.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } }
},
"404": {
description: "Resource not found.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } }
},
"408": {
description: "The request has timed out.",
headers: { "Retry-After": {
description: "A time in seconds after which the request can be retried.",
schema: { type: "string" }
} },
content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } }
},
"409": {
description: "Conflict with current state.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } }
},
"412": {
description: "Precondition failed: linked account belongs to a disabled integration.",
content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } }
},
"422": {
description: "Validation error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } }
},
"429": {
description: "Too many requests.",
content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } }
},
"500": {
description: "Server error while executing the request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } }
},
"501": {
description: "This functionality is not implemented.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } }
},
"502": {
description: "Bad gateway error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } }
}
},
security: [{ basic: [] }],
summary: "Get employee Custom Field Definition",
tags: ["Custom Field Definitions"],
"x-speakeasy-group": "hris",
"x-speakeasy-name-override": "get_employee_custom_field_definition",
"x-speakeasy-retries": {
statusCodes: [429, 408],
strategy: "backoff"
}
} },
"/unified/hris/employees": {
get: {
operationId: "hris_list_employees",
parameters: [
{
name: "x-account-id",
in: "header",
description: "The account identifier",
required: true,
schema: { type: "string" }
},
{
name: "raw",
required: false,
in: "query",
description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)",
schema: {
nullable: true,
type: "boolean"
}
},
{
name: "proxy",
required: false,
in: "query",
description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key",
style: "deepObject",
explode: true,
schema: {
additionalProperties: true,
nullable: true,
type: "object"
}
},
{
name: "fields",
required: false,
in: "query",
description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)",
schema: {
nullable: true,
example: "id,remote_id,first_name,last_name,name,display_name,gender,ethnicity,date_of_birth,birthday,marital_status,avatar_url,avatar,personal_email,personal_phone_number,work_email,work_phone_number,job_id,remote_job_id,job_title,job_description,department_id,remote_department_id,department,cost_centers,company,manager_id,remote_manager_id,hire_date,start_date,tenure,work_anniversary,employment_type,employment_contract_type,employment_status,termination_date,company_name,company_id,remote_company_id,preferred_language,citizenships,home_location,work_location,employments,custom_fields,created_at,updated_at,benefits,employee_number,national_identity_number,national_identity_numbers,skills",
type: "string"
}
},
{
name: "filter",
required: false,
in: "query",
description: "HRIS Employees filters",
explode: true,
style: "deepObject",
schema: {
properties: {
updated_after: {
description: "Use a string with a date to only select results updated after that given date",
example: "2020-01-01T00:00:00.000Z",
type: "string",
format: "date-time",
nullable: true,
additionalProperties: false
},
email: {
description: "Filter to select employees by email",
type: "string",
nullable: true
},
employee_number: {
description: "Filter to select employees by employee_number",
type: "string",
nullable: true
}
},
nullable: true,
type: "object"
}
},
{
name: "page",
required: false,
in: "query",
description: "The page number of the results to fetch",
deprecated: true,
schema: {
nullable: true,
type: "string"
}
},
{
name: "page_size",
required: false,
in: "query",
description: "The number of results per page (default value is 25)",
schema: {
nullable: true,
type: "string"
}
},
{
name: "next",
required: false,
in: "query",
description: "The unified cursor",
schema: {
nullable: true,
type: "string"
}
},
{
name: "updated_after",
required: false,
in: "query",
description: "Use a string with a date to only select results updated after that given date",
deprecated: true,
schema: {
format: "date-time",
nullable: true,
example: "2020-01-01T00:00:00.000Z",
type: "string"
}
},
{
name: "expand",
required: false,
in: "query",
description: "The comma separated list of fields that will be expanded in the response",
schema: {
nullable: true,
example: "company,employments,work_location,home_location,groups,skills",
type: "string"
}
},
{
name: "include",
required: false,
in: "query",
description: "The comma separated list of fields that will be included in the response",
schema: {
nullable: true,
example: "avatar_url,avatar,custom_fields,job_description,benefits",
type: "string"
}
}
],
responses: {
"200": {
description: "The list of employees was retrieved.",
content: { "application/json": { schema: { $ref: "#/components/schemas/EmployeesPaginated" } } }
},
"400": {
description: "Invalid request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } }
},
"401": {
description: "Unauthorized access.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } }
},
"403": {
description: "Forbidden.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } }
},
"404": {
description: "Resource not found.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } }
},
"408": {
description: "The request has timed out.",
headers: { "Retry-After": {
description: "A time in seconds after which the request can be retried.",
schema: { type: "string" }
} },
content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } }
},
"409": {
description: "Conflict with current state.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } }
},
"412": {
description: "Precondition failed: linked account belongs to a disabled integration.",
content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } }
},
"422": {
description: "Validation error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } }
},
"429": {
description: "Too many requests.",
content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } }
},
"500": {
description: "Server error while executing the request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } }
},
"501": {
description: "This functionality is not implemented.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } }
},
"502": {
description: "Bad gateway error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } }
}
},
security: [{ basic: [] }],
summary: "List Employees",
tags: ["Employees"],
"x-speakeasy-group": "hris",
"x-speakeasy-name-override": "list_employees",
"x-speakeasy-pagination": {
type: "cursor",
inputs: [{
name: "next",
in: "parameters",
type: "cursor"
}],
outputs: { nextCursor: "$.next" }
},
"x-speakeasy-retries": {
statusCodes: [429, 408],
strategy: "backoff"
},
"x-speakeasy-usage-example": {
title: "List Employees",
position: 1
}
},
post: {
operationId: "hris_create_employee",
parameters: [{
name: "x-account-id",
in: "header",
description: "The account identifier",
required: true,
schema: { type: "string" }
}],
requestBody: {
required: true,
content: { "application/json": { schema: { $ref: "#/components/schemas/HrisCreateEmployeeRequestDto" } } }
},
responses: {
"201": {
description: "The employee was created successfully.",
content: { "application/json": { schema: { $ref: "#/components/schemas/CreateResult" } } }
},
"400": {
description: "Invalid request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } }
},
"401": {
description: "Unauthorized access.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } }
},
"403": {
description: "Forbidden.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } }
},
"404": {
description: "Resource not found.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } }
},
"408": {
description: "The request has timed out.",
headers: { "Retry-After": {
description: "A time in seconds after which the request can be retried.",
schema: { type: "string" }
} },
content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } }
},
"409": {
description: "Conflict with current state.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } }
},
"412": {
description: "Precondition failed: linked account belongs to a disabled integration.",
content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } }
},
"422": {
description: "Validation error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } }
},
"429": {
description: "Too many requests.",
content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } }
},
"500": {
description: "Server error while executing the request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } }
},
"501": {
description: "This functionality is not implemented.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } }
},
"502": {
description: "Bad gateway error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } }
}
},
security: [{ basic: [] }],
summary: "Create Employee",
tags: ["Employees"],
"x-speakeasy-group": "hris",
"x-speakeasy-name-override": "create_employee",
"x-speakeasy-retries": {
statusCodes: [429, 408],
strategy: "backoff"
}
}
},
"/unified/hris/employees/{id}": {
get: {
operationId: "hris_get_employee",
parameters: [
{
name: "x-account-id",
in: "header",
description: "The account identifier",
required: true,
schema: { type: "string" }
},
{
name: "id",
required: true,
in: "path",
schema: { type: "string" }
},
{
name: "raw",
required: false,
in: "query",
description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)",
schema: {
nullable: true,
type: "boolean"
}
},
{
name: "proxy",
required: false,
in: "query",
description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key",
style: "deepObject",
explode: true,
schema: {
additionalProperties: true,
nullable: true,
type: "object"
}
},
{
name: "fields",
required: false,
in: "query",
description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)",
schema: {
nullable: true,
example: "id,remote_id,first_name,last_name,name,display_name,gender,ethnicity,date_of_birth,birthday,marital_status,avatar_url,avatar,personal_email,personal_phone_number,work_email,work_phone_number,job_id,remote_job_id,job_title,job_description,department_id,remote_department_id,department,cost_centers,company,manager_id,remote_manager_id,hire_date,start_date,tenure,work_anniversary,employment_type,employment_contract_type,employment_status,termination_date,company_name,company_id,remote_company_id,preferred_language,citizenships,home_location,work_location,employments,custom_fields,created_at,updated_at,benefits,employee_number,national_identity_number,national_identity_numbers,skills",
type: "string"
}
},
{
name: "expand",
required: false,
in: "query",
description: "The comma separated list of fields that will be expanded in the response",
schema: {
nullable: true,
example: "company,employments,work_location,home_location,groups,skills",
type: "string"
}
},
{
name: "include",
required: false,
in: "query",
description: "The comma separated list of fields that will be included in the response",
schema: {
nullable: true,
example: "avatar_url,avatar,custom_fields,job_description,benefits",
type: "string"
}
}
],
responses: {
"200": {
description: "The employee with the given identifier was retrieved.",
content: { "application/json": { schema: { $ref: "#/components/schemas/EmployeeResult" } } }
},
"400": {
description: "Invalid request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } }
},
"401": {
description: "Unauthorized access.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } }
},
"403": {
description: "Forbidden.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } }
},
"404": {
description: "Resource not found.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } }
},
"408": {
description: "The request has timed out.",
headers: { "Retry-After": {
description: "A time in seconds after which the request can be retried.",
schema: { type: "string" }
} },
content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } }
},
"409": {
description: "Conflict with current state.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } }
},
"412": {
description: "Precondition failed: linked account belongs to a disabled integration.",
content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } }
},
"422": {
description: "Validation error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } }
},
"429": {
description: "Too many requests.",
content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } }
},
"500": {
description: "Server error while executing the request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } }
},
"501": {
description: "This functionality is not implemented.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } }
},
"502": {
description: "Bad gateway error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } }
}
},
security: [{ basic: [] }],
summary: "Get Employee",
tags: ["Employees"],
"x-speakeasy-group": "hris",
"x-speakeasy-name-override": "get_employee",
"x-speakeasy-retries": {
statusCodes: [429, 408],
strategy: "backoff"
}
},
patch: {
operationId: "hris_update_employee",
parameters: [{
name: "x-account-id",
in: "header",
description: "The account identifier",
required: true,
schema: { type: "string" }
}, {
name: "id",
required: true,
in: "path",
schema: { type: "string" }
}],
requestBody: {
required: true,
content: { "application/json": { schema: { $ref: "#/components/schemas/HrisUpdateEmployeeRequestDto" } } }
},
responses: {
"200": {
description: "Record updated successfully",
content: { "application/json": { schema: { $ref: "#/components/schemas/UpdateResult" } } }
},
"400": {
description: "Invalid request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } }
},
"401": {
description: "Unauthorized access.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } }
},
"403": {
description: "Forbidden.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } }
},
"404": {
description: "Resource not found.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } }
},
"408": {
description: "The request has timed out.",
headers: { "Retry-After": {
description: "A time in seconds after which the request can be retried.",
schema: { type: "string" }
} },
content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } }
},
"409": {
description: "Conflict with current state.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } }
},
"412": {
description: "Precondition failed: linked account belongs to a disabled integration.",
content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } }
},
"422": {
description: "Validation error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } }
},
"429": {
description: "Too many requests.",
content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } }
},
"500": {
description: "Server error while executing the request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } }
},
"501": {
description: "This functionality is not implemented.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } }
},
"502": {
description: "Bad gateway error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } }
}
},
security: [{ basic: [] }],
summary: "Update Employee",
tags: ["Employees"],
"x-speakeasy-group": "hris",
"x-speakeasy-name-override": "update_employee",
"x-speakeasy-retries": {
statusCodes: [429, 408],
strategy: "backoff"
}
}
},
"/unified/hris/employees/{id}/invite": { post: {
operationId: "hris_invite_employee",
parameters: [{
name: "x-account-id",
in: "header",
description: "The account identifier",
required: true,
schema: { type: "string" }
}, {
name: "id",
required: true,
in: "path",
schema: { type: "string" }
}],
requestBody: {
required: true,
content: { "application/json": { schema: { $ref: "#/components/schemas/HrisInviteEmployeeRequestDto" } } }
},
responses: {
"200": {
description: "Record invited successfully",
content: { "application/json": { schema: { $ref: "#/components/schemas/InviteEmployeeResult" } } }
},
"400": {
description: "Invalid request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } }
},
"401": {
description: "Unauthorized access.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } }
},
"403": {
description: "Forbidden.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } }
},
"404": {
description: "Resource not found.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } }
},
"408": {
description: "The request has timed out.",
headers: { "Retry-After": {
description: "A time in seconds after which the request can be retried.",
schema: { type: "string" }
} },
content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } }
},
"409": {
description: "Conflict with current state.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } }
},
"412": {
description: "Precondition failed: linked account belongs to a disabled integration.",
content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } }
},
"422": {
description: "Validation error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } }
},
"429": {
description: "Too many requests.",
content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } }
},
"500": {
description: "Server error while executing the request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } }
},
"501": {
description: "This functionality is not implemented.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } }
},
"502": {
description: "Bad gateway error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } }
}
},
security: [{ basic: [] }],
summary: "Invite Employee",
tags: ["Employees"],
"x-speakeasy-group": "hris",
"x-speakeasy-name-override": "invite_employee",
"x-speakeasy-retries": {
statusCodes: [429, 408],
strategy: "backoff"
}
} },
"/unified/hris/employees/{id}/time_off": {
get: {
operationId: "hris_list_employee_time_off_requests",
parameters: [
{
name: "x-account-id",
in: "header",
description: "The account identifier",
required: true,
schema: { type: "string" }
},
{
name: "id",
required: true,
in: "path",
schema: { type: "string" }
},
{
name: "raw",
required: false,
in: "query",
description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)",
schema: {
nullable: true,
type: "boolean"
}
},
{
name: "proxy",
required: false,
in: "query",
description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key",
style: "deepObject",
explode: true,
schema: {
additionalProperties: true,
nullable: true,
type: "object"
}
},
{
name: "fields",
required: false,
in: "query",
description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)",
schema: {
nullable: true,
example: "id,remote_id,employee_id,remote_employee_id,approver_id,remote_approver_id,status,type,start_date,end_date,start_half_day,end_half_day,time_off_policy_id,remote_time_off_policy_id,reason,comment,duration,created_at,updated_at,policy",
type: "string"
}
},
{
name: "filter",
required: false,
in: "query",
description: "HRIS Time Off filters",
explode: true,
style: "deepObject",
schema: {
properties: {
updated_after: {
description: "Use a string with a date to only select results updated after that given date",
example: "2020-01-01T00:00:00.000Z",
type: "string",
format: "date-time",
nullable: true,
additionalProperties: false
},
type_ids: {
description: "List of time off type ids to filter by.",
nullable: true,
type: "array",
items: { type: "string" }
}
},
nullable: true,
type: "object"
}
},
{
name: "page",
required: false,
in: "query",
description: "The page number of the results to fetch",
deprecated: true,
schema: {
nullable: true,
type: "string"
}
},
{
name: "page_size",
required: false,
in: "query",
description: "The number of results per page (default value is 25)",
schema: {
nullable: true,
type: "string"
}
},
{
name: "next",
required: false,
in: "query",
description: "The unified cursor",
schema: {
nullable: true,
type: "string"
}
},
{
name: "updated_after",
required: false,
in: "query",
description: "Use a string with a date to only select results updated after that given date",
deprecated: true,
schema: {
format: "date-time",
nullable: true,
example: "2020-01-01T00:00:00.000Z",
type: "string"
}
},
{
name: "expand",
required: false,
in: "query",
description: "The comma separated list of fields that will be expanded in the response",
schema: {
nullable: true,
example: "policy",
type: "string"
}
}
],
responses: {
"200": {
description: "The time off requests related to the employee with the given identifier were retrieved.",
content: { "application/json": { schema: { $ref: "#/components/schemas/TimeOffPaginated" } } }
},
"400": {
description: "Invalid request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } }
},
"401": {
description: "Unauthorized access.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } }
},
"403": {
description: "Forbidden.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } }
},
"404": {
description: "Resource not found.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } }
},
"408": {
description: "The request has timed out.",
headers: { "Retry-After": {
description: "A time in seconds after which the request can be retried.",
schema: { type: "string" }
} },
content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } }
},
"409": {
description: "Conflict with current state.",
content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } }
},
"412": {
description: "Precondition failed: linked account belongs to a disabled integration.",
content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } }
},
"422": {
description: "Validation error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } }
},
"429": {
description: "Too many requests.",
content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } }
},
"500": {
description: "Server error while executing the request.",
content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } }
},
"501": {
description: "This functionality is not implemented.",
content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } }
},
"502": {
description: "Bad gateway error.",
content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } }
}
},