diff --git a/examples/filters.ts b/examples/filters.ts new file mode 100644 index 0000000..7a6e6e6 --- /dev/null +++ b/examples/filters.ts @@ -0,0 +1,296 @@ +#!/usr/bin/env bun +/** + * Filters Example + * + * This example demonstrates how to use filters with the HRIS list employees endpoint. + * It showcases the deep object serialization implementation that properly converts + * nested filter objects to OpenAPI deepObject style query parameters. + * + * Key features demonstrated: + * 1. Basic filter usage (updated_after, email, employee_number) + * 2. Proxy parameter usage for provider-specific filters + * 3. Complex nested filter combinations + * 4. Proper serialization of filter objects to query parameters + * + * Usage: + * + * ```bash + * bun run examples/filters.ts + * ``` + */ + +import assert from 'node:assert'; +import { StackOneToolSet } from '../src'; + +type DryRunResult = { url: string }; + +const hriseEmployeeFilters = async (): Promise => { + // Initialize the toolset + const toolset = new StackOneToolSet(); + const accountId = 'test-account-id'; + + // Get the HRIS tools with account ID + const tools = toolset.getStackOneTools('hris_*', accountId); + const employeesTool = tools.getTool('hris_list_employees'); + + assert(employeesTool !== undefined, 'Expected to find hris_list_employees tool'); + + console.log('🧪 Testing HRIS Employee Filters with Deep Object Serialization\n'); + + /* + * Example 1: Basic date filter + * Demonstrates filtering employees updated after a specific date + */ + console.log('1️⃣ Basic Date Filter Test'); + const basicDateFilter = (await employeesTool.execute( + { + filter: { + updated_after: '2023-01-01T00:00:00.000Z', + }, + }, + { dryRun: true } + )) as DryRunResult; + + console.log('Filter object:', { filter: { updated_after: '2023-01-01T00:00:00.000Z' } }); + console.log('Serialized URL:', basicDateFilter.url); + + // Verify that the filter is properly serialized as deepObject style + assert( + basicDateFilter.url.includes('filter%5Bupdated_after%5D=2023-01-01T00%3A00%3A00.000Z'), + 'Expected URL to contain properly serialized date filter' + ); + console.log('✅ Date filter serialized correctly\n'); + + /* + * Example 2: Email filter + * Demonstrates filtering employees by email address + */ + console.log('2️⃣ Email Filter Test'); + const emailFilter = (await employeesTool.execute( + { + filter: { + email: 'john.doe@company.com', + }, + }, + { dryRun: true } + )) as DryRunResult; + + console.log('Filter object:', { filter: { email: 'john.doe@company.com' } }); + console.log('Serialized URL:', emailFilter.url); + + assert( + emailFilter.url.includes('filter%5Bemail%5D=john.doe%40company.com'), + 'Expected URL to contain properly serialized email filter' + ); + console.log('✅ Email filter serialized correctly\n'); + + /* + * Example 3: Employee number filter + * Demonstrates filtering employees by employee number + */ + console.log('3️⃣ Employee Number Filter Test'); + const employeeNumberFilter = (await employeesTool.execute( + { + filter: { + employee_number: 'EMP001', + }, + }, + { dryRun: true } + )) as DryRunResult; + + console.log('Filter object:', { filter: { employee_number: 'EMP001' } }); + console.log('Serialized URL:', employeeNumberFilter.url); + + assert( + employeeNumberFilter.url.includes('filter%5Bemployee_number%5D=EMP001'), + 'Expected URL to contain properly serialized employee number filter' + ); + console.log('✅ Employee number filter serialized correctly\n'); + + /* + * Example 4: Multiple filters combined + * Demonstrates using multiple filter parameters together + */ + console.log('4️⃣ Multiple Filters Combined Test'); + const multipleFilters = (await employeesTool.execute( + { + filter: { + updated_after: '2023-06-01T00:00:00.000Z', + email: 'jane.smith@company.com', + employee_number: 'EMP002', + }, + }, + { dryRun: true } + )) as DryRunResult; + + console.log('Filter object:', { + filter: { + updated_after: '2023-06-01T00:00:00.000Z', + email: 'jane.smith@company.com', + employee_number: 'EMP002', + }, + }); + console.log('Serialized URL:', (multipleFilters as { url: string }).url); + + // Verify all filters are present in the URL + assert( + multipleFilters.url.includes('filter%5Bupdated_after%5D=2023-06-01T00%3A00%3A00.000Z'), + 'Expected URL to contain date filter' + ); + assert( + multipleFilters.url.includes('filter%5Bemail%5D=jane.smith%40company.com'), + 'Expected URL to contain email filter' + ); + assert( + multipleFilters.url.includes('filter%5Bemployee_number%5D=EMP002'), + 'Expected URL to contain employee number filter' + ); + console.log('✅ Multiple filters serialized correctly\n'); + + /* + * Example 5: Proxy parameters for provider-specific filtering + * Demonstrates using proxy parameters which also use deepObject serialization + */ + console.log('5️⃣ Proxy Parameters Test'); + const proxyParameters = (await employeesTool.execute( + { + proxy: { + custom_field: 'value123', + provider_filter: { + department: 'Engineering', + status: 'active', + }, + }, + }, + { dryRun: true } + )) as DryRunResult; + + console.log('Proxy object:', { + proxy: { + custom_field: 'value123', + provider_filter: { + department: 'Engineering', + status: 'active', + }, + }, + }); + console.log('Serialized URL:', proxyParameters.url); + + // Verify proxy parameters are properly serialized + assert( + proxyParameters.url.includes('proxy%5Bcustom_field%5D=value123'), + 'Expected URL to contain proxy custom_field parameter' + ); + assert( + proxyParameters.url.includes('proxy%5Bprovider_filter%5D%5Bdepartment%5D=Engineering'), + 'Expected URL to contain nested proxy department parameter' + ); + assert( + proxyParameters.url.includes('proxy%5Bprovider_filter%5D%5Bstatus%5D=active'), + 'Expected URL to contain nested proxy status parameter' + ); + console.log('✅ Proxy parameters with nested objects serialized correctly\n'); + + /* + * Example 6: Complex combined scenario + * Demonstrates combining filters, proxy parameters, and other query parameters + */ + console.log('6️⃣ Complex Combined Scenario Test'); + const complexScenario = (await employeesTool.execute( + { + filter: { + updated_after: '2023-09-01T00:00:00.000Z', + email: 'admin@company.com', + }, + proxy: { + include_terminated: 'false', + custom_sorting: { + field: 'hire_date', + order: 'desc', + }, + }, + fields: 'id,first_name,last_name,email,hire_date', + page_size: '50', + }, + { dryRun: true } + )) as DryRunResult; + + console.log('Complex parameters:', { + filter: { + updated_after: '2023-09-01T00:00:00.000Z', + email: 'admin@company.com', + }, + proxy: { + include_terminated: 'false', + custom_sorting: { + field: 'hire_date', + order: 'desc', + }, + }, + fields: 'id,first_name,last_name,email,hire_date', + page_size: '50', + }); + console.log('Serialized URL:', complexScenario.url); + + // Verify complex scenario serialization + assert( + complexScenario.url.includes('filter%5Bupdated_after%5D=2023-09-01T00%3A00%3A00.000Z'), + 'Expected URL to contain complex date filter' + ); + assert( + complexScenario.url.includes('filter%5Bemail%5D=admin%40company.com'), + 'Expected URL to contain complex email filter' + ); + assert( + complexScenario.url.includes('proxy%5Binclude_terminated%5D=false'), + 'Expected URL to contain proxy boolean parameter' + ); + assert( + complexScenario.url.includes('proxy%5Bcustom_sorting%5D%5Bfield%5D=hire_date'), + 'Expected URL to contain nested proxy field parameter' + ); + assert( + complexScenario.url.includes('proxy%5Bcustom_sorting%5D%5Border%5D=desc'), + 'Expected URL to contain nested proxy order parameter' + ); + assert( + complexScenario.url.includes('fields=id%2Cfirst_name%2Clast_name%2Cemail%2Chire_date'), + 'Expected URL to contain fields parameter' + ); + assert( + complexScenario.url.includes('page_size=50'), + 'Expected URL to contain page_size parameter' + ); + console.log('✅ Complex combined scenario serialized correctly\n'); + + /* + * Example 7: Edge case - Empty filter objects + * Demonstrates handling of empty filter objects + */ + console.log('7️⃣ Edge Case - Empty Filter Objects Test'); + const emptyFilterTest = (await employeesTool.execute( + { + filter: {}, + fields: 'id,first_name,last_name', + }, + { dryRun: true } + )) as DryRunResult; + + console.log('Empty filter object:', { filter: {}, fields: 'id,first_name,last_name' }); + console.log('Serialized URL:', emptyFilterTest.url); + + // Verify that empty filter objects don't create problematic parameters + assert( + emptyFilterTest.url.includes('fields=id%2Cfirst_name%2Clast_name'), + 'Expected URL to contain fields parameter even with empty filter' + ); + // Empty objects should not create parameters + assert( + !emptyFilterTest.url.includes('filter='), + 'Expected URL to not contain empty filter parameter' + ); + console.log('✅ Empty filter objects handled correctly\n'); +}; + +// Run the example +hriseEmployeeFilters(); diff --git a/src/modules/requestBuilder.ts b/src/modules/requestBuilder.ts index cf6ea06..873dcb3 100644 --- a/src/modules/requestBuilder.ts +++ b/src/modules/requestBuilder.ts @@ -6,6 +6,18 @@ import { } from '../types'; import { StackOneAPIError } from '../utils/errors'; +interface SerializationOptions { + maxDepth?: number; + strictValidation?: boolean; +} + +class ParameterSerializationError extends Error { + constructor(message: string) { + super(message); + this.name = 'ParameterSerializationError'; + } +} + /** * Builds and executes HTTP requests */ @@ -137,6 +149,132 @@ export class RequestBuilder { return fetchOptions; } + /** + * Validates parameter keys to prevent injection attacks + */ + private validateParameterKey(key: string): void { + if (!/^[a-zA-Z0-9_.-]+$/.test(key)) { + throw new ParameterSerializationError(`Invalid parameter key: ${key}`); + } + } + + /** + * Safely serializes values to strings with special type handling + */ + private serializeValue(value: unknown): string { + if (value instanceof Date) { + return value.toISOString(); + } + if (value instanceof RegExp) { + return value.toString(); + } + if (typeof value === 'function') { + throw new ParameterSerializationError('Functions cannot be serialized as parameters'); + } + if (value === null || value === undefined) { + return ''; + } + return String(value); + } + + /** + * Serialize an object into deep object query parameters with security protections + * Converts {filter: {updated_after: "2020-01-01", job_id: "123"}} + * to filter[updated_after]=2020-01-01&filter[job_id]=123 + */ + private serializeDeepObject( + obj: unknown, + prefix: string, + depth = 0, + visited = new WeakSet(), + options: SerializationOptions = {} + ): [string, string][] { + const maxDepth = options.maxDepth ?? 10; + const strictValidation = options.strictValidation ?? true; + const params: [string, string][] = []; + + // Recursion depth protection + if (depth > maxDepth) { + throw new ParameterSerializationError( + `Maximum nesting depth (${maxDepth}) exceeded for parameter serialization` + ); + } + + if (obj === null || obj === undefined) { + return params; + } + + if (typeof obj === 'object' && !Array.isArray(obj)) { + // Circular reference protection + if (visited.has(obj)) { + throw new ParameterSerializationError('Circular reference detected in parameter object'); + } + visited.add(obj); + + try { + for (const [key, value] of Object.entries(obj as Record)) { + if (strictValidation) { + this.validateParameterKey(key); + } + + const nestedKey = `${prefix}[${key}]`; + if (value !== null && value !== undefined) { + if (this.shouldUseDeepObjectSerialization(key, value)) { + // Recursively handle nested objects + params.push( + ...this.serializeDeepObject(value, nestedKey, depth + 1, visited, options) + ); + } else { + params.push([nestedKey, this.serializeValue(value)]); + } + } + } + } finally { + // Remove from visited set to allow the same object in different branches + visited.delete(obj); + } + } else { + // For non-object values, use the prefix as-is + params.push([prefix, this.serializeValue(obj)]); + } + + return params; + } + + /** + * Check if a parameter should use deep object serialization + * Applies to all plain object parameters (excludes special types and arrays) + */ + private shouldUseDeepObjectSerialization(_key: string, value: unknown): boolean { + return ( + typeof value === 'object' && + value !== null && + !Array.isArray(value) && + !(value instanceof Date) && + !(value instanceof RegExp) && + typeof value !== 'function' + ); + } + + /** + * Builds all query parameters with optimized batching + */ + private buildQueryParameters(queryParams: JsonDict): [string, string][] { + const allParams: [string, string][] = []; + + for (const [key, value] of Object.entries(queryParams)) { + if (this.shouldUseDeepObjectSerialization(key, value)) { + // Use deep object serialization for complex parameters + allParams.push(...this.serializeDeepObject(value, key)); + } else { + // Use safe string conversion for primitive values + allParams.push([key, this.serializeValue(value)]); + } + } + + return allParams; + } + /** * Execute the request */ @@ -144,10 +282,13 @@ export class RequestBuilder { // Prepare request parameters const [url, bodyParams, queryParams] = this.prepareRequestParams(params); - // Prepare URL with query parameters + // Prepare URL with query parameters using optimized batching const urlWithQuery = new URL(url); - for (const [key, value] of Object.entries(queryParams)) { - urlWithQuery.searchParams.append(key, String(value)); + const serializedParams = this.buildQueryParameters(queryParams); + + // Batch append all parameters + for (const [paramKey, paramValue] of serializedParams) { + urlWithQuery.searchParams.append(paramKey, paramValue); } // Build fetch options diff --git a/src/modules/tests/requestBuilder.spec.ts b/src/modules/tests/requestBuilder.spec.ts index e279315..40e73f7 100644 --- a/src/modules/tests/requestBuilder.spec.ts +++ b/src/modules/tests/requestBuilder.spec.ts @@ -10,11 +10,21 @@ describe('RequestBuilder', () => { url: 'https://api.example.com/test/{pathParam}', bodyType: 'json' as const, params: [ - { name: 'pathParam', location: ParameterLocation.PATH }, - { name: 'queryParam', location: ParameterLocation.QUERY }, - { name: 'headerParam', location: ParameterLocation.HEADER }, - { name: 'bodyParam', location: ParameterLocation.BODY }, - { name: 'defaultParam' /* default to body */ }, + { name: 'pathParam', location: ParameterLocation.PATH, type: 'string' as const }, + { name: 'queryParam', location: ParameterLocation.QUERY, type: 'string' as const }, + { name: 'headerParam', location: ParameterLocation.HEADER, type: 'string' as const }, + { name: 'bodyParam', location: ParameterLocation.BODY, type: 'string' as const }, + { name: 'defaultParam', location: ParameterLocation.BODY, type: 'string' as const }, + { name: 'filter', location: ParameterLocation.QUERY, type: 'object' as const }, + { name: 'proxy', location: ParameterLocation.QUERY, type: 'object' as const }, + { name: 'regularObject', location: ParameterLocation.QUERY, type: 'object' as const }, + { name: 'simple', location: ParameterLocation.QUERY, type: 'string' as const }, + { name: 'simpleString', location: ParameterLocation.QUERY, type: 'string' as const }, + { name: 'simpleNumber', location: ParameterLocation.QUERY, type: 'number' as const }, + { name: 'simpleBoolean', location: ParameterLocation.QUERY, type: 'boolean' as const }, + { name: 'complexObject', location: ParameterLocation.QUERY, type: 'object' as const }, + { name: 'deepFilter', location: ParameterLocation.QUERY, type: 'object' as const }, + { name: 'emptyFilter', location: ParameterLocation.QUERY, type: 'object' as const }, ], }; @@ -156,4 +166,334 @@ describe('RequestBuilder', () => { await expect(builder.execute(params)).rejects.toThrow(StackOneAPIError); expect(fetch).toHaveBeenCalledTimes(1); }); + + it('should serialize deep object query parameters correctly', async () => { + const params = { + pathParam: 'test-value', + filter: { + updated_after: '2020-01-01T00:00:00.000Z', + job_id: '123', + nested: { + level2: 'value', + level3: { + deep: 'nested-value', + }, + }, + }, + proxy: { + custom_field: 'custom-value', + sort: 'first_name', + }, + simple: 'simple-value', + }; + + const result = await builder.execute(params, { dryRun: true }); + const url = new URL(result.url as string); + + // Check that deep object parameters are serialized correctly + expect(url.searchParams.get('filter[updated_after]')).toBe('2020-01-01T00:00:00.000Z'); + expect(url.searchParams.get('filter[job_id]')).toBe('123'); + expect(url.searchParams.get('filter[nested][level2]')).toBe('value'); + expect(url.searchParams.get('filter[nested][level3][deep]')).toBe('nested-value'); + expect(url.searchParams.get('proxy[custom_field]')).toBe('custom-value'); + expect(url.searchParams.get('proxy[sort]')).toBe('first_name'); + + // Check that simple parameters are still handled normally + expect(url.searchParams.get('simple')).toBe('simple-value'); + + // Ensure the original filter/proxy objects are not added as strings + expect(url.searchParams.get('filter')).toBeNull(); + expect(url.searchParams.get('proxy')).toBeNull(); + }); + + it('should handle null and undefined values in deep objects', async () => { + const params = { + pathParam: 'test-value', + filter: { + valid_field: 'value', + null_field: null, + undefined_field: undefined, + empty_string: '', + zero: 0, + false_value: false, + }, + }; + + const result = await builder.execute(params, { dryRun: true }); + const url = new URL(result.url as string); + + // Check that valid values are included + expect(url.searchParams.get('filter[valid_field]')).toBe('value'); + expect(url.searchParams.get('filter[empty_string]')).toBe(''); + expect(url.searchParams.get('filter[zero]')).toBe('0'); + expect(url.searchParams.get('filter[false_value]')).toBe('false'); + + // Check that null and undefined values are excluded + expect(url.searchParams.get('filter[null_field]')).toBeNull(); + expect(url.searchParams.get('filter[undefined_field]')).toBeNull(); + }); + + it('should apply deep object serialization to all object parameters', async () => { + const params = { + pathParam: 'test-value', + regularObject: { + nested: 'value', + deepNested: { + level2: 'deep-value', + }, + }, + }; + + const result = await builder.execute(params, { dryRun: true }); + const url = new URL(result.url as string); + + // All objects should now be serialized using deep object notation + expect(url.searchParams.get('regularObject[nested]')).toBe('value'); + expect(url.searchParams.get('regularObject[deepNested][level2]')).toBe('deep-value'); + + // The original object parameter should not be present as a string + expect(url.searchParams.get('regularObject')).toBeNull(); + }); + + it('should handle mixed parameter types with deep object serialization', async () => { + const params = { + pathParam: 'test-value', + simpleString: 'simple-value', + simpleNumber: 42, + simpleBoolean: true, + complexObject: { + nested: 'nested-value', + array: [1, 2, 3], // Arrays should be converted to string + nestedObject: { + deep: 'deep-value', + }, + }, + }; + + const result = await builder.execute(params, { dryRun: true }); + const url = new URL(result.url as string); + + // Primitive values should be handled normally + expect(url.searchParams.get('simpleString')).toBe('simple-value'); + expect(url.searchParams.get('simpleNumber')).toBe('42'); + expect(url.searchParams.get('simpleBoolean')).toBe('true'); + + // Complex object should use deep object serialization + expect(url.searchParams.get('complexObject[nested]')).toBe('nested-value'); + expect(url.searchParams.get('complexObject[array]')).toBe('1,2,3'); // Arrays become strings + expect(url.searchParams.get('complexObject[nestedObject][deep]')).toBe('deep-value'); + + // Original complex object should not be present + expect(url.searchParams.get('complexObject')).toBeNull(); + }); + + describe('Security and Performance Improvements', () => { + it('should throw error when recursion depth limit is exceeded', async () => { + // Create a deeply nested object that exceeds the default depth limit of 10 + let deepObject: Record = { value: 'test' }; + for (let i = 0; i < 12; i++) { + deepObject = { nested: deepObject }; + } + + const params = { + pathParam: 'test-value', + deepFilter: deepObject, + }; + + await expect(builder.execute(params, { dryRun: true })).rejects.toThrow( + 'Maximum nesting depth (10) exceeded for parameter serialization' + ); + }); + + it('should throw error when circular reference is detected', async () => { + const circular: Record = { a: { b: 'test' } }; + circular.a.circular = circular; // Create circular reference + + const params = { + pathParam: 'test-value', + filter: circular, + }; + + await expect(builder.execute(params, { dryRun: true })).rejects.toThrow( + 'Circular reference detected in parameter object' + ); + }); + + it('should validate parameter keys and reject invalid characters', async () => { + const params = { + pathParam: 'test-value', + filter: { + valid_key: 'test', + 'invalid key with spaces': 'test', // Should trigger validation error + }, + }; + + await expect(builder.execute(params, { dryRun: true })).rejects.toThrow( + 'Invalid parameter key: invalid key with spaces' + ); + }); + + it('should handle special types correctly', async () => { + const testDate = new Date('2023-01-01T00:00:00.000Z'); + const testRegex = /test-pattern/gi; + + const params = { + pathParam: 'test-value', + filter: { + dateField: testDate, + regexField: testRegex, + nullField: null, + undefinedField: undefined, + emptyString: '', + }, + }; + + const result = await builder.execute(params, { dryRun: true }); + const url = new URL(result.url as string); + + // Date should be serialized to ISO string + expect(url.searchParams.get('filter[dateField]')).toBe('2023-01-01T00:00:00.000Z'); + + // RegExp should be serialized to string representation + expect(url.searchParams.get('filter[regexField]')).toBe('/test-pattern/gi'); + + // Null and undefined should result in empty string (but won't be added since they're filtered out) + expect(url.searchParams.get('filter[nullField]')).toBeNull(); + expect(url.searchParams.get('filter[undefinedField]')).toBeNull(); + + // Empty string should be preserved + expect(url.searchParams.get('filter[emptyString]')).toBe(''); + }); + + it('should throw error when trying to serialize functions', async () => { + const params = { + pathParam: 'test-value', + filter: { + validField: 'test', + functionField: () => 'test', // Functions should not be serializable + }, + }; + + await expect(builder.execute(params, { dryRun: true })).rejects.toThrow( + 'Functions cannot be serialized as parameters' + ); + }); + + it('should handle empty objects correctly', async () => { + const params = { + pathParam: 'test-value', + emptyFilter: {}, + filter: { + validField: 'test', + emptyNested: {}, + }, + }; + + const result = await builder.execute(params, { dryRun: true }); + const url = new URL(result.url as string); + + // Empty objects should not create any parameters + expect(url.searchParams.get('emptyFilter')).toBeNull(); + expect(url.searchParams.get('filter[emptyNested]')).toBeNull(); + + // Valid fields should still work + expect(url.searchParams.get('filter[validField]')).toBe('test'); + }); + + it('should handle arrays correctly within objects', async () => { + const params = { + pathParam: 'test-value', + filter: { + arrayField: [1, 2, 3], + stringArray: ['a', 'b', 'c'], + mixed: ['string', 42, true], + }, + }; + + const result = await builder.execute(params, { dryRun: true }); + const url = new URL(result.url as string); + + // Arrays should be converted to comma-separated strings + expect(url.searchParams.get('filter[arrayField]')).toBe('1,2,3'); + expect(url.searchParams.get('filter[stringArray]')).toBe('a,b,c'); + expect(url.searchParams.get('filter[mixed]')).toBe('string,42,true'); + }); + + it('should handle nested objects with special types', async () => { + const params = { + pathParam: 'test-value', + filter: { + nested: { + dateField: new Date('2023-01-01T00:00:00.000Z'), + level2: { + regexField: /test/, + stringField: 'normal-string', + }, + }, + }, + }; + + const result = await builder.execute(params, { dryRun: true }); + const url = new URL(result.url as string); + + expect(url.searchParams.get('filter[nested][dateField]')).toBe('2023-01-01T00:00:00.000Z'); + expect(url.searchParams.get('filter[nested][level2][regexField]')).toBe('/test/'); + expect(url.searchParams.get('filter[nested][level2][stringField]')).toBe('normal-string'); + }); + + it('should maintain performance with large objects', async () => { + // Create a moderately large object to test performance optimizations + const largeFilter: Record = {}; + for (let i = 0; i < 100; i++) { + largeFilter[`field_${i}`] = `value_${i}`; + if (i % 10 === 0) { + largeFilter[`nested_${i}`] = { + subField1: `sub_value_${i}_1`, + subField2: `sub_value_${i}_2`, + }; + } + } + + const params = { + pathParam: 'test-value', + filter: largeFilter, + }; + + const startTime = performance.now(); + const result = await builder.execute(params, { dryRun: true }); + const endTime = performance.now(); + + // Should complete in reasonable time (less than 100ms for this size) + expect(endTime - startTime).toBeLessThan(100); + + const url = new URL(result.url as string); + + // Verify some parameters are correctly serialized + expect(url.searchParams.get('filter[field_0]')).toBe('value_0'); + expect(url.searchParams.get('filter[field_99]')).toBe('value_99'); + expect(url.searchParams.get('filter[nested_0][subField1]')).toBe('sub_value_0_1'); + }); + + it('should allow the same object in different branches after circular check', async () => { + const sharedObject = { shared: 'value' }; + const params = { + pathParam: 'test-value', + filter: { + branch1: { + shared: sharedObject, + }, + branch2: { + shared: sharedObject, // Same object reference in different branch - should be allowed + }, + }, + }; + + const result = await builder.execute(params, { dryRun: true }); + const url = new URL(result.url as string); + + // Both branches should be serialized correctly + expect(url.searchParams.get('filter[branch1][shared][shared]')).toBe('value'); + expect(url.searchParams.get('filter[branch2][shared][shared]')).toBe('value'); + }); + }); }); diff --git a/src/openapi/generated/ats.ts b/src/openapi/generated/ats.ts index 5a08bda..4b93d9f 100644 --- a/src/openapi/generated/ats.ts +++ b/src/openapi/generated/ats.ts @@ -4050,17 +4050,6 @@ export const atsSpec = { type: 'string', }, }, - { - name: 'export_format', - required: false, - in: 'query', - description: 'The export format of the file', - schema: { - nullable: true, - example: 'text/plain', - type: 'string', - }, - }, ], responses: { '200': { @@ -12628,7 +12617,7 @@ export const atsSpec = { schema: { nullable: true, example: - 'id,remote_id,title,locations,internal,status,job_id,remote_job_id,content,compensation,employment_type,employment_contract_type,external_url,external_apply_url,questionnaires,start_date,updated_at,created_at', + 'id,remote_id,title,locations,internal,status,job_id,remote_job_id,content,compensation,employment_type,employment_contract_type,external_url,external_apply_url,questionnaires,updated_at,created_at', type: 'string', }, }, @@ -12952,7 +12941,7 @@ export const atsSpec = { schema: { nullable: true, example: - 'id,remote_id,title,locations,internal,status,job_id,remote_job_id,content,compensation,employment_type,employment_contract_type,external_url,external_apply_url,questionnaires,start_date,updated_at,created_at', + 'id,remote_id,title,locations,internal,status,job_id,remote_job_id,content,compensation,employment_type,employment_contract_type,external_url,external_apply_url,questionnaires,updated_at,created_at', type: 'string', }, }, @@ -17365,9 +17354,6 @@ export const atsSpec = { 'number', 'date', 'video', - 'reference_check', - 'url', - 'unmapped_value', null, ], description: 'The type of the answer.', @@ -18076,7 +18062,6 @@ export const atsSpec = { 'company_overview', 'description', 'other', - 'unmapped_value', null, ], description: 'The type of the description.', @@ -18553,7 +18538,7 @@ export const atsSpec = { confidential: { type: 'string', description: 'Confidential status of the job', - enum: ['true', 'false', 'unmapped_value', null], + enum: ['true', 'false', null], 'x-speakeasy-unknown-values': 'allow', nullable: true, }, @@ -19409,7 +19394,7 @@ export const atsSpec = { confidential: { type: 'string', description: 'Confidential status of the job', - enum: ['true', 'false', 'unmapped_value', null], + enum: ['true', 'false', null], 'x-speakeasy-unknown-values': 'allow', nullable: true, }, @@ -20128,7 +20113,7 @@ export const atsSpec = { properties: { value: { type: 'string', - enum: ['equals_to', 'contains', 'unmapped_value', null], + enum: ['equals_to', 'contains', null], description: "The type of the question's condition", example: 'equals_to', 'x-speakeasy-unknown-values': 'allow', @@ -20165,7 +20150,7 @@ export const atsSpec = { value: { type: 'string', description: 'Whether the file is confidential or not', - enum: ['true', 'false', 'unmapped_value', null], + enum: ['true', 'false', null], example: 'true', 'x-speakeasy-unknown-values': 'allow', nullable: true, @@ -20694,7 +20679,6 @@ export const atsSpec = { 'multi_select', 'url', 'other', - 'unmapped_value', null, ], 'x-speakeasy-unknown-values': 'allow', @@ -22250,7 +22234,7 @@ export const atsSpec = { items: {}, }, ], - example: 'application/pdf', + example: 'abc', nullable: true, }, }, @@ -22896,7 +22880,7 @@ export const atsSpec = { confidential: { type: 'string', description: 'Confidential status of the job', - enum: ['true', 'false', 'unmapped_value', null], + enum: ['true', 'false', null], 'x-speakeasy-unknown-values': 'allow', nullable: true, }, @@ -23014,7 +22998,7 @@ export const atsSpec = { }, internal: { type: 'string', - enum: ['true', 'false', 'unmapped_value', null], + enum: ['true', 'false', null], example: 'true', 'x-speakeasy-unknown-values': 'allow', nullable: true, @@ -23297,13 +23281,6 @@ export const atsSpec = { $ref: '#/components/schemas/JobPostingQuestionnaire', }, }, - start_date: { - type: 'string', - description: 'The posting start date', - example: '2021-01-01T00:00:00.000Z', - format: 'date-time', - nullable: true, - }, created_at: { type: 'string', description: 'Date of creation', @@ -23984,7 +23961,7 @@ export const atsSpec = { properties: { value: { type: 'string', - enum: ['private', 'public', 'unmapped_value', null], + enum: ['private', 'public', null], description: 'The visibility of the notes.', example: 'public', 'x-speakeasy-unknown-values': 'allow', @@ -24685,16 +24662,7 @@ export const atsSpec = { type: { type: 'string', description: 'Type of phone number', - enum: [ - 'personal', - 'work', - 'mobile', - 'home', - 'unknown', - 'other', - 'unmapped_value', - null, - ], + enum: ['personal', 'work', 'mobile', 'home', 'unknown', 'other', null], 'x-speakeasy-unknown-values': 'allow', nullable: true, }, @@ -24911,9 +24879,6 @@ export const atsSpec = { 'number', 'date', 'video', - 'reference_check', - 'url', - 'unmapped_value', null, ], description: 'The type of the questions.', @@ -24963,6 +24928,10 @@ export const atsSpec = { { type: 'object', }, + { + type: 'string', + format: 'binary', + }, { type: 'array', items: { @@ -24972,24 +24941,17 @@ export const atsSpec = { maximum: 255, }, }, + { + type: 'string', + format: 'byte', + }, ], additionalProperties: true, nullable: true, }, response: { - oneOf: [ - { - type: 'object', - additionalProperties: true, - }, - { - type: 'array', - items: {}, - }, - { - type: 'string', - }, - ], + type: 'object', + additionalProperties: true, nullable: true, }, }, @@ -25202,7 +25164,7 @@ export const atsSpec = { properties: { value: { type: 'string', - enum: ['cancelled', 'completed', 'expired', 'failed', 'passed', 'unmapped_value', null], + enum: ['cancelled', 'completed', 'expired', 'failed', 'passed', null], description: 'The result of the test.', example: 'passed', 'x-speakeasy-unknown-values': 'allow', @@ -25529,14 +25491,14 @@ export const atsSpec = { created_at: { type: 'string', description: 'The creation date of the scorecard', - example: '2021-01-01T00:00:00.000Z', + example: '2021-01-01T00:00.000Z', format: 'date-time', nullable: true, }, updated_at: { type: 'string', description: 'The update date of the scorecard', - example: '2021-01-01T00:00:00.000Z', + example: '2021-01-01T00:00.000Z', format: 'date-time', nullable: true, }, diff --git a/src/openapi/generated/crm.ts b/src/openapi/generated/crm.ts index e1af90f..eb2673d 100644 --- a/src/openapi/generated/crm.ts +++ b/src/openapi/generated/crm.ts @@ -3182,7 +3182,6 @@ export const crmSpec = { 'YE', 'ZM', 'ZW', - 'unmapped_value', null, ], description: 'The ISO 3166-1 alpha-2 code of the country.', @@ -3471,7 +3470,6 @@ export const crmSpec = { 'multi_select', 'url', 'other', - 'unmapped_value', null, ], 'x-speakeasy-unknown-values': 'allow', @@ -3855,6 +3853,10 @@ export const crmSpec = { { type: 'object', }, + { + type: 'string', + format: 'binary', + }, { type: 'array', items: { @@ -3864,24 +3866,17 @@ export const crmSpec = { maximum: 255, }, }, + { + type: 'string', + format: 'byte', + }, ], additionalProperties: true, nullable: true, }, response: { - oneOf: [ - { - type: 'object', - additionalProperties: true, - }, - { - type: 'array', - items: {}, - }, - { - type: 'string', - }, - ], + type: 'object', + additionalProperties: true, nullable: true, }, }, diff --git a/src/openapi/generated/documents.ts b/src/openapi/generated/documents.ts index fb7d7ef..659d7fe 100644 --- a/src/openapi/generated/documents.ts +++ b/src/openapi/generated/documents.ts @@ -16,15 +16,6 @@ export const documentsSpec = { type: 'string', }, }, - { - name: 'x-stackone-api-session-token', - in: 'header', - description: 'The session token', - required: false, - schema: { - type: 'string', - }, - }, { name: 'id', required: true, @@ -44,23 +35,12 @@ export const documentsSpec = { type: 'string', }, }, - { - name: 'export_format', - required: false, - in: 'query', - description: 'The export format of the file', - schema: { - nullable: true, - example: 'text/plain', - type: 'string', - }, - }, ], responses: { '200': { description: 'The file with the given identifiers was retrieved.', content: { - '*/*': { + 'application/octet-stream': { schema: { type: 'string', format: 'binary', @@ -225,15 +205,6 @@ export const documentsSpec = { type: 'string', }, }, - { - name: 'x-stackone-api-session-token', - in: 'header', - description: 'The session token', - required: false, - schema: { - type: 'string', - }, - }, ], requestBody: { required: true, @@ -413,15 +384,6 @@ export const documentsSpec = { type: 'string', }, }, - { - name: 'x-stackone-api-session-token', - in: 'header', - description: 'The session token', - required: false, - schema: { - type: 'string', - }, - }, { name: 'raw', required: false, @@ -454,7 +416,7 @@ export const documentsSpec = { schema: { nullable: true, example: - 'id,remote_id,name,description,url,size,file_format,path,owner_id,remote_owner_id,folder_id,remote_folder_id,drive_id,remote_drive_id,export_formats,created_at,updated_at,has_content,has_children', + 'id,remote_id,name,description,url,size,file_format,path,owner_id,remote_owner_id,folder_id,remote_folder_id,drive_id,remote_drive_id,export_formats,created_at,updated_at', type: 'string', }, }, @@ -462,7 +424,7 @@ export const documentsSpec = { name: 'filter', required: false, in: 'query', - description: 'Documents Files Filter', + description: 'Filter parameters that allow greater customisation of the list response', schema: { properties: { updated_after: { @@ -704,15 +666,6 @@ export const documentsSpec = { type: 'string', }, }, - { - name: 'x-stackone-api-session-token', - in: 'header', - description: 'The session token', - required: false, - schema: { - type: 'string', - }, - }, { name: 'id', required: true, @@ -755,7 +708,7 @@ export const documentsSpec = { schema: { nullable: true, example: - 'id,remote_id,name,description,url,size,file_format,path,owner_id,remote_owner_id,folder_id,remote_folder_id,drive_id,remote_drive_id,export_formats,created_at,updated_at,has_content,has_children', + 'id,remote_id,name,description,url,size,file_format,path,owner_id,remote_owner_id,folder_id,remote_folder_id,drive_id,remote_drive_id,export_formats,created_at,updated_at', type: 'string', }, }, @@ -928,15 +881,6 @@ export const documentsSpec = { type: 'string', }, }, - { - name: 'x-stackone-api-session-token', - in: 'header', - description: 'The session token', - required: false, - schema: { - type: 'string', - }, - }, ], requestBody: { required: true, @@ -954,7 +898,7 @@ export const documentsSpec = { content: { 'application/json': { schema: { - $ref: '#/components/schemas/FilesSearchResponse', + $ref: '#/components/schemas/FilesPaginated', }, }, }, @@ -1097,6 +1041,19 @@ export const documentsSpec = { tags: ['Files'], 'x-speakeasy-group': 'documents', 'x-speakeasy-name-override': 'search_files', + 'x-speakeasy-pagination': { + type: 'cursor', + inputs: [ + { + name: 'next', + in: 'parameters', + type: 'cursor', + }, + ], + outputs: { + nextCursor: '$.next', + }, + }, 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', @@ -1148,7 +1105,7 @@ export const documentsSpec = { schema: { nullable: true, example: - 'id,remote_id,name,description,url,size,path,owner_id,remote_owner_id,parent_folder_id,remote_parent_folder_id,drive_id,remote_drive_id,created_at,updated_at,has_content,has_children,is_root', + 'id,remote_id,name,description,url,size,path,owner_id,remote_owner_id,parent_folder_id,remote_parent_folder_id,drive_id,remote_drive_id,created_at,updated_at', type: 'string', }, }, @@ -1156,7 +1113,7 @@ export const documentsSpec = { name: 'filter', required: false, in: 'query', - description: 'Documents Folders Filter', + description: 'Filter parameters that allow greater customisation of the list response', schema: { properties: { updated_after: { @@ -1440,7 +1397,7 @@ export const documentsSpec = { schema: { nullable: true, example: - 'id,remote_id,name,description,url,size,path,owner_id,remote_owner_id,parent_folder_id,remote_parent_folder_id,drive_id,remote_drive_id,created_at,updated_at,has_content,has_children,is_root', + 'id,remote_id,name,description,url,size,path,owner_id,remote_owner_id,parent_folder_id,remote_parent_folder_id,drive_id,remote_drive_id,created_at,updated_at', type: 'string', }, }, @@ -2196,7 +2153,7 @@ export const documentsSpec = { value: { type: 'string', description: 'Whether the file is confidential or not', - enum: ['true', 'false', 'unmapped_value', null], + enum: ['true', 'false', null], example: 'true', 'x-speakeasy-unknown-values': 'allow', nullable: true, @@ -3624,7 +3581,7 @@ export const documentsSpec = { items: {}, }, ], - example: 'application/pdf', + example: 'abc', nullable: true, }, }, @@ -3760,18 +3717,6 @@ export const documentsSpec = { format: 'date-time', nullable: true, }, - has_content: { - type: 'boolean', - description: 'Whether the file has content', - example: true, - nullable: true, - }, - has_children: { - type: 'boolean', - description: 'Whether the file has children', - example: true, - nullable: true, - }, }, }, FilesPaginated: { @@ -3797,25 +3742,6 @@ export const documentsSpec = { }, required: ['data'], }, - FilesSearchResponse: { - type: 'object', - properties: { - data: { - type: 'array', - items: { - $ref: '#/components/schemas/Files', - }, - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - required: ['data'], - }, FolderResult: { type: 'object', properties: { @@ -3929,24 +3855,6 @@ export const documentsSpec = { format: 'date-time', nullable: true, }, - has_content: { - type: 'boolean', - description: 'Whether the folder has content', - example: true, - nullable: true, - }, - has_children: { - type: 'boolean', - description: 'Whether the folder has children', - example: true, - nullable: true, - }, - is_root: { - type: 'boolean', - description: 'Whether the folder is at the root level of the drive', - example: true, - nullable: true, - }, }, }, FoldersPaginated: { @@ -4198,6 +4106,10 @@ export const documentsSpec = { { type: 'object', }, + { + type: 'string', + format: 'binary', + }, { type: 'array', items: { @@ -4207,24 +4119,17 @@ export const documentsSpec = { maximum: 255, }, }, + { + type: 'string', + format: 'byte', + }, ], additionalProperties: true, nullable: true, }, response: { - oneOf: [ - { - type: 'object', - additionalProperties: true, - }, - { - type: 'array', - items: {}, - }, - { - type: 'string', - }, - ], + type: 'object', + additionalProperties: true, nullable: true, }, }, diff --git a/src/openapi/generated/hris.ts b/src/openapi/generated/hris.ts index 732cda7..00db49c 100644 --- a/src/openapi/generated/hris.ts +++ b/src/openapi/generated/hris.ts @@ -768,19 +768,6 @@ export const hrisSpec = { 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', @@ -1114,7 +1101,7 @@ export const hrisSpec = { 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,documents,created_at,updated_at,benefits,employee_number,national_identity_number,national_identity_numbers,skills', + '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,benefits,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,documents,created_at,updated_at,employee_number,national_identity_number,national_identity_numbers,skills', type: 'string', }, }, @@ -1621,7 +1608,7 @@ export const hrisSpec = { 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,documents,created_at,updated_at,benefits,employee_number,national_identity_number,national_identity_numbers,skills', + '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,benefits,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,documents,created_at,updated_at,employee_number,national_identity_number,national_identity_numbers,skills', type: 'string', }, }, @@ -2230,7 +2217,7 @@ export const hrisSpec = { 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,duration,created_at,updated_at,policy', + '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,duration,time_off_policy_id,remote_time_off_policy_id,reason,created_at,updated_at,policy', type: 'string', }, }, @@ -2737,7 +2724,7 @@ export const hrisSpec = { 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,duration,created_at,updated_at,policy', + '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,duration,time_off_policy_id,remote_time_off_policy_id,reason,created_at,updated_at,policy', type: 'string', }, }, @@ -3101,193 +3088,6 @@ export const hrisSpec = { strategy: 'backoff', }, }, - delete: { - operationId: 'hris_cancel_employee_time_off_request', - 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: 'subResourceId', - required: true, - in: 'path', - schema: { - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'Record cancelled successfully.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/DeleteResult', - }, - }, - }, - }, - '204': { - description: - 'The time off request was cancelled successfully but no content was returned.', - }, - '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: 'Cancel Employee Time Off Request', - tags: ['Employees', 'Time Off'], - 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'cancel_employee_time_off_request', - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, }, '/unified/hris/employees/{id}/documents/upload/batch': { post: { @@ -3704,17 +3504,6 @@ export const hrisSpec = { type: 'string', }, }, - { - name: 'export_format', - required: false, - in: 'query', - description: 'The export format of the file', - schema: { - nullable: true, - example: 'text/plain', - type: 'string', - }, - }, ], responses: { '200': { @@ -6377,7 +6166,7 @@ export const hrisSpec = { schema: { nullable: true, example: - 'id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,end_date,employment_type,employment_contract_type,change_reason,grade,work_time,payroll_code,fte,created_at,updated_at,start_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager', + 'id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,employment_type,employment_contract_type,time_worked,created_at,updated_at,start_date,end_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager', type: 'string', }, }, @@ -6682,7 +6471,7 @@ export const hrisSpec = { schema: { nullable: true, example: - 'id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,end_date,employment_type,employment_contract_type,change_reason,grade,work_time,payroll_code,fte,created_at,updated_at,start_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager', + 'id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,employment_type,employment_contract_type,time_worked,created_at,updated_at,start_date,end_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager', type: 'string', }, }, @@ -6908,7 +6697,7 @@ export const hrisSpec = { schema: { nullable: true, example: - 'id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,end_date,employment_type,employment_contract_type,change_reason,grade,work_time,payroll_code,fte,created_at,updated_at,start_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager', + 'id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,employment_type,employment_contract_type,time_worked,created_at,updated_at,start_date,end_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager', type: 'string', }, }, @@ -7194,7 +6983,7 @@ export const hrisSpec = { content: { 'application/json': { schema: { - $ref: '#/components/schemas/CreateResult', + $ref: '#/components/schemas/EmploymentResult', }, }, }, @@ -7406,7 +7195,7 @@ export const hrisSpec = { schema: { nullable: true, example: - 'id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,end_date,employment_type,employment_contract_type,change_reason,grade,work_time,payroll_code,fte,created_at,updated_at,start_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager', + 'id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,employment_type,employment_contract_type,time_worked,created_at,updated_at,start_date,end_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager', type: 'string', }, }, @@ -7610,7 +7399,7 @@ export const hrisSpec = { content: { 'application/json': { schema: { - $ref: '#/components/schemas/HrisUpdateEmploymentRequestDto', + $ref: '#/components/schemas/HrisCreateEmploymentRequestDto', }, }, }, @@ -7621,7 +7410,7 @@ export const hrisSpec = { content: { 'application/json': { schema: { - $ref: '#/components/schemas/UpdateResult', + $ref: '#/components/schemas/EmploymentResult', }, }, }, @@ -8318,7 +8107,7 @@ export const hrisSpec = { 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,duration,created_at,updated_at,policy', + '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,duration,time_off_policy_id,remote_time_off_policy_id,reason,created_at,updated_at,policy', type: 'string', }, }, @@ -8575,10 +8364,9 @@ export const hrisSpec = { strategy: 'backoff', }, }, - }, - '/unified/hris/time_off/{id}': { - get: { - operationId: 'hris_get_time_off_request', + post: { + deprecated: true, + operationId: 'hris_create_time_off_request', parameters: [ { name: 'x-account-id', @@ -8589,73 +8377,26 @@ export const hrisSpec = { type: 'string', }, }, - { - name: 'id', - required: true, - in: 'path', - schema: { - type: 'string', + ], + requestBody: { + required: true, + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/HrisCreateTimeOffRequestDto', + }, }, }, - { - 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,duration,created_at,updated_at,policy', - 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 request with the given identifier was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TimeOffResult', - }, - }, + }, + responses: { + '201': { + description: 'The time off request was created successfully.', + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/CreateResult', + }, + }, }, }, '400': { @@ -8792,20 +8533,19 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Get time off request', + summary: 'Creates a time off request', tags: ['Time Off'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'get_time_off_request', + 'x-speakeasy-name-override': 'create_time_off_request', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/time_off_types': { + '/unified/hris/time_off/{id}': { get: { - deprecated: true, - operationId: 'hris_list_time_off_types', + operationId: 'hris_get_time_off_request', parameters: [ { name: 'x-account-id', @@ -8816,6 +8556,14 @@ export const hrisSpec = { type: 'string', }, }, + { + name: 'id', + required: true, + in: 'path', + schema: { + type: 'string', + }, + }, { name: 'raw', required: false, @@ -8849,84 +8597,30 @@ export const hrisSpec = { '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,active', - 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', - 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, + 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,duration,time_off_policy_id,remote_time_off_policy_id,reason,created_at,updated_at,policy', type: 'string', }, }, { - name: 'updated_after', + name: 'expand', required: false, in: 'query', - description: - 'Use a string with a date to only select results updated after that given date', - deprecated: true, + description: 'The comma separated list of fields that will be expanded in the response', schema: { nullable: true, - example: '2020-01-01T00:00:00.000Z', + example: 'policy', type: 'string', }, }, ], responses: { '200': { - description: 'The list of time off types was retrieved.', + description: 'The time off request with the given identifier was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/ReferencePaginated', + $ref: '#/components/schemas/TimeOffResult', }, }, }, @@ -9065,33 +8759,18 @@ export const hrisSpec = { basic: [], }, ], - summary: 'List time off types', + summary: 'Get time off request', tags: ['Time Off'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'list_time_off_types', - 'x-speakeasy-pagination': { - type: 'cursor', - inputs: [ - { - name: 'next', - in: 'parameters', - type: 'cursor', - }, - ], - outputs: { - nextCursor: '$.next', - }, - }, + 'x-speakeasy-name-override': 'get_time_off_request', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, - }, - '/unified/hris/time_off_types/{id}': { - get: { + patch: { deprecated: true, - operationId: 'hris_get_time_off_type', + operationId: 'hris_update_time_off_request', parameters: [ { name: 'x-account-id', @@ -9110,51 +8789,24 @@ export const hrisSpec = { 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,active', - type: 'string', + ], + requestBody: { + required: true, + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/HrisCreateTimeOffRequestDto', + }, }, }, - ], + }, responses: { '200': { - description: 'The time off type with the given identifier was retrieved.', + description: 'Record updated successfully', content: { 'application/json': { schema: { - $ref: '#/components/schemas/ReferenceResult', + $ref: '#/components/schemas/CreateResult', }, }, }, @@ -9293,19 +8945,20 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Get time off type', + summary: 'Update time off request', tags: ['Time Off'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'get_time_off_type', + 'x-speakeasy-name-override': 'update_time_off_request', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/time_entries': { + '/unified/hris/time_off_types': { get: { - operationId: 'hris_list_time_entries', + deprecated: true, + operationId: 'hris_list_time_off_types', parameters: [ { name: 'x-account-id', @@ -9349,8 +9002,7 @@ export const hrisSpec = { '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,start_time,end_time,hours_worked,break_duration,labor_type,location,status,created_at,updated_at', + example: 'id,remote_id,name,active', type: 'string', }, }, @@ -9358,7 +9010,7 @@ export const hrisSpec = { name: 'filter', required: false, in: 'query', - description: 'HRIS Time Entries filters', + description: 'Filter parameters that allow greater customisation of the list response', explode: true, style: 'deepObject', schema: { @@ -9371,26 +9023,6 @@ export const hrisSpec = { nullable: true, additionalProperties: false, }, - employee_id: { - description: 'Filter to select time entries by employee_id', - type: 'string', - nullable: true, - additionalProperties: false, - }, - start_time: { - description: 'Filter to select time entries after a given time', - example: '2020-01-01T00:00:00.000Z', - type: 'string', - nullable: true, - additionalProperties: false, - }, - end_time: { - description: 'Filter to select time entries before a given time', - example: '2020-01-01T00:00:00.000Z', - type: 'string', - nullable: true, - additionalProperties: false, - }, }, nullable: true, type: 'object', @@ -9443,11 +9075,11 @@ export const hrisSpec = { ], responses: { '200': { - description: 'The list of time entries was retrieved.', + description: 'The list of time off types was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/TimeEntriesPaginated', + $ref: '#/components/schemas/ReferencePaginated', }, }, }, @@ -9586,10 +9218,10 @@ export const hrisSpec = { basic: [], }, ], - summary: 'List Time Entries', - tags: ['Time Entries'], + summary: 'List time off types', + tags: ['Time Off'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'list_time_entries', + 'x-speakeasy-name-override': 'list_time_off_types', 'x-speakeasy-pagination': { type: 'cursor', inputs: [ @@ -9609,9 +9241,10 @@ export const hrisSpec = { }, }, }, - '/unified/hris/time_entries/{id}': { + '/unified/hris/time_off_types/{id}': { get: { - operationId: 'hris_get_time_entries', + deprecated: true, + operationId: 'hris_get_time_off_type', parameters: [ { name: 'x-account-id', @@ -9663,19 +9296,18 @@ export const hrisSpec = { '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,start_time,end_time,hours_worked,break_duration,labor_type,location,status,created_at,updated_at', + example: 'id,remote_id,name,active', type: 'string', }, }, ], responses: { '200': { - description: 'The time entry with the given identifier was retrieved.', + description: 'The time off type with the given identifier was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/TimeEntriesResult', + $ref: '#/components/schemas/ReferenceResult', }, }, }, @@ -9814,19 +9446,19 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Get Time Entry', - tags: ['Time Entries'], + summary: 'Get time off type', + tags: ['Time Off'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'get_time_entries', + 'x-speakeasy-name-override': 'get_time_off_type', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/benefits': { + '/unified/hris/time_entries': { get: { - operationId: 'hris_list_benefits', + operationId: 'hris_list_time_entries', parameters: [ { name: 'x-account-id', @@ -9870,7 +9502,8 @@ export const hrisSpec = { '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,benefit_type,provider,description,created_at,updated_at', + example: + 'id,remote_id,employee_id,remote_employee_id,start_time,end_time,hours_worked,break_duration,labor_type,location,status,created_at,updated_at', type: 'string', }, }, @@ -9878,7 +9511,7 @@ export const hrisSpec = { name: 'filter', required: false, in: 'query', - description: 'Filter parameters that allow greater customisation of the list response', + description: 'HRIS Time Entries filters', explode: true, style: 'deepObject', schema: { @@ -9891,6 +9524,26 @@ export const hrisSpec = { nullable: true, additionalProperties: false, }, + employee_id: { + description: 'Filter to select time entries by employee_id', + type: 'string', + nullable: true, + additionalProperties: false, + }, + start_time: { + description: 'Filter to select time entries after a given time', + example: '2020-01-01T00:00:00.000Z', + type: 'string', + nullable: true, + additionalProperties: false, + }, + end_time: { + description: 'Filter to select time entries before a given time', + example: '2020-01-01T00:00:00.000Z', + type: 'string', + nullable: true, + additionalProperties: false, + }, }, nullable: true, type: 'object', @@ -9943,11 +9596,11 @@ export const hrisSpec = { ], responses: { '200': { - description: 'The list of Benefits was retrieved.', + description: 'The list of time entries was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/HRISBenefitsPaginated', + $ref: '#/components/schemas/TimeEntriesPaginated', }, }, }, @@ -10086,10 +9739,10 @@ export const hrisSpec = { basic: [], }, ], - summary: 'List benefits', - tags: ['Benefits'], + summary: 'List Time Entries', + tags: ['Time Entries'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'list_benefits', + 'x-speakeasy-name-override': 'list_time_entries', 'x-speakeasy-pagination': { type: 'cursor', inputs: [ @@ -10109,9 +9762,9 @@ export const hrisSpec = { }, }, }, - '/unified/hris/benefits/{id}': { + '/unified/hris/time_entries/{id}': { get: { - operationId: 'hris_get_benefit', + operationId: 'hris_get_time_entries', parameters: [ { name: 'x-account-id', @@ -10163,18 +9816,19 @@ export const hrisSpec = { '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,benefit_type,provider,description,created_at,updated_at', + example: + 'id,remote_id,employee_id,remote_employee_id,start_time,end_time,hours_worked,break_duration,labor_type,location,status,created_at,updated_at', type: 'string', }, }, ], responses: { '200': { - description: 'The Benefit with the given identifier was retrieved.', + description: 'The time entry with the given identifier was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/HRISBenefitResult', + $ref: '#/components/schemas/TimeEntriesResult', }, }, }, @@ -10313,19 +9967,19 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Get Benefit', - tags: ['Benefits'], + summary: 'Get Time Entry', + tags: ['Time Entries'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'get_benefit', + 'x-speakeasy-name-override': 'get_time_entries', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/groups': { + '/unified/hris/benefits': { get: { - operationId: 'hris_list_groups', + operationId: 'hris_list_benefits', parameters: [ { name: 'x-account-id', @@ -10369,8 +10023,7 @@ export const hrisSpec = { '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,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id', + example: 'id,remote_id,name,benefit_type,provider,description,created_at,updated_at', type: 'string', }, }, @@ -10443,11 +10096,11 @@ export const hrisSpec = { ], responses: { '200': { - description: 'The list of groups was retrieved.', + description: 'The list of Benefits was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/HRISGroupsPaginated', + $ref: '#/components/schemas/HRISBenefitsPaginated', }, }, }, @@ -10586,10 +10239,10 @@ export const hrisSpec = { basic: [], }, ], - summary: 'List Groups', - tags: ['Groups'], + summary: 'List benefits', + tags: ['Benefits'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'list_groups', + 'x-speakeasy-name-override': 'list_benefits', 'x-speakeasy-pagination': { type: 'cursor', inputs: [ @@ -10609,9 +10262,9 @@ export const hrisSpec = { }, }, }, - '/unified/hris/groups/departments': { + '/unified/hris/benefits/{id}': { get: { - operationId: 'hris_list_department_groups', + operationId: 'hris_get_benefit', parameters: [ { name: 'x-account-id', @@ -10622,6 +10275,14 @@ export const hrisSpec = { type: 'string', }, }, + { + name: 'id', + required: true, + in: 'path', + schema: { + type: 'string', + }, + }, { name: 'raw', required: false, @@ -10655,84 +10316,18 @@ export const hrisSpec = { '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', - 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', - 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: { - nullable: true, - example: '2020-01-01T00:00:00.000Z', + example: 'id,remote_id,name,benefit_type,provider,description,created_at,updated_at', type: 'string', }, }, ], responses: { '200': { - description: 'The list of department groups was retrieved.', + description: 'The Benefit with the given identifier was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/HRISDepartmentsPaginated', + $ref: '#/components/schemas/HRISBenefitResult', }, }, }, @@ -10871,32 +10466,19 @@ export const hrisSpec = { basic: [], }, ], - summary: 'List Department Groups', - tags: ['Groups'], + summary: 'Get Benefit', + tags: ['Benefits'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'list_department_groups', - 'x-speakeasy-pagination': { - type: 'cursor', - inputs: [ - { - name: 'next', - in: 'parameters', - type: 'cursor', - }, - ], - outputs: { - nextCursor: '$.next', - }, - }, + 'x-speakeasy-name-override': 'get_benefit', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/groups/cost_centers': { + '/unified/hris/groups': { get: { - operationId: 'hris_list_cost_center_groups', + operationId: 'hris_list_groups', parameters: [ { name: 'x-account-id', @@ -10941,7 +10523,7 @@ export const hrisSpec = { schema: { nullable: true, example: - 'id,remote_id,name,type,distribution_percentage,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id', + 'id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids', type: 'string', }, }, @@ -11014,11 +10596,11 @@ export const hrisSpec = { ], responses: { '200': { - description: 'The list of cost center groups was retrieved.', + description: 'The list of groups was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/HRISCostCenterPaginated', + $ref: '#/components/schemas/HRISGroupsPaginated', }, }, }, @@ -11157,10 +10739,10 @@ export const hrisSpec = { basic: [], }, ], - summary: 'List Cost Center Groups', + summary: 'List Groups', tags: ['Groups'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'list_cost_center_groups', + 'x-speakeasy-name-override': 'list_groups', 'x-speakeasy-pagination': { type: 'cursor', inputs: [ @@ -11180,9 +10762,9 @@ export const hrisSpec = { }, }, }, - '/unified/hris/groups/teams': { + '/unified/hris/groups/departments': { get: { - operationId: 'hris_list_team_groups', + operationId: 'hris_list_department_groups', parameters: [ { name: 'x-account-id', @@ -11226,8 +10808,7 @@ export const hrisSpec = { '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,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids', + example: 'id,remote_id,name', type: 'string', }, }, @@ -11300,11 +10881,11 @@ export const hrisSpec = { ], responses: { '200': { - description: 'The list of team groups was retrieved.', + description: 'The list of department groups was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/HRISTeamsPaginated', + $ref: '#/components/schemas/HRISDepartmentsPaginated', }, }, }, @@ -11443,10 +11024,10 @@ export const hrisSpec = { basic: [], }, ], - summary: 'List Team Groups', + summary: 'List Department Groups', tags: ['Groups'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'list_team_groups', + 'x-speakeasy-name-override': 'list_department_groups', 'x-speakeasy-pagination': { type: 'cursor', inputs: [ @@ -11466,9 +11047,9 @@ export const hrisSpec = { }, }, }, - '/unified/hris/groups/{id}': { + '/unified/hris/groups/cost_centers': { get: { - operationId: 'hris_get_group', + operationId: 'hris_list_cost_center_groups', parameters: [ { name: 'x-account-id', @@ -11479,14 +11060,6 @@ export const hrisSpec = { type: 'string', }, }, - { - name: 'id', - required: true, - in: 'path', - schema: { - type: 'string', - }, - }, { name: 'raw', required: false, @@ -11521,37 +11094,103 @@ export const hrisSpec = { schema: { nullable: true, example: - 'id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id', + 'id,remote_id,name,type,distribution_percentage,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids', type: 'string', }, }, - ], - responses: { - '200': { - description: 'The group with the given identifier was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/HRISGroupsResult', + { + 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', + nullable: true, + additionalProperties: false, }, }, + nullable: true, + type: 'object', }, }, - '400': { - description: 'Invalid request.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/BadRequestResponse', - }, - }, + { + name: 'page', + required: false, + in: 'query', + description: 'The page number of the results to fetch', + deprecated: true, + schema: { + nullable: true, + type: 'string', }, }, - '401': { - description: 'Unauthorized access.', - content: { - 'application/json': { - schema: { + { + 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: { + nullable: true, + example: '2020-01-01T00:00:00.000Z', + type: 'string', + }, + }, + ], + responses: { + '200': { + description: 'The list of cost center groups was retrieved.', + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/HRISCostCenterPaginated', + }, + }, + }, + }, + '400': { + description: 'Invalid request.', + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/BadRequestResponse', + }, + }, + }, + }, + '401': { + description: 'Unauthorized access.', + content: { + 'application/json': { + schema: { $ref: '#/components/schemas/UnauthorizedResponse', }, }, @@ -11671,19 +11310,32 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Get Group', + summary: 'List Cost Center Groups', tags: ['Groups'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'get_group', + 'x-speakeasy-name-override': 'list_cost_center_groups', + '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/groups/departments/{id}': { + '/unified/hris/groups/teams': { get: { - operationId: 'hris_get_department_group', + operationId: 'hris_list_team_groups', parameters: [ { name: 'x-account-id', @@ -11694,14 +11346,6 @@ export const hrisSpec = { type: 'string', }, }, - { - name: 'id', - required: true, - in: 'path', - schema: { - type: 'string', - }, - }, { name: 'raw', required: false, @@ -11735,18 +11379,85 @@ export const hrisSpec = { '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', + example: + 'id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids', + 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', + 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: { + nullable: true, + example: '2020-01-01T00:00:00.000Z', type: 'string', }, }, ], responses: { '200': { - description: 'The department group with the given identifier was retrieved.', + description: 'The list of team groups was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/HRISDepartmentsResult', + $ref: '#/components/schemas/HRISTeamsPaginated', }, }, }, @@ -11885,19 +11596,32 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Get Department Group', + summary: 'List Team Groups', tags: ['Groups'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'get_department_group', + 'x-speakeasy-name-override': 'list_team_groups', + '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/groups/cost_centers/{id}': { + '/unified/hris/groups/{id}': { get: { - operationId: 'hris_get_cost_center_group', + operationId: 'hris_get_group', parameters: [ { name: 'x-account-id', @@ -11950,18 +11674,18 @@ export const hrisSpec = { schema: { nullable: true, example: - 'id,remote_id,name,type,distribution_percentage,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id', + 'id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids', type: 'string', }, }, ], responses: { '200': { - description: 'The cost center group with the given identifier was retrieved.', + description: 'The group with the given identifier was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/HRISCostCenterResult', + $ref: '#/components/schemas/HRISGroupsResult', }, }, }, @@ -12100,19 +11824,19 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Get Cost Center Group', + summary: 'Get Group', tags: ['Groups'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'get_cost_center_group', + 'x-speakeasy-name-override': 'get_group', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/groups/teams/{id}': { + '/unified/hris/groups/departments/{id}': { get: { - operationId: 'hris_get_team_group', + operationId: 'hris_get_department_group', parameters: [ { name: 'x-account-id', @@ -12164,19 +11888,18 @@ export const hrisSpec = { '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,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids', + example: 'id,remote_id,name', type: 'string', }, }, ], responses: { '200': { - description: 'The team group with the given identifier was retrieved.', + description: 'The department group with the given identifier was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/HRISTeamsResult', + $ref: '#/components/schemas/HRISDepartmentsResult', }, }, }, @@ -12315,19 +12038,19 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Get Team Group', + summary: 'Get Department Group', tags: ['Groups'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'get_team_group', + 'x-speakeasy-name-override': 'get_department_group', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/jobs': { + '/unified/hris/groups/cost_centers/{id}': { get: { - operationId: 'hris_list_jobs', + operationId: 'hris_get_cost_center_group', parameters: [ { name: 'x-account-id', @@ -12338,6 +12061,14 @@ export const hrisSpec = { type: 'string', }, }, + { + name: 'id', + required: true, + in: 'path', + schema: { + type: 'string', + }, + }, { name: 'raw', required: false, @@ -12372,84 +12103,18 @@ export const hrisSpec = { schema: { nullable: true, example: - 'id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id', + 'id,remote_id,name,type,distribution_percentage,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids', 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', - 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: { - nullable: true, - example: '2020-01-01T00:00:00.000Z', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The list of jobs was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/JobsPaginated', + ], + responses: { + '200': { + description: 'The cost center group with the given identifier was retrieved.', + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/HRISCostCenterResult', }, }, }, @@ -12588,32 +12253,19 @@ export const hrisSpec = { basic: [], }, ], - summary: 'List Jobs', - tags: ['Jobs'], + summary: 'Get Cost Center Group', + tags: ['Groups'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'list_jobs', - 'x-speakeasy-pagination': { - type: 'cursor', - inputs: [ - { - name: 'next', - in: 'parameters', - type: 'cursor', - }, - ], - outputs: { - nextCursor: '$.next', - }, - }, + 'x-speakeasy-name-override': 'get_cost_center_group', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/jobs/{id}': { + '/unified/hris/groups/teams/{id}': { get: { - operationId: 'hris_get_job', + operationId: 'hris_get_team_group', parameters: [ { name: 'x-account-id', @@ -12666,18 +12318,18 @@ export const hrisSpec = { schema: { nullable: true, example: - 'id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id', + 'id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids', type: 'string', }, }, ], responses: { '200': { - description: 'The job with the given identifier was retrieved.', + description: 'The team group with the given identifier was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/JobResult', + $ref: '#/components/schemas/HRISTeamsResult', }, }, }, @@ -12816,19 +12468,19 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Get Job', - tags: ['Jobs'], + summary: 'Get Team Group', + tags: ['Groups'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'get_job', + 'x-speakeasy-name-override': 'get_team_group', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/employees/{id}/skills': { + '/unified/hris/jobs': { get: { - operationId: 'hris_list_employee_skills', + operationId: 'hris_list_jobs', parameters: [ { name: 'x-account-id', @@ -12839,14 +12491,6 @@ export const hrisSpec = { type: 'string', }, }, - { - name: 'id', - required: true, - in: 'path', - schema: { - type: 'string', - }, - }, { name: 'raw', required: false, @@ -12880,7 +12524,8 @@ export const hrisSpec = { '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,active,language,maximum_proficiency,minimum_proficiency', + example: + 'id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids', type: 'string', }, }, @@ -12953,12 +12598,11 @@ export const hrisSpec = { ], responses: { '200': { - description: - 'The skills related to the employee with the given identifier were retrieved.', + description: 'The list of jobs was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/EntitySkillsPaginated', + $ref: '#/components/schemas/JobsPaginated', }, }, }, @@ -13097,10 +12741,10 @@ export const hrisSpec = { basic: [], }, ], - summary: 'List Employee Skills', - tags: ['Employees', 'Skills'], + summary: 'List Jobs', + tags: ['Jobs'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'list_employee_skills', + 'x-speakeasy-name-override': 'list_jobs', 'x-speakeasy-pagination': { type: 'cursor', inputs: [ @@ -13113,201 +12757,16 @@ export const hrisSpec = { outputs: { nextCursor: '$.next', }, - }, - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - post: { - operationId: 'hris_create_employee_skill', - 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/EntitySkillsCreateRequestDto', - }, - }, - }, - }, - responses: { - '201': { - description: 'The skill 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 Skill', - tags: ['Employees', 'Skills'], - 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'create_employee_skill', + }, 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/employees/{id}/skills/{subResourceId}': { + '/unified/hris/jobs/{id}': { get: { - operationId: 'hris_get_employee_skill', + operationId: 'hris_get_job', parameters: [ { name: 'x-account-id', @@ -13326,14 +12785,6 @@ export const hrisSpec = { type: 'string', }, }, - { - name: 'subResourceId', - required: true, - in: 'path', - schema: { - type: 'string', - }, - }, { name: 'raw', required: false, @@ -13367,19 +12818,19 @@ export const hrisSpec = { '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,active,language,maximum_proficiency,minimum_proficiency', + example: + 'id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids', type: 'string', }, }, ], responses: { '200': { - description: - 'The skill related to the employee with the given identifiers was retrieved.', + description: 'The job with the given identifier was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/EntitySkillResult', + $ref: '#/components/schemas/JobResult', }, }, }, @@ -13518,19 +12969,19 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Get Employee Skill', - tags: ['Employees', 'Skills'], + summary: 'Get Job', + tags: ['Jobs'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'get_employee_skill', + 'x-speakeasy-name-override': 'get_job', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/time_off_policies': { + '/unified/hris/employees/{id}/skills': { get: { - operationId: 'hris_list_time_off_policies', + operationId: 'hris_list_employee_skills', parameters: [ { name: 'x-account-id', @@ -13541,6 +12992,14 @@ export const hrisSpec = { type: 'string', }, }, + { + name: 'id', + required: true, + in: 'path', + schema: { + type: 'string', + }, + }, { name: 'raw', required: false, @@ -13574,8 +13033,7 @@ export const hrisSpec = { '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,duration_unit,reasons,updated_at,created_at', + example: 'id,remote_id,name,active,language,maximum_proficiency,minimum_proficiency', type: 'string', }, }, @@ -13583,7 +13041,7 @@ export const hrisSpec = { name: 'filter', required: false, in: 'query', - description: 'HRIS Time-Off Policies filters', + description: 'Filter parameters that allow greater customisation of the list response', explode: true, style: 'deepObject', schema: { @@ -13596,36 +13054,6 @@ export const hrisSpec = { nullable: true, additionalProperties: false, }, - type: { - description: 'Filter to select time-off policies by type', - enum: [ - 'sick', - 'unmapped_value', - 'vacation', - 'long_term_disability', - 'short_term_disability', - 'absent', - 'comp_time', - 'training', - 'annual_leave', - 'leave_of_absence', - 'break', - 'child_care_leave', - 'maternity_leave', - 'jury_duty', - 'sabbatical', - 'accident', - 'paid', - 'unpaid', - 'holiday', - 'personal', - 'in_lieu', - 'bereavement', - null, - ], - nullable: true, - type: 'string', - }, }, nullable: true, type: 'object', @@ -13678,11 +13106,12 @@ export const hrisSpec = { ], responses: { '200': { - description: 'The list of time off policies was retrieved.', + description: + 'The skills related to the employee with the given identifier were retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/TimeOffPoliciesPaginated', + $ref: '#/components/schemas/EntitySkillsPaginated', }, }, }, @@ -13821,10 +13250,10 @@ export const hrisSpec = { basic: [], }, ], - summary: 'List Time Off Policies', - tags: ['Time Off Policies'], + summary: 'List Employee Skills', + tags: ['Employees', 'Skills'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'list_time_off_policies', + 'x-speakeasy-name-override': 'list_employee_skills', 'x-speakeasy-pagination': { type: 'cursor', inputs: [ @@ -13843,10 +13272,8 @@ export const hrisSpec = { strategy: 'backoff', }, }, - }, - '/unified/hris/time_off_policies/{id}': { - get: { - operationId: 'hris_get_time_off_policy', + post: { + operationId: 'hris_create_employee_skill', parameters: [ { name: 'x-account-id', @@ -13865,52 +13292,24 @@ export const hrisSpec = { 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,duration_unit,reasons,updated_at,created_at', - type: 'string', + ], + requestBody: { + required: true, + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/EntitySkillsCreateRequestDto', + }, }, }, - ], + }, responses: { - '200': { - description: 'The time off policy with the given identifier was retrieved.', + '201': { + description: 'The skill was created successfully.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/TimeOffPolicyResult', + $ref: '#/components/schemas/CreateResult', }, }, }, @@ -14049,19 +13448,19 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Get Time Off Policy', - tags: ['Time Off Policies'], + summary: 'Create Employee Skill', + tags: ['Employees', 'Skills'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'get_time_off_policy', + 'x-speakeasy-name-override': 'create_employee_skill', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/employees/{id}/time_off_policies': { + '/unified/hris/employees/{id}/skills/{subResourceId}': { get: { - operationId: 'hris_list_employee_time_off_policies', + operationId: 'hris_get_employee_skill', parameters: [ { name: 'x-account-id', @@ -14080,6 +13479,14 @@ export const hrisSpec = { type: 'string', }, }, + { + name: 'subResourceId', + required: true, + in: 'path', + schema: { + type: 'string', + }, + }, { name: 'raw', required: false, @@ -14113,104 +13520,7 @@ export const hrisSpec = { '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,duration_unit,reasons,updated_at,created_at', - type: 'string', - }, - }, - { - name: 'filter', - required: false, - in: 'query', - description: 'HRIS Time-Off Policies 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', - nullable: true, - additionalProperties: false, - }, - type: { - description: 'Filter to select time-off policies by type', - enum: [ - 'sick', - 'unmapped_value', - 'vacation', - 'long_term_disability', - 'short_term_disability', - 'absent', - 'comp_time', - 'training', - 'annual_leave', - 'leave_of_absence', - 'break', - 'child_care_leave', - 'maternity_leave', - 'jury_duty', - 'sabbatical', - 'accident', - 'paid', - 'unpaid', - 'holiday', - 'personal', - 'in_lieu', - 'bereavement', - null, - ], - nullable: true, - 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: { - nullable: true, - example: '2020-01-01T00:00:00.000Z', + example: 'id,remote_id,name,active,language,maximum_proficiency,minimum_proficiency', type: 'string', }, }, @@ -14218,11 +13528,11 @@ export const hrisSpec = { responses: { '200': { description: - 'The time off policies related to the employee with the given identifier were retrieved.', + 'The skill related to the employee with the given identifiers was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/TimeOffPoliciesPaginated', + $ref: '#/components/schemas/EntitySkillResult', }, }, }, @@ -14361,32 +13671,19 @@ export const hrisSpec = { basic: [], }, ], - summary: 'List Assigned Time Off Policies', - tags: ['Employees', 'Time Off Policies'], + summary: 'Get Employee Skill', + tags: ['Employees', 'Skills'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'list_employee_time_off_policies', - 'x-speakeasy-pagination': { - type: 'cursor', - inputs: [ - { - name: 'next', - in: 'parameters', - type: 'cursor', - }, - ], - outputs: { - nextCursor: '$.next', - }, - }, + 'x-speakeasy-name-override': 'get_employee_skill', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/unified/hris/employees/{id}/tasks': { + '/unified/hris/time_off_policies': { get: { - operationId: 'hris_list_employee_tasks', + operationId: 'hris_list_time_off_policies', parameters: [ { name: 'x-account-id', @@ -14397,14 +13694,6 @@ export const hrisSpec = { type: 'string', }, }, - { - name: 'id', - required: true, - in: 'path', - schema: { - type: 'string', - }, - }, { name: 'raw', required: false, @@ -14439,7 +13728,7 @@ export const hrisSpec = { schema: { nullable: true, example: - 'id,remote_id,employee_id,remote_employee_id,name,description,type,status,due_date,completion_date,assigned_by_employee_id,remote_assigned_by_employee_id,assigned_by_employee_name,link_to_task,extracted_links,next_task_id,remote_next_task_id,parent_process_name,comments,attachments,created_at,updated_at', + 'id,remote_id,name,description,type,duration_unit,reasons,updated_at,created_at', type: 'string', }, }, @@ -14501,34 +13790,22 @@ export const hrisSpec = { required: false, in: 'query', description: - 'Use a string with a date to only select results updated after that given date', - deprecated: true, - schema: { - 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', + 'Use a string with a date to only select results updated after that given date', + deprecated: true, schema: { nullable: true, - example: 'attachments', + example: '2020-01-01T00:00:00.000Z', type: 'string', }, }, ], responses: { '200': { - description: - 'The list of tasks for the employee with the given identifier was retrieved.', + description: 'The list of time off policies was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/TasksPaginated', + $ref: '#/components/schemas/TimeOffPoliciesPaginated', }, }, }, @@ -14667,10 +13944,10 @@ export const hrisSpec = { basic: [], }, ], - summary: 'List Employee Tasks', - tags: ['Employees', 'Tasks'], + summary: 'List Time Off Policies', + tags: ['Time Off Policies'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'list_employee_tasks', + 'x-speakeasy-name-override': 'list_time_off_policies', 'x-speakeasy-pagination': { type: 'cursor', inputs: [ @@ -14690,9 +13967,9 @@ export const hrisSpec = { }, }, }, - '/unified/hris/employees/{id}/tasks/{subResourceId}': { + '/unified/hris/time_off_policies/{id}': { get: { - operationId: 'hris_get_employee_task', + operationId: 'hris_get_time_off_policy', parameters: [ { name: 'x-account-id', @@ -14711,14 +13988,6 @@ export const hrisSpec = { type: 'string', }, }, - { - name: 'subResourceId', - required: true, - in: 'path', - schema: { - type: 'string', - }, - }, { name: 'raw', required: false, @@ -14753,29 +14022,18 @@ export const hrisSpec = { schema: { nullable: true, example: - 'id,remote_id,employee_id,remote_employee_id,name,description,type,status,due_date,completion_date,assigned_by_employee_id,remote_assigned_by_employee_id,assigned_by_employee_name,link_to_task,extracted_links,next_task_id,remote_next_task_id,parent_process_name,comments,attachments,created_at,updated_at', - 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: 'attachments', + 'id,remote_id,name,description,type,duration_unit,reasons,updated_at,created_at', type: 'string', }, }, ], responses: { '200': { - description: 'The task with the given identifier for the employee was retrieved.', + description: 'The time off policy with the given identifier was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/TaskResult', + $ref: '#/components/schemas/TimeOffPolicyResult', }, }, }, @@ -14914,17 +14172,19 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Get Employee Task', - tags: ['Employees', 'Tasks'], + summary: 'Get Time Off Policy', + tags: ['Time Off Policies'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'get_employee_task', + 'x-speakeasy-name-override': 'get_time_off_policy', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, - patch: { - operationId: 'hris_complete_employee_task', + }, + '/unified/hris/employees/{id}/time_off_policies': { + get: { + operationId: 'hris_list_employee_time_off_policies', parameters: [ { name: 'x-account-id', @@ -14944,39 +14204,118 @@ export const hrisSpec = { }, }, { - name: 'subResourceId', - required: true, - in: 'path', + 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: { - type: 'string', + 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: {}, + schema: { + additionalProperties: true, + nullable: true, + type: 'object', + }, }, - ], - requestBody: { - required: true, - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/CompleteTaskRequestDto', + { + 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,duration_unit,reasons,updated_at,created_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', + 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: { + nullable: true, + example: '2020-01-01T00:00:00.000Z', + type: 'string', + }, + }, + ], responses: { '200': { - description: 'The task has been successfully completed', + description: + 'The time off policies related to the employee with the given identifier were retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/TaskResult', + $ref: '#/components/schemas/TimeOffPoliciesPaginated', }, }, }, @@ -15115,10 +14454,23 @@ export const hrisSpec = { basic: [], }, ], - summary: 'Complete Employee Task', - tags: ['Employees', 'Tasks'], + summary: 'List Assigned Time Off Policies', + tags: ['Employees', 'Time Off Policies'], 'x-speakeasy-group': 'hris', - 'x-speakeasy-name-override': 'complete_employee_task', + 'x-speakeasy-name-override': 'list_employee_time_off_policies', + 'x-speakeasy-pagination': { + type: 'cursor', + inputs: [ + { + name: 'next', + in: 'parameters', + type: 'cursor', + }, + ], + outputs: { + nextCursor: '$.next', + }, + }, 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', @@ -15173,10 +14525,6 @@ export const hrisSpec = { name: 'Skills', description: '', }, - { - name: 'Tasks', - description: '', - }, { name: 'Time Entries', description: '', @@ -15448,24 +14796,13 @@ export const hrisSpec = { }, required: ['data'], }, - CompleteTaskRequestDto: { - type: 'object', - properties: { - comment: { - type: 'string', - description: 'Comment or note about the task completion', - example: 'All required documents have been submitted', - nullable: true, - }, - }, - }, ConfidentialEnumApiModel: { type: 'object', properties: { value: { type: 'string', description: 'Whether the file is confidential or not', - enum: ['true', 'false', 'unmapped_value', null], + enum: ['true', 'false', null], example: 'true', 'x-speakeasy-unknown-values': 'allow', nullable: true, @@ -15878,187 +15215,65 @@ export const hrisSpec = { 'US', 'UM', 'UY', - 'UZ', - 'VU', - 'VE', - 'VN', - 'VG', - 'VI', - 'WF', - 'EH', - 'YE', - 'ZM', - 'ZW', - 'unmapped_value', - null, - ], - description: 'The ISO3166-1 Alpha2 Code of the Country', - example: 'US', - 'x-speakeasy-unknown-values': 'allow', - nullable: true, - }, - source_value: { - oneOf: [ - { - type: 'string', - }, - { - type: 'number', - }, - { - type: 'boolean', - }, - { - type: 'object', - }, - { - type: 'array', - items: {}, - }, - ], - nullable: true, - }, - }, - }, - CreateCostCenterApiModel: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'Unique identifier', - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - name: { - type: 'string', - example: 'R&D', - nullable: true, - }, - distribution_percentage: { - type: 'number', - example: 100, - nullable: true, - }, - }, - }, - CreateEmployeeEmploymentApiModel: { - type: 'object', - properties: { - unified_custom_fields: { - type: 'object', - description: 'Custom Unified Fields configured in your StackOne project', - additionalProperties: true, - example: { - my_project_custom_field_1: 'REF-1236', - my_project_custom_field_2: 'some other value', - }, - nullable: true, - }, - job_title: { - type: 'string', - description: 'The job title of the employee', - example: 'Software Engineer', - nullable: true, - }, - pay_rate: { - type: 'string', - description: 'The pay rate for the employee', - example: '40.00', + 'UZ', + 'VU', + 'VE', + 'VN', + 'VG', + 'VI', + 'WF', + 'EH', + 'YE', + 'ZM', + 'ZW', + 'unmapped_value', + null, + ], + description: 'The ISO3166-1 Alpha2 Code of the Country', + example: 'US', + 'x-speakeasy-unknown-values': 'allow', nullable: true, }, - pay_period: { - description: 'The pay period', - example: 'monthly', - nullable: true, - allOf: [ + source_value: { + oneOf: [ { - $ref: '#/components/schemas/PayPeriodEnum', + type: 'string', }, - ], - }, - pay_frequency: { - description: 'The pay frequency', - example: 'hourly', - nullable: true, - allOf: [ { - $ref: '#/components/schemas/PayFrequencyEnum', + type: 'number', }, - ], - }, - pay_currency: { - type: 'string', - description: 'The currency used for pay', - example: 'USD', - nullable: true, - }, - end_date: { - type: 'string', - description: 'The end date of employment', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - grade: { - description: 'Represents the employee’s position within the organizational hierarchy.', - nullable: true, - allOf: [ { - $ref: '#/components/schemas/EmploymentGradeApiModel', + type: 'boolean', }, - ], - }, - employment_type: { - description: 'The type of employment (e.g., contractor, permanent)', - example: 'permanent', - deprecated: true, - nullable: true, - allOf: [ { - $ref: '#/components/schemas/EmploymentTypeEnum', + type: 'object', }, - ], - }, - employment_contract_type: { - description: 'The employment work schedule type (e.g., full-time, part-time)', - example: 'full_time', - deprecated: true, - nullable: true, - allOf: [ { - $ref: '#/components/schemas/EmploymentScheduleTypeEnum', + type: 'array', + items: {}, }, ], - }, - work_time: { nullable: true, - allOf: [ - { - $ref: '#/components/schemas/WorkTimeApiModel', - }, - ], }, - payroll_code: { + }, + }, + CreateCostCenterApiModel: { + type: 'object', + properties: { + id: { type: 'string', - description: 'The payroll code of the employee', - example: 'PC1', + description: 'Unique identifier', + example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', nullable: true, }, - passthrough: { - type: 'object', - description: 'Value to pass through to the provider', - example: { - other_known_names: 'John Doe', - }, - additionalProperties: true, + name: { + type: 'string', + example: 'R&D', nullable: true, }, - effective_date: { - type: 'string', - description: 'The employee effective date', - example: '2021-01-01T00:00:00.000Z', - format: 'date-time', - deprecated: true, + distribution_percentage: { + type: 'number', + example: 100, nullable: true, }, }, @@ -16141,6 +15356,12 @@ export const hrisSpec = { CreateEmploymentApiModel: { type: 'object', properties: { + id: { + type: 'string', + description: 'Unique identifier', + example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', + nullable: true, + }, unified_custom_fields: { type: 'object', description: 'Custom Unified Fields configured in your StackOne project', @@ -16194,28 +15415,12 @@ export const hrisSpec = { description: 'The effective date of the employment contract', example: '2021-01-01T01:01:01.000Z', format: 'date-time', + deprecated: true, nullable: true, }, - end_date: { - type: 'string', - description: 'The end date of employment', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - grade: { - description: 'Represents the employee’s position within the organizational hierarchy.', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/EmploymentGradeApiModel', - }, - ], - }, employment_type: { description: 'The type of employment (e.g., contractor, permanent)', example: 'permanent', - deprecated: true, nullable: true, allOf: [ { @@ -16226,7 +15431,6 @@ export const hrisSpec = { employment_contract_type: { description: 'The employment work schedule type (e.g., full-time, part-time)', example: 'full_time', - deprecated: true, nullable: true, allOf: [ { @@ -16234,24 +15438,11 @@ export const hrisSpec = { }, ], }, - work_time: { - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/WorkTimeApiModel', - }, - ], - }, - payroll_code: { - type: 'string', - description: 'The payroll code of the employee', - example: 'PC1', - nullable: true, - }, - job_id: { + time_worked: { type: 'string', - description: 'The employee job id', - example: '5290', + description: 'The time worked for the employee in ISO 8601 duration format', + example: 'P0Y0M0DT8H0M0S', + format: 'duration', nullable: true, }, }, @@ -16527,7 +15718,6 @@ export const hrisSpec = { 'multi_select', 'url', 'other', - 'unmapped_value', null, ], 'x-speakeasy-unknown-values': 'allow', @@ -16556,40 +15746,12 @@ export const hrisSpec = { }, }, }, - DeleteResult: { - type: 'object', - properties: { - statusCode: { - type: 'number', - example: 204, - }, - message: { - type: 'string', - example: 'Record deleted successfully.', - }, - timestamp: { - type: 'string', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, DepartmentTypeEnum: { type: 'object', properties: { value: { type: 'string', - enum: [ - 'department', - 'company', - 'division', - 'group', - 'project', - 'team', - 'unmapped_value', - null, - ], + enum: ['department', 'company', 'division', 'group', 'project', 'team', null], example: 'department', 'x-speakeasy-unknown-values': 'allow', nullable: true, @@ -16707,6 +15869,7 @@ export const hrisSpec = { type: 'string', description: 'The employee job title', example: 'Physicist', + deprecated: true, nullable: true, }, job_description: { @@ -16797,7 +15960,7 @@ export const hrisSpec = { date_of_birth: { type: 'string', description: 'The employee date_of_birth', - example: '1990-01-01T00:00:00.000Z', + example: '1990-01-01T00:00.000Z', format: 'date-time', nullable: true, }, @@ -16831,14 +15994,14 @@ export const hrisSpec = { hire_date: { type: 'string', description: 'The employee hire date', - example: '2021-01-01T00:00:00.000Z', + example: '2021-01-01T00:00.000Z', format: 'date-time', nullable: true, }, start_date: { type: 'string', description: 'The employee start date', - example: '2021-01-01T00:00:00.000Z', + example: '2021-01-01T00:00.000Z', format: 'date-time', deprecated: true, nullable: true, @@ -17084,10 +16247,24 @@ export const hrisSpec = { }, nullable: true, }, + employee_id: { + type: 'string', + description: 'The employee ID associated with this employment', + example: '1687-3', + nullable: true, + }, + remote_employee_id: { + type: 'string', + description: + "Provider's unique identifier of the employee associated with this employment", + example: 'e3cb75bf-aa84-466e-a6c1-b8322b257a48', + nullable: true, + }, job_title: { type: 'string', description: 'The job title of the employee', example: 'Software Engineer', + deprecated: true, nullable: true, }, pay_rate: { @@ -17129,22 +16306,6 @@ export const hrisSpec = { format: 'date-time', nullable: true, }, - end_date: { - type: 'string', - description: 'The end date of employment', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - grade: { - description: 'Represents the employee’s position within the organizational hierarchy.', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/EmploymentGradeApiModel', - }, - ], - }, employment_type: { description: 'The type of employment (e.g., contractor, permanent)', example: 'permanent', @@ -17167,37 +16328,11 @@ export const hrisSpec = { }, ], }, - work_time: { - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/WorkTimeApiModel', - }, - ], - }, - payroll_code: { - type: 'string', - description: 'The payroll code of the employee', - example: 'PC1', - nullable: true, - }, - employee_id: { - type: 'string', - description: 'The employee ID associated with this employment', - example: '1687-3', - nullable: true, - }, - remote_employee_id: { + time_worked: { type: 'string', - description: - "Provider's unique identifier of the employee associated with this employment", - example: 'e3cb75bf-aa84-466e-a6c1-b8322b257a48', - nullable: true, - }, - fte: { - type: 'number', - description: "the employee's working percentage relative to a full-time employee", - example: '1', + description: 'The time worked for the employee in ISO 8601 duration format', + example: 'P0Y0M0DT8H0M0S', + format: 'duration', nullable: true, }, created_at: { @@ -17219,7 +16354,13 @@ export const hrisSpec = { description: 'The start_date of employment', example: '2021-01-01T01:01:01.000Z', format: 'date-time', - deprecated: true, + nullable: true, + }, + end_date: { + type: 'string', + description: 'The end_date of employment', + example: '2021-01-01T01:01:01.000Z', + format: 'date-time', nullable: true, }, active: { @@ -17283,50 +16424,21 @@ export const hrisSpec = { ], }, contract_type: { - description: 'The employment work schedule type', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/ContractTypeApiModel', - }, - ], - }, - manager: { - description: 'The employee manager', - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/EmploymentManagerApiModel', - }, - }, - }, - }, - EmploymentGradeApiModel: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'The reference id', - example: '1687-3', - nullable: true, - }, - remote_id: { - type: 'string', - description: "Provider's unique identifier", - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - name: { - type: 'string', - description: 'The reference name', - example: '1687-4', + description: 'The employment work schedule type', nullable: true, + allOf: [ + { + $ref: '#/components/schemas/ContractTypeApiModel', + }, + ], }, - description: { - type: 'string', - description: 'description of the grade', - example: 'Mid-level employee demonstrating proficiency and autonomy.', + manager: { + description: 'The employee manager', nullable: true, + type: 'array', + items: { + $ref: '#/components/schemas/EmploymentManagerApiModel', + }, }, }, }, @@ -19100,7 +18212,7 @@ export const hrisSpec = { items: {}, }, ], - example: 'application/pdf', + example: 'abc', nullable: true, }, }, @@ -19393,18 +18505,6 @@ export const hrisSpec = { type: 'string', }, }, - company_id: { - type: 'string', - description: 'The id of the company that the group belongs to', - example: '1234567890', - nullable: true, - }, - remote_company_id: { - type: 'string', - description: "Provider's id of the company that the group belongs to", - example: '1234567890', - nullable: true, - }, distribution_percentage: { type: 'number', example: 85, @@ -19527,13 +18627,11 @@ export const hrisSpec = { type: 'string', description: 'The employee job id', example: 'R-6789', - deprecated: true, nullable: true, }, job_title: { type: 'string', - description: - "If the source of the job_title is the Employee's current Employment, and that Employment pertains exclusively to this Employee, then the active Employment job_title will also be written", + description: 'The employee job title', example: 'Physicist', nullable: true, }, @@ -19573,7 +18671,7 @@ export const hrisSpec = { }, preferred_language: { description: 'The employee preferred language', - example: 'eng', + example: 'en_US', nullable: true, allOf: [ { @@ -19594,7 +18692,7 @@ export const hrisSpec = { date_of_birth: { type: 'string', description: 'The employee date_of_birth', - example: '1990-01-01T00:00:00.000Z', + example: '1990-01-01T00:00.000Z', format: 'date-time', nullable: true, }, @@ -19628,21 +18726,20 @@ export const hrisSpec = { hire_date: { type: 'string', description: 'The employee hire date', - example: '2021-01-01T00:00:00.000Z', + example: '2021-01-01T00:00.000Z', format: 'date-time', nullable: true, }, start_date: { type: 'string', description: 'The employee start date', - example: '2021-01-01T00:00:00.000Z', + example: '2021-01-01T00:00.000Z', format: 'date-time', nullable: true, }, employment_type: { description: 'The employee employment type', - example: 'permanent', - deprecated: true, + example: 'full_time', nullable: true, allOf: [ { @@ -19653,7 +18750,6 @@ export const hrisSpec = { employment_contract_type: { description: 'The employment work schedule type (e.g., full-time, part-time)', example: 'full_time', - deprecated: true, nullable: true, allOf: [ { @@ -19713,7 +18809,7 @@ export const hrisSpec = { nullable: true, allOf: [ { - $ref: '#/components/schemas/CreateEmployeeEmploymentApiModel', + $ref: '#/components/schemas/CreateEmploymentApiModel', }, ], }, @@ -19797,6 +18893,12 @@ export const hrisSpec = { HrisCreateEmploymentRequestDto: { type: 'object', properties: { + id: { + type: 'string', + description: 'Unique identifier', + example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', + nullable: true, + }, unified_custom_fields: { type: 'object', description: 'Custom Unified Fields configured in your StackOne project', @@ -19850,28 +18952,12 @@ export const hrisSpec = { description: 'The effective date of the employment contract', example: '2021-01-01T01:01:01.000Z', format: 'date-time', + deprecated: true, nullable: true, }, - end_date: { - type: 'string', - description: 'The end date of employment', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - grade: { - description: 'Represents the employee’s position within the organizational hierarchy.', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/EmploymentGradeApiModel', - }, - ], - }, employment_type: { description: 'The type of employment (e.g., contractor, permanent)', example: 'permanent', - deprecated: true, nullable: true, allOf: [ { @@ -19882,7 +18968,6 @@ export const hrisSpec = { employment_contract_type: { description: 'The employment work schedule type (e.g., full-time, part-time)', example: 'full_time', - deprecated: true, nullable: true, allOf: [ { @@ -19890,24 +18975,11 @@ export const hrisSpec = { }, ], }, - work_time: { - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/WorkTimeApiModel', - }, - ], - }, - payroll_code: { - type: 'string', - description: 'The payroll code of the employee', - example: 'PC1', - nullable: true, - }, - job_id: { + time_worked: { type: 'string', - description: 'The employee job id', - example: '5290', + description: 'The time worked for the employee in ISO 8601 duration format', + example: 'P0Y0M0DT8H0M0S', + format: 'duration', nullable: true, }, passthrough: { @@ -19924,6 +18996,12 @@ export const hrisSpec = { HrisCreateTimeOffRequestDto: { type: 'object', properties: { + employee_id: { + type: 'string', + description: 'The employee ID', + example: '1687-3', + nullable: true, + }, approver_id: { type: 'string', description: 'The approver ID', @@ -19951,18 +19029,16 @@ export const hrisSpec = { }, start_date: { type: 'string', - description: - 'The start date of the time off request (ISO8601 date-time without timezone)', - example: '2021-01-01T01:01:01.000', - format: 'datetime-local', + description: 'The start date of the time off request', + example: '2021-01-01T01:01:01.000Z', + format: 'date-time', nullable: true, }, end_date: { type: 'string', - description: - 'Inclusive end date of the time off request (ISO8601 date-time without timezone). The time off includes this day', - example: '2021-01-01T01:01:01.000', - format: 'datetime-local', + description: 'The end date of the time off request', + example: '2021-01-01T01:01:01.000Z', + format: 'date-time', nullable: true, }, start_half_day: { @@ -20060,13 +19136,13 @@ export const hrisSpec = { }, valid_from: { type: 'string', - example: '2021-01-01T00:00:00.000Z', + example: '2021-01-01T00:00.000Z', format: 'date-time', nullable: true, }, valid_to: { type: 'string', - example: '2021-01-01T00:00:00.000Z', + example: '2021-01-01T00:00.000Z', format: 'date-time', nullable: true, }, @@ -20148,18 +19224,6 @@ export const hrisSpec = { type: 'string', }, }, - company_id: { - type: 'string', - description: 'The id of the company that the group belongs to', - example: '1234567890', - nullable: true, - }, - remote_company_id: { - type: 'string', - description: "Provider's id of the company that the group belongs to", - example: '1234567890', - nullable: true, - }, type: { description: 'The type of the department group', example: 'department', @@ -20370,6 +19434,8 @@ export const hrisSpec = { value: { type: 'string', description: 'The category name to associate with the file', + example: 'reports', + nullable: true, enum: [ 'application', 'academic', @@ -20398,9 +19464,7 @@ export const hrisSpec = { 'unmapped_value', null, ], - example: 'reports', 'x-speakeasy-unknown-values': 'allow', - nullable: true, }, source_value: { type: 'string', @@ -20448,29 +19512,29 @@ export const hrisSpec = { example: '/path/to/file', nullable: true, }, - confidential: { - description: 'The confidentiality level of the file to be uploaded', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/ConfidentialEnumApiModel', - }, - ], - }, category: { description: 'The category to be associated with the file to be uploaded. Id will take precedence over name.', + nullable: true, example: { name: 'reports', id: '550e8400-e29b-41d4-a716-446655440000', }, - nullable: true, allOf: [ { $ref: '#/components/schemas/HrisDocumentsUploadCategoryEnumApiModel', }, ], }, + confidential: { + description: 'The confidentiality level of the file to be uploaded', + nullable: true, + allOf: [ + { + $ref: '#/components/schemas/ConfidentialEnumApiModel', + }, + ], + }, }, }, HrisDocumentTypeEnum: { @@ -20600,18 +19664,6 @@ export const hrisSpec = { type: 'string', }, }, - company_id: { - type: 'string', - description: 'The id of the company that the group belongs to', - example: '1234567890', - nullable: true, - }, - remote_company_id: { - type: 'string', - description: "Provider's id of the company that the group belongs to", - example: '1234567890', - nullable: true, - }, type: { description: 'The type of the group', nullable: true, @@ -20906,18 +19958,6 @@ export const hrisSpec = { type: 'string', }, }, - company_id: { - type: 'string', - description: 'The id of the company that the group belongs to', - example: '1234567890', - nullable: true, - }, - remote_company_id: { - type: 'string', - description: "Provider's id of the company that the group belongs to", - example: '1234567890', - nullable: true, - }, type: { description: 'The type of the team group', example: 'team', @@ -21035,13 +20075,11 @@ export const hrisSpec = { type: 'string', description: 'The employee job id', example: 'R-6789', - deprecated: true, nullable: true, }, job_title: { type: 'string', - description: - "If the source of the job_title is the Employee's current Employment, and that Employment pertains exclusively to this Employee, then the active Employment job_title will also be written", + description: 'The employee job title', example: 'Physicist', nullable: true, }, @@ -21081,7 +20119,7 @@ export const hrisSpec = { }, preferred_language: { description: 'The employee preferred language', - example: 'eng', + example: 'en_US', nullable: true, allOf: [ { @@ -21102,7 +20140,7 @@ export const hrisSpec = { date_of_birth: { type: 'string', description: 'The employee date_of_birth', - example: '1990-01-01T00:00:00.000Z', + example: '1990-01-01T00:00.000Z', format: 'date-time', nullable: true, }, @@ -21136,21 +20174,20 @@ export const hrisSpec = { hire_date: { type: 'string', description: 'The employee hire date', - example: '2021-01-01T00:00:00.000Z', + example: '2021-01-01T00:00.000Z', format: 'date-time', nullable: true, }, start_date: { type: 'string', description: 'The employee start date', - example: '2021-01-01T00:00:00.000Z', + example: '2021-01-01T00:00.000Z', format: 'date-time', nullable: true, }, employment_type: { description: 'The employee employment type', - example: 'permanent', - deprecated: true, + example: 'full_time', nullable: true, allOf: [ { @@ -21161,7 +20198,6 @@ export const hrisSpec = { employment_contract_type: { description: 'The employment work schedule type (e.g., full-time, part-time)', example: 'full_time', - deprecated: true, nullable: true, allOf: [ { @@ -21212,7 +20248,7 @@ export const hrisSpec = { nullable: true, allOf: [ { - $ref: '#/components/schemas/CreateEmployeeEmploymentApiModel', + $ref: '#/components/schemas/CreateEmploymentApiModel', }, ], }, @@ -21244,157 +20280,36 @@ export const hrisSpec = { nullable: true, allOf: [ { - $ref: '#/components/schemas/NationalIdentityNumberApiModel', - }, - ], - }, - national_identity_numbers: { - description: 'The national identity numbers', - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/NationalIdentityNumberApiModel', - }, - }, - home_location: { - description: 'The employee home location', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/CreateEmployeeLocationApiModel', - }, - ], - }, - work_location: { - description: 'The employee work location', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/CreateEmployeeLocationApiModel', - }, - ], - }, - passthrough: { - type: 'object', - description: 'Value to pass through to the provider', - example: { - other_known_names: 'John Doe', - }, - additionalProperties: true, - nullable: true, - }, - }, - }, - HrisUpdateEmploymentRequestDto: { - type: 'object', - properties: { - unified_custom_fields: { - type: 'object', - description: 'Custom Unified Fields configured in your StackOne project', - additionalProperties: true, - example: { - my_project_custom_field_1: 'REF-1236', - my_project_custom_field_2: 'some other value', - }, - nullable: true, - }, - job_title: { - type: 'string', - description: 'The job title of the employee', - example: 'Software Engineer', - nullable: true, - }, - pay_rate: { - type: 'string', - description: 'The pay rate for the employee', - example: '40.00', - nullable: true, - }, - pay_period: { - description: 'The pay period', - example: 'monthly', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/PayPeriodEnum', - }, - ], - }, - pay_frequency: { - description: 'The pay frequency', - example: 'hourly', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/PayFrequencyEnum', - }, - ], - }, - pay_currency: { - type: 'string', - description: 'The currency used for pay', - example: 'USD', - nullable: true, - }, - effective_date: { - type: 'string', - description: 'The effective date of the employment contract', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - end_date: { - type: 'string', - description: 'The end date of employment', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - grade: { - description: 'Represents the employee’s position within the organizational hierarchy.', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/EmploymentGradeApiModel', - }, - ], - }, - employment_type: { - description: 'The type of employment (e.g., contractor, permanent)', - example: 'permanent', - deprecated: true, - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/EmploymentTypeEnum', + $ref: '#/components/schemas/NationalIdentityNumberApiModel', }, ], }, - employment_contract_type: { - description: 'The employment work schedule type (e.g., full-time, part-time)', - example: 'full_time', - deprecated: true, + national_identity_numbers: { + description: 'The national identity numbers', + nullable: true, + type: 'array', + items: { + $ref: '#/components/schemas/NationalIdentityNumberApiModel', + }, + }, + home_location: { + description: 'The employee home location', nullable: true, allOf: [ { - $ref: '#/components/schemas/EmploymentScheduleTypeEnum', + $ref: '#/components/schemas/CreateEmployeeLocationApiModel', }, ], }, - work_time: { + work_location: { + description: 'The employee work location', nullable: true, allOf: [ { - $ref: '#/components/schemas/WorkTimeApiModel', + $ref: '#/components/schemas/CreateEmployeeLocationApiModel', }, ], }, - payroll_code: { - type: 'string', - description: 'The payroll code of the employee', - example: 'PC1', - nullable: true, - }, passthrough: { type: 'object', description: 'Value to pass through to the provider', @@ -21611,16 +20526,7 @@ export const hrisSpec = { properties: { value: { type: 'string', - enum: [ - 'draft', - 'pending', - 'archived', - 'closed', - 'open', - 'deleted', - 'unmapped_value', - null, - ], + enum: ['draft', 'pending', 'archived', 'closed', 'open', 'deleted', null], description: 'The status of the job.', example: 'active', 'x-speakeasy-unknown-values': 'allow', @@ -22076,7 +20982,6 @@ export const hrisSpec = { 'zh_SG', 'zh_TW', 'zu_ZA', - 'unmapped_value', null, ], description: 'The Locale Code of the language', @@ -22603,7 +21508,6 @@ export const hrisSpec = { 'cat', 'cha', 'ces', - 'dan', 'deu', 'div', 'dzo', @@ -22620,7 +21524,6 @@ export const hrisSpec = { 'fra', 'gle', 'grn', - 'guj', 'glv', 'heb', 'hin', @@ -22651,8 +21554,6 @@ export const hrisSpec = { 'mah', 'mri', 'mkd', - 'mon', - 'mar', 'msa', 'mlt', 'mya', @@ -22667,18 +21568,15 @@ export const hrisSpec = { 'pol', 'pus', 'por', - 'que', 'rar', 'roh', 'rup', 'ron', 'rus', 'kin', - 'sme', 'sag', 'sin', 'slk', - 'slv', 'smo', 'sna', 'som', @@ -22688,24 +21586,11 @@ export const hrisSpec = { 'swe', 'swa', 'tam', - 'tel', 'tgk', 'tha', 'tir', 'tig', - 'tuk', - 'tsn', - 'ton', - 'tur', - 'tso', - 'ukr', - 'urd', - 'uzb', - 'ven', - 'vie', - 'xho', 'zho', - 'zul', 'unmapped_value', null, ], @@ -22760,7 +21645,7 @@ export const hrisSpec = { }, value: { type: 'string', - enum: ['1', '2', '3', '4', '5', 'unmapped_value', null], + enum: ['1', '2', '3', '4', '5', null], 'x-speakeasy-unknown-values': 'allow', nullable: true, }, @@ -22867,371 +21752,109 @@ export const hrisSpec = { { type: 'object', }, - { - type: 'array', - items: { - type: 'integer', - format: 'int32', - minimum: 0, - maximum: 255, - }, - }, - ], - additionalProperties: true, - nullable: true, - }, - response: { - oneOf: [ - { - type: 'object', - additionalProperties: true, - }, - { - type: 'array', - items: {}, - }, - { - type: 'string', - }, - ], - nullable: true, - }, - }, - required: ['method', 'url'], - }, - Reason: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'Unique identifier', - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - remote_id: { - type: 'string', - description: "Provider's unique identifier", - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - name: { - type: 'string', - nullable: true, - }, - }, - }, - Reference: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'The reference id', - example: '1687-3', - nullable: true, - }, - remote_id: { - type: 'string', - description: "Provider's unique identifier", - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - name: { - type: 'string', - description: 'The reference name', - example: '1687-4', - nullable: true, - }, - active: { - description: 'The reference status', - example: true, - oneOf: [ - { - type: 'boolean', - }, - { - type: 'string', - enum: ['true', 'false'], - }, - ], - nullable: true, - }, - }, - }, - ReferencePaginated: { - type: 'object', - properties: { - next_page: { - type: 'string', - deprecated: true, - nullable: true, - }, - next: { - type: 'string', - nullable: true, - }, - data: { - type: 'array', - items: { - $ref: '#/components/schemas/Reference', - }, - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - required: ['data'], - }, - ReferenceResult: { - type: 'object', - properties: { - data: { - $ref: '#/components/schemas/Reference', - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - required: ['data'], - }, - RequestTimedOutResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 408, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Request timed out', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - RoleTypeEnum: { - type: 'object', - properties: { - value: { - type: 'string', - enum: [ - 'admin', - 'viewer', - 'editor', - 'basic', - 'guest', - 'unassigned', - 'restricted', - 'unmapped_value', - null, - ], - 'x-speakeasy-unknown-values': 'allow', - nullable: true, - }, - source_value: { - oneOf: [ { type: 'string', - }, - { - type: 'number', - }, - { - type: 'boolean', - }, - { - type: 'object', + format: 'binary', }, { type: 'array', - items: {}, - }, - ], - nullable: true, - }, - }, - }, - Task: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'Unique identifier', - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - remote_id: { - type: 'string', - description: "Provider's unique identifier", - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - employee_id: { - type: 'string', - description: 'The employee ID associated with this task', - example: 'cx280928937', - nullable: true, - }, - name: { - type: 'string', - description: 'The name of the task', - example: 'Complete onboarding documents', - nullable: true, - }, - description: { - type: 'string', - description: 'The description of the task', - example: 'Please complete all required onboarding documents in the employee portal', - nullable: true, - }, - type: { - description: 'The type of the task', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TaskTypeEnum', + items: { + type: 'integer', + format: 'int32', + minimum: 0, + maximum: 255, + }, }, - ], - }, - status: { - description: 'The status of the task', - nullable: true, - allOf: [ { - $ref: '#/components/schemas/TaskStatusEnum', + type: 'string', + format: 'byte', }, ], - }, - due_date: { - type: 'string', - description: 'The due date of the task', - example: '2024-03-20T23:59:59.000Z', - format: 'date-time', + additionalProperties: true, nullable: true, }, - completion_date: { - type: 'string', - description: 'The completion date of the task', - example: '2024-03-19T15:30:00.000Z', - format: 'date-time', + response: { + type: 'object', + additionalProperties: true, nullable: true, }, - assigned_by_employee_id: { + }, + required: ['method', 'url'], + }, + Reason: { + type: 'object', + properties: { + id: { type: 'string', - description: 'The ID of the employee who assigned this task', - example: 'cx280928938', + description: 'Unique identifier', + example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', nullable: true, }, - assigned_by_employee_name: { + remote_id: { type: 'string', - description: 'The name of the employee who assigned this task', - example: 'John Smith', + description: "Provider's unique identifier", + example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', nullable: true, }, - link_to_task: { + name: { type: 'string', - description: 'Link to the task in the provider system', - example: 'https://provider.com/tasks/123', - nullable: true, - }, - extracted_links: { - description: 'List of extracted links from the task', - example: ['https://provider.com/docs/1', 'https://provider.com/forms/2'], nullable: true, - type: 'array', - items: { - type: 'string', - }, }, - next_task_id: { + }, + }, + Reference: { + type: 'object', + properties: { + id: { type: 'string', - description: 'ID of the next task in sequence', - example: 'cx280928939', + description: 'The reference id', + example: '1687-3', nullable: true, }, - parent_process_name: { + remote_id: { type: 'string', - description: 'Name of the parent process of this task', - example: 'Onboarding Tasks', - nullable: true, - }, - comments: { - description: 'The comments associated with this task', - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TaskCommentApiModel', - }, - }, - attachments: { - description: 'The documents attached to this task', + description: "Provider's unique identifier", + example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/File', - }, }, - created_at: { + name: { type: 'string', - description: 'The creation date of this task', - example: '2024-03-15T10:00:00.000Z', - format: 'date-time', + description: 'The reference name', + example: '1687-4', nullable: true, }, - updated_at: { - type: 'string', - description: 'The last updated date of this task', - example: '2024-03-19T15:30:00.000Z', - format: 'date-time', + active: { + description: 'The reference status', + example: true, + oneOf: [ + { + type: 'boolean', + }, + { + type: 'string', + enum: ['true', 'false'], + }, + ], nullable: true, }, }, }, - TaskCommentApiModel: { + ReferencePaginated: { type: 'object', properties: { - author_employee_id: { - type: 'string', - description: 'The Employee ID of the author of the comment', - nullable: true, - }, - comment: { + next_page: { type: 'string', - description: 'The text of the comment', - example: 'Approved based on in-person assessment', + deprecated: true, nullable: true, }, - created_at: { + next: { type: 'string', - description: 'The creation date of this comment', - example: '2024-03-15T10:00:00.000Z', - format: 'date-time', nullable: true, }, - }, - }, - TaskResult: { - type: 'object', - properties: { data: { - nullable: true, type: 'array', items: { - $ref: '#/components/schemas/Task', + $ref: '#/components/schemas/Reference', }, }, raw: { @@ -23242,20 +21865,13 @@ export const hrisSpec = { }, }, }, + required: ['data'], }, - TasksPaginated: { + ReferenceResult: { type: 'object', properties: { - next: { - type: 'string', - nullable: true, - }, data: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/Task', - }, + $ref: '#/components/schemas/Reference', }, raw: { nullable: true, @@ -23265,59 +21881,46 @@ export const hrisSpec = { }, }, }, + required: ['data'], }, - TaskStatusEnum: { + RequestTimedOutResponse: { type: 'object', properties: { - value: { + statusCode: { + type: 'number', + description: 'HTTP status code', + example: 408, + }, + message: { type: 'string', - enum: [ - 'open', - 'in_progress', - 'blocked', - 'completed', - 'cancelled', - 'unmapped_value', - null, - ], - description: - 'The unified value for the status of the task. If the provider does not specify this status, the value will be set to UnmappedValue', - example: 'open', - 'x-speakeasy-unknown-values': 'allow', - nullable: true, + description: 'Error message', + example: 'Request timed out', }, - source_value: { - oneOf: [ - { - type: 'string', - }, - { - type: 'number', - }, - { - type: 'boolean', - }, - { - type: 'object', - }, - { - type: 'array', - items: {}, - }, - ], - nullable: true, + timestamp: { + type: 'string', + description: 'Timestamp when the error occurred', + example: '2023-05-30T00:00:00.000Z', + format: 'date-time', }, }, + required: ['statusCode', 'message', 'timestamp'], }, - TaskTypeEnum: { + RoleTypeEnum: { type: 'object', properties: { value: { type: 'string', - enum: ['action', 'review', 'acknowledgment', 'edit', 'approve', 'unmapped_value', null], - description: - 'The unified value for the type of the task. If the provider does not specify this type, the value will be set to UnmappedValue', - example: 'action', + enum: [ + 'admin', + 'viewer', + 'editor', + 'basic', + 'guest', + 'unassigned', + 'restricted', + 'unmapped_value', + null, + ], 'x-speakeasy-unknown-values': 'allow', nullable: true, }, @@ -23349,7 +21952,7 @@ export const hrisSpec = { properties: { value: { type: 'string', - enum: ['team', 'unmapped_value', null], + enum: ['team', null], example: 'team', 'x-speakeasy-unknown-values': 'allow', nullable: true, @@ -23620,18 +22223,16 @@ export const hrisSpec = { }, start_date: { type: 'string', - description: - 'The start date of the time off request (ISO8601 date-time without timezone)', - example: '2021-01-01T01:01:01.000', - format: 'datetime-local', + description: 'The start date of the time off request', + example: '2021-01-01T01:01:01.000Z', + format: 'date-time', nullable: true, }, end_date: { type: 'string', - description: - 'Inclusive end date of the time off request (ISO8601 date-time without timezone). The time off includes this day', - example: '2021-01-01T01:01:01.000', - format: 'datetime-local', + description: 'The end date of the time off request', + example: '2021-01-01T01:01:01.000Z', + format: 'date-time', nullable: true, }, start_half_day: { @@ -23857,17 +22458,7 @@ export const hrisSpec = { properties: { value: { type: 'string', - enum: [ - 'minutes', - 'hours', - 'days', - 'weeks', - 'months', - 'years', - 'unknown', - 'unmapped_value', - null, - ], + enum: ['minutes', 'hours', 'days', 'weeks', 'months', 'years', 'unknown', null], description: 'The unified value for the duration unit. If the provider does not specify this unit, the value will be set to unknown', example: 'hours', @@ -24038,28 +22629,16 @@ export const hrisSpec = { value: { type: 'string', enum: [ - 'sick', - 'unmapped_value', - 'vacation', - 'long_term_disability', - 'short_term_disability', - 'absent', - 'comp_time', - 'training', - 'annual_leave', - 'leave_of_absence', - 'break', - 'child_care_leave', - 'maternity_leave', - 'jury_duty', - 'sabbatical', - 'accident', 'paid', 'unpaid', 'holiday', + 'vacation', + 'sick', 'personal', 'in_lieu', 'bereavement', + 'jury_duty', + 'unmapped_value', null, ], description: @@ -24118,7 +22697,6 @@ export const hrisSpec = { 'rejected', 'pending', 'deleted', - 'draft', 'unmapped_value', null, ], @@ -24168,14 +22746,9 @@ export const hrisSpec = { 'child_care_leave', 'maternity_leave', 'jury_duty', + 'bereavement_leave', 'sabbatical', 'accident', - 'paid', - 'unpaid', - 'holiday', - 'personal', - 'in_lieu', - 'bereavement', null, ], 'x-speakeasy-unknown-values': 'allow', @@ -24448,13 +23021,13 @@ export const hrisSpec = { }, valid_from: { type: 'string', - example: '2021-01-01T00:00:00.000Z', + example: '2021-01-01T00:00.000Z', format: 'date-time', nullable: true, }, valid_to: { type: 'string', - example: '2021-01-01T00:00:00.000Z', + example: '2021-01-01T00:00.000Z', format: 'date-time', nullable: true, }, @@ -24523,71 +23096,7 @@ export const hrisSpec = { properties: { value: { type: 'string', - enum: [ - 'visa', - 'passport', - 'driver_license', - 'birth_certificate', - 'other', - 'unmapped_value', - null, - ], - 'x-speakeasy-unknown-values': 'allow', - nullable: true, - }, - source_value: { - oneOf: [ - { - type: 'string', - }, - { - type: 'number', - }, - { - type: 'boolean', - }, - { - type: 'object', - }, - { - type: 'array', - items: {}, - }, - ], - nullable: true, - }, - }, - }, - WorkTimeApiModel: { - type: 'object', - properties: { - duration: { - type: 'string', - description: 'The work time duration in ISO 8601 duration format', - example: 'P0Y0M0DT8H0M0S', - format: 'duration', - nullable: true, - }, - duration_unit: { - description: 'The duration unit of the work time', - example: 'month', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/WorkTimeUnitEnum', - }, - ], - }, - }, - }, - WorkTimeUnitEnum: { - type: 'object', - properties: { - value: { - type: 'string', - enum: ['day', 'week', 'month', 'year', 'unmapped_value', null], - description: 'The unified value for the period.', - example: 'month', + enum: ['visa', 'passport', 'driver_license', 'birth_certificate', 'other', null], 'x-speakeasy-unknown-values': 'allow', nullable: true, }, diff --git a/src/openapi/generated/iam.ts b/src/openapi/generated/iam.ts index 35269a4..9ae9ec4 100644 --- a/src/openapi/generated/iam.ts +++ b/src/openapi/generated/iam.ts @@ -3987,7 +3987,7 @@ export const iamSpec = { items: {}, }, ], - example: 'application/pdf', + example: 'abc', nullable: true, }, }, @@ -4981,6 +4981,10 @@ export const iamSpec = { { type: 'object', }, + { + type: 'string', + format: 'binary', + }, { type: 'array', items: { @@ -4990,24 +4994,17 @@ export const iamSpec = { maximum: 255, }, }, + { + type: 'string', + format: 'byte', + }, ], additionalProperties: true, nullable: true, }, response: { - oneOf: [ - { - type: 'object', - additionalProperties: true, - }, - { - type: 'array', - items: {}, - }, - { - type: 'string', - }, - ], + type: 'object', + additionalProperties: true, nullable: true, }, }, diff --git a/src/openapi/generated/lms.ts b/src/openapi/generated/lms.ts index c384c4b..5fe6920 100644 --- a/src/openapi/generated/lms.ts +++ b/src/openapi/generated/lms.ts @@ -6466,7 +6466,7 @@ export const lmsSpec = { properties: { value: { type: 'string', - enum: ['pending', 'in_progress', 'completed', 'unmapped_value', null], + enum: ['pending', 'in_progress', 'completed', null], example: 'in_progress', 'x-speakeasy-unknown-values': 'allow', nullable: true, @@ -6682,7 +6682,7 @@ export const lmsSpec = { properties: { value: { type: 'string', - enum: ['primary', 'secondary', 'tertiary', 'unmapped_value', null], + enum: ['primary', 'secondary', 'tertiary', null], 'x-speakeasy-unknown-values': 'allow', nullable: true, }, @@ -7195,7 +7195,7 @@ export const lmsSpec = { properties: { value: { type: 'string', - enum: ['video', 'quiz', 'document', 'audio', 'article', 'unmapped_value', null], + enum: ['video', 'quiz', 'document', 'audio', 'article', null], 'x-speakeasy-unknown-values': 'allow', nullable: true, }, @@ -7575,6 +7575,15 @@ export const lmsSpec = { }, ], }, + proficiency: { + description: 'The user proficiency level of the skill ranked out of 5', + nullable: true, + allOf: [ + { + $ref: '#/components/schemas/SkillProficiencyLevelEnum', + }, + ], + }, language: { description: 'The language associated with this skill', nullable: true, @@ -8075,7 +8084,6 @@ export const lmsSpec = { 'zh_SG', 'zh_TW', 'zu_ZA', - 'unmapped_value', null, ], description: 'The Locale Code of the language', @@ -8111,7 +8119,7 @@ export const lmsSpec = { properties: { value: { type: 'string', - enum: ['content', 'course', 'collection', 'unmapped_value', null], + enum: ['content', 'course', 'collection', null], 'x-speakeasy-unknown-values': 'allow', nullable: true, }, @@ -8758,15 +8766,6 @@ export const lmsSpec = { }, ], }, - tags: { - description: 'The tags associated with the localization details', - example: ['Sales Techniques', 'Customer Service'], - nullable: true, - type: 'array', - items: { - type: 'string', - }, - }, }, }, NotFoundResponse: { @@ -8886,6 +8885,10 @@ export const lmsSpec = { { type: 'object', }, + { + type: 'string', + format: 'binary', + }, { type: 'array', items: { @@ -8895,24 +8898,17 @@ export const lmsSpec = { maximum: 255, }, }, + { + type: 'string', + format: 'byte', + }, ], additionalProperties: true, nullable: true, }, response: { - oneOf: [ - { - type: 'object', - additionalProperties: true, - }, - { - type: 'array', - items: {}, - }, - { - type: 'string', - }, - ], + type: 'object', + additionalProperties: true, nullable: true, }, }, @@ -8945,7 +8941,7 @@ export const lmsSpec = { properties: { value: { type: 'string', - enum: ['Pass', 'Fail', 'unmapped_value', null], + enum: ['Pass', 'Fail', null], 'x-speakeasy-unknown-values': 'allow', nullable: true, }, @@ -8977,7 +8973,39 @@ export const lmsSpec = { properties: { value: { type: 'string', - enum: ['primary', 'secondary', 'tertiary', 'unmapped_value', null], + enum: ['primary', 'secondary', 'tertiary', null], + 'x-speakeasy-unknown-values': 'allow', + nullable: true, + }, + source_value: { + oneOf: [ + { + type: 'string', + }, + { + type: 'number', + }, + { + type: 'boolean', + }, + { + type: 'object', + }, + { + type: 'array', + items: {}, + }, + ], + nullable: true, + }, + }, + }, + SkillProficiencyLevelEnum: { + type: 'object', + properties: { + value: { + type: 'string', + enum: ['1', '2', '3', '4', '5', null], 'x-speakeasy-unknown-values': 'allow', nullable: true, }, @@ -9056,6 +9084,15 @@ export const lmsSpec = { }, ], }, + proficiency: { + description: 'The user proficiency level of the skill ranked out of 5', + nullable: true, + allOf: [ + { + $ref: '#/components/schemas/SkillProficiencyLevelEnum', + }, + ], + }, language: { description: 'The language associated with this skill', nullable: true, diff --git a/src/openapi/generated/marketing.ts b/src/openapi/generated/marketing.ts index 339dc7c..5235271 100644 --- a/src/openapi/generated/marketing.ts +++ b/src/openapi/generated/marketing.ts @@ -6170,7 +6170,7 @@ export const marketingSpec = { properties: { value: { type: 'string', - enum: ['draft', 'live', 'archived', 'unmapped_value', null], + enum: ['draft', 'live', 'archived', null], description: 'The Status of the content blocks.', example: 'live', 'x-speakeasy-unknown-values': 'allow', @@ -6206,7 +6206,7 @@ export const marketingSpec = { properties: { value: { type: 'string', - enum: ['text', 'html', 'image', 'code-snippet', 'unmapped_value', null], + enum: ['text', 'html', 'image', 'code-snippet', null], description: 'The type of the content blocks.', example: 'html', 'x-speakeasy-unknown-values': 'allow', @@ -7211,6 +7211,10 @@ export const marketingSpec = { { type: 'object', }, + { + type: 'string', + format: 'binary', + }, { type: 'array', items: { @@ -7220,24 +7224,17 @@ export const marketingSpec = { maximum: 255, }, }, + { + type: 'string', + format: 'byte', + }, ], additionalProperties: true, nullable: true, }, response: { - oneOf: [ - { - type: 'object', - additionalProperties: true, - }, - { - type: 'array', - items: {}, - }, - { - type: 'string', - }, - ], + type: 'object', + additionalProperties: true, nullable: true, }, }, @@ -7270,15 +7267,7 @@ export const marketingSpec = { properties: { value: { type: 'string', - enum: [ - 'immediate', - 'scheduled', - 'recurring', - 'custom', - 'triggered', - 'unmapped_value', - null, - ], + enum: ['immediate', 'scheduled', 'recurring', 'custom', 'triggered', null], description: 'The schedule type of the campaign.', example: 'immediate', 'x-speakeasy-unknown-values': 'allow', @@ -7457,7 +7446,7 @@ export const marketingSpec = { properties: { value: { type: 'string', - enum: ['draft', 'archived', 'live', 'unmapped_value', null], + enum: ['draft', 'archived', 'live', null], description: 'The Status of the campaign.', example: 'email', 'x-speakeasy-unknown-values': 'allow', diff --git a/src/openapi/generated/stackone.ts b/src/openapi/generated/stackone.ts index 8d51164..45e7fcf 100644 --- a/src/openapi/generated/stackone.ts +++ b/src/openapi/generated/stackone.ts @@ -1184,9 +1184,180 @@ export const stackoneSpec = { }, }, }, - '/requests/logs/steps': { + '/requests/logs/{id}': { get: { - operationId: 'stackone_list_step_logs', + operationId: 'stackone_get_log', + parameters: [ + { + name: 'id', + required: true, + in: 'path', + schema: { + type: 'string', + }, + }, + { + name: 'include', + required: false, + in: 'query', + description: + 'The include parameter allows you to include additional data in the response.', + 'x-speakeasy-unknown-values': 'allow', + schema: { + nullable: true, + example: 'step_logs', + enum: ['step_logs', 'advanced_logs', null], + type: 'string', + }, + }, + ], + responses: { + '200': { + description: 'The log was retrieved.', + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/UnifiedLogResult', + }, + }, + }, + }, + '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', + }, + }, + }, + }, + '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 a Log', + tags: ['Request Logs'], + 'x-speakeasy-name-override': 'get_log', + 'x-speakeasy-retries': { + statusCodes: [429, 408], + strategy: 'backoff', + }, + }, + }, + '/requests/logs': { + get: { + operationId: 'stackone_list_logs', parameters: [ { name: 'order_by', @@ -1198,8 +1369,8 @@ export const stackoneSpec = { additionalProperties: false, nullable: true, example: 'created_at', - type: 'string', enum: ['provider', 'service', 'status', 'eventDatetime', 'duration', null], + type: 'string', }, }, { @@ -1212,8 +1383,8 @@ export const stackoneSpec = { additionalProperties: false, nullable: true, example: 'asc', - type: 'string', enum: ['asc', 'desc', null], + type: 'string', }, }, { @@ -1237,6 +1408,20 @@ export const stackoneSpec = { type: 'string', }, }, + { + name: 'include', + required: false, + in: 'query', + description: + 'The include parameter allows you to include additional data in the response.', + 'x-speakeasy-unknown-values': 'allow', + schema: { + nullable: true, + example: 'step_logs', + enum: ['step_logs', null], + type: 'string', + }, + }, { name: 'filter', required: false, @@ -1273,6 +1458,25 @@ export const stackoneSpec = { nullable: true, additionalProperties: false, }, + source_types: { + description: 'A comma-separated list of source types to filter the results by.', + example: 'DASHBOARD,SYNTHETIC_WEBHOOK', + type: 'string', + nullable: true, + additionalProperties: false, + }, + source_values: { + description: 'A comma-separated list of source values to filter the results by.', + type: 'string', + nullable: true, + additionalProperties: false, + }, + source_ids: { + description: 'A comma-separated list of source IDs to filter the results by.', + type: 'string', + nullable: true, + additionalProperties: false, + }, http_methods: { description: 'A comma-separated list of HTTP methods to filter the results by.', example: 'GET,POST', @@ -1330,197 +1534,42 @@ export const stackoneSpec = { nullable: true, additionalProperties: false, }, - success: { - description: 'A boolean value to filter the results by success or failure.', - example: true, - type: 'boolean', - nullable: true, - additionalProperties: false, - }, - }, - nullable: true, - type: 'object', - }, - }, - ], - responses: { - '200': { - description: 'The list of step logs was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/StepLogsPaginated', - }, - }, - }, - }, - '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', - }, - }, - }, - }, - '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', + success: { + description: 'A boolean value to filter the results by success or failure.', + example: true, + type: 'boolean', + nullable: true, + additionalProperties: false, }, - }, - }, - }, - '502': { - description: 'Bad gateway error.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/BadGatewayResponse', + order_by: { + description: 'The field to order the results by.', + example: 'created_at', + type: 'string', + nullable: true, + enum: ['provider', 'service', 'status', 'eventDatetime', 'duration'], + additionalProperties: false, + }, + order_direction: { + description: 'The direction to order the results by.', + example: 'asc', + type: 'string', + nullable: true, + enum: ['asc', 'desc'], + additionalProperties: false, }, }, - }, - }, - }, - security: [ - { - basic: [], - }, - ], - summary: 'List Step Logs', - tags: ['Request Logs'], - 'x-speakeasy-name-override': 'list_step_logs', - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/requests/logs/{id}': { - get: { - operationId: 'stackone_get_log', - parameters: [ - { - name: 'id', - required: true, - in: 'path', - schema: { - type: 'string', - }, - }, - { - name: 'include', - required: false, - in: 'query', - description: - 'The include parameter allows you to include additional data in the response.', - 'x-speakeasy-unknown-values': 'allow', - schema: { nullable: true, - example: 'step_logs', - type: 'string', - enum: ['step_logs', 'advanced_logs', null], + type: 'object', }, }, ], responses: { '200': { - description: 'The log was retrieved.', + description: 'The list of logs was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/UnifiedLogResult', + $ref: '#/components/schemas/UnifiedLogsPaginated', }, }, }, @@ -1649,18 +1698,18 @@ export const stackoneSpec = { basic: [], }, ], - summary: 'Get a Log', + summary: 'List Logs', tags: ['Request Logs'], - 'x-speakeasy-name-override': 'get_log', + 'x-speakeasy-name-override': 'list_logs', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', }, }, }, - '/requests/logs': { + '/requests/logs/steps': { get: { - operationId: 'stackone_list_logs', + operationId: 'stackone_list_step_logs', parameters: [ { name: 'order_by', @@ -1672,8 +1721,8 @@ export const stackoneSpec = { additionalProperties: false, nullable: true, example: 'created_at', - type: 'string', enum: ['provider', 'service', 'status', 'eventDatetime', 'duration', null], + type: 'string', }, }, { @@ -1686,8 +1735,8 @@ export const stackoneSpec = { additionalProperties: false, nullable: true, example: 'asc', - type: 'string', enum: ['asc', 'desc', null], + type: 'string', }, }, { @@ -1721,8 +1770,8 @@ export const stackoneSpec = { schema: { nullable: true, example: 'step_logs', + enum: ['step_logs', 'advanced_logs', null], type: 'string', - enum: ['step_logs', null], }, }, { @@ -1761,25 +1810,6 @@ export const stackoneSpec = { nullable: true, additionalProperties: false, }, - source_types: { - description: 'A comma-separated list of source types to filter the results by.', - example: 'DASHBOARD,SYNTHETIC_WEBHOOK', - type: 'string', - nullable: true, - additionalProperties: false, - }, - source_values: { - description: 'A comma-separated list of source values to filter the results by.', - type: 'string', - nullable: true, - additionalProperties: false, - }, - source_ids: { - description: 'A comma-separated list of source IDs to filter the results by.', - type: 'string', - nullable: true, - additionalProperties: false, - }, http_methods: { description: 'A comma-separated list of HTTP methods to filter the results by.', example: 'GET,POST', @@ -1849,7 +1879,7 @@ export const stackoneSpec = { example: 'created_at', type: 'string', nullable: true, - enum: ['provider', 'service', 'status', 'eventDatetime', 'duration', null], + enum: ['provider', 'service', 'status', 'eventDatetime', 'duration'], additionalProperties: false, }, order_direction: { @@ -1857,7 +1887,7 @@ export const stackoneSpec = { example: 'asc', type: 'string', nullable: true, - enum: ['asc', 'desc', null], + enum: ['asc', 'desc'], additionalProperties: false, }, }, @@ -1868,11 +1898,11 @@ export const stackoneSpec = { ], responses: { '200': { - description: 'The list of logs was retrieved.', + description: 'The list of step logs was retrieved.', content: { 'application/json': { schema: { - $ref: '#/components/schemas/UnifiedLogsPaginated', + $ref: '#/components/schemas/StepLogsPaginated', }, }, }, @@ -2001,9 +2031,9 @@ export const stackoneSpec = { basic: [], }, ], - summary: 'List Logs', + summary: 'List Step Logs', tags: ['Request Logs'], - 'x-speakeasy-name-override': 'list_logs', + 'x-speakeasy-name-override': 'list_step_logs', 'x-speakeasy-retries': { statusCodes: [429, 408], strategy: 'backoff', @@ -2835,7 +2865,6 @@ export const stackoneSpec = { 'documents', 'ticketing', 'screening', - 'messaging', ], example: 'hris', description: 'The provider service category', @@ -2965,7 +2994,6 @@ export const stackoneSpec = { 'documents', 'ticketing', 'screening', - 'messaging', ], 'x-speakeasy-unknown-values': 'allow', nullable: true, @@ -2983,7 +3011,6 @@ export const stackoneSpec = { 'documents', 'ticketing', 'screening', - 'messaging', null, ], }, @@ -3064,7 +3091,6 @@ export const stackoneSpec = { 'documents', 'ticketing', 'screening', - 'messaging', ], 'x-speakeasy-unknown-values': 'allow', nullable: true, @@ -3082,7 +3108,6 @@ export const stackoneSpec = { 'documents', 'ticketing', 'screening', - 'messaging', null, ], }, @@ -3092,11 +3117,6 @@ export const stackoneSpec = { description: 'The provider to connect to', nullable: true, }, - provider_version: { - type: 'string', - description: 'The provider version to connect to', - nullable: true, - }, origin_owner_id: { type: 'string', description: 'The origin owner identifier', @@ -3169,7 +3189,6 @@ export const stackoneSpec = { 'documents', 'ticketing', 'screening', - 'messaging', ], 'x-speakeasy-unknown-values': 'allow', nullable: true, @@ -3187,7 +3206,6 @@ export const stackoneSpec = { 'documents', 'ticketing', 'screening', - 'messaging', null, ], }, @@ -3401,7 +3419,6 @@ export const stackoneSpec = { 'documents', 'ticketing', 'screening', - 'messaging', ], 'x-speakeasy-unknown-values': 'allow', }, @@ -3582,209 +3599,70 @@ export const stackoneSpec = { 'x-speakeasy-unknown-values': 'allow', nullable: true, }, - path: { - type: 'string', - description: 'The path of the request including any query paramters', - example: '/employees/directory', - nullable: true, - }, - headers: { - type: 'object', - description: 'The headers to send in the request', - additionalProperties: true, - example: { - 'Content-Type': 'application/json', - }, - nullable: true, - }, - body: { - type: 'object', - description: 'The body of the request', - additionalProperties: true, - nullable: true, - }, - }, - }, - RequestTimedOutResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 408, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Request timed out', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - StatusReason: { - type: 'object', - properties: { - code: { - type: 'string', - nullable: true, - }, - description: { - type: 'string', - nullable: true, - }, - timestamp: { - format: 'date-time', - type: 'string', - }, - }, - required: ['timestamp'], - }, - StepLog: { - type: 'object', - properties: { - request_id: { - type: 'string', - description: 'The request ID', - example: 'adbf752f-6457-4ddd-89b3-98ae2252b83b', - nullable: true, - }, - start_time: { - type: 'string', - description: 'The request start time ISO8601 date string', - example: '2021-01-01T00:00:00Z', - format: 'date-time', - nullable: true, - }, - end_time: { - type: 'string', - description: 'The request end time ISO8601 date string', - example: '2021-01-01T00:00:00Z', - format: 'date-time', - nullable: true, - }, - account_id: { - type: 'string', - description: 'The account ID of the request', - example: '45355976281015164504', - nullable: true, - }, - project_id: { - type: 'string', - description: 'The project ID of the request', - example: 'dev-project-68574', - nullable: true, - }, - http_method: { - type: 'string', - description: 'The requested HTTP method', - example: 'get', - nullable: true, - }, - path: { - type: 'string', - description: 'The requested path', - example: '/unified/hris/employees', - nullable: true, - }, - url: { - type: 'string', - description: 'The requested URL', - example: 'https://api.stackone.com/unified/hris/employees?raw=false', - nullable: true, - }, - status: { - type: 'number', - description: 'The requests response status code', - example: 200, - nullable: true, - }, - duration: { - type: 'number', - description: 'The request duration in milliseconds', - example: 356, - nullable: true, - }, - success: { - type: 'boolean', - description: 'The request success flag', - example: true, - nullable: true, - }, - provider: { - type: 'string', - description: 'The requested provider', - example: 'planday', - nullable: true, - }, - service: { + path: { type: 'string', - description: 'The requested service', - example: 'hris', + description: 'The path of the request including any query paramters', + example: '/employees/directory', nullable: true, }, - resource: { - type: 'string', - description: 'The requested resource', - example: 'employees', + headers: { + type: 'object', + description: 'The headers to send in the request', + additionalProperties: true, + example: { + 'Content-Type': 'application/json', + }, nullable: true, }, - child_resource: { - type: 'string', - description: 'The requested child resource', - example: 'time-off', + body: { + type: 'object', + description: 'The body of the request', + additionalProperties: true, nullable: true, }, - sub_resource: { - type: 'string', - description: 'The requested sub resource', - example: 'documents', - nullable: true, + }, + }, + RequestTimedOutResponse: { + type: 'object', + properties: { + statusCode: { + type: 'number', + description: 'HTTP status code', + example: 408, }, - action: { + message: { type: 'string', - description: 'The requested action', - example: 'download', - nullable: true, + description: 'Error message', + example: 'Request timed out', }, - is_worker: { - type: 'boolean', - description: 'The asynchronous worker flag', - example: false, - nullable: true, + timestamp: { + type: 'string', + description: 'Timestamp when the error occurred', + example: '2023-05-30T00:00:00.000Z', + format: 'date-time', }, - id: { + }, + required: ['statusCode', 'message', 'timestamp'], + }, + StatusReason: { + type: 'object', + properties: { + code: { type: 'string', - description: 'The provider request ID', - example: 'adbf752f-6457-4ddd-89b3-98ae2252b83b', nullable: true, }, - request: { - description: 'The advanced log request data', + description: { + type: 'string', nullable: true, - allOf: [ - { - $ref: '#/components/schemas/AdvancedLogRequestData', - }, - ], }, - response: { - description: 'The advanced log response data', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/AdvancedLogResponseData', - }, - ], + timestamp: { + format: 'date-time', + type: 'string', }, }, + required: ['timestamp'], }, - StepLogPartial: { + StepLogsApiModel: { type: 'object', properties: { request_id: { @@ -3903,6 +3781,24 @@ export const stackoneSpec = { example: 'adbf752f-6457-4ddd-89b3-98ae2252b83b', nullable: true, }, + request: { + description: 'The advanced log request data', + nullable: true, + allOf: [ + { + $ref: '#/components/schemas/AdvancedLogRequestData', + }, + ], + }, + response: { + description: 'The advanced log response data', + nullable: true, + allOf: [ + { + $ref: '#/components/schemas/AdvancedLogResponseData', + }, + ], + }, }, }, StepLogsPaginated: { @@ -3915,7 +3811,7 @@ export const stackoneSpec = { data: { type: 'array', items: { - $ref: '#/components/schemas/StepLogPartial', + $ref: '#/components/schemas/StepLogsApiModel', }, }, }, @@ -4157,12 +4053,13 @@ export const stackoneSpec = { ], }, step_requests: { - type: 'array', description: 'The list of provider requests', + example: 'Account Tester', + nullable: true, + type: 'array', items: { - $ref: '#/components/schemas/StepLog', + type: 'string', }, - nullable: true, }, }, }, @@ -4176,160 +4073,12 @@ export const stackoneSpec = { data: { type: 'array', items: { - $ref: '#/components/schemas/UnifiedLogsPartial', + $ref: '#/components/schemas/UnifiedLogs', }, }, }, required: ['data'], }, - UnifiedLogsPartial: { - type: 'object', - properties: { - request_id: { - type: 'string', - description: 'The request ID', - example: 'adbf752f-6457-4ddd-89b3-98ae2252b83b', - nullable: true, - }, - event_datetime: { - type: 'string', - description: 'The event ISO8601 date string', - example: '2021-01-01T00:00:00Z', - format: 'date-time', - nullable: true, - }, - start_time: { - type: 'string', - description: 'The request start time ISO8601 date string', - example: '2021-01-01T00:00:00Z', - format: 'date-time', - nullable: true, - }, - end_time: { - type: 'string', - description: 'The request end time ISO8601 date string', - example: '2021-01-01T00:00:00Z', - format: 'date-time', - nullable: true, - }, - account_id: { - type: 'string', - description: 'The account ID of the request', - example: '45355976281015164504', - nullable: true, - }, - project_id: { - type: 'string', - description: 'The project ID of the request', - example: 'dev-project-68574', - nullable: true, - }, - http_method: { - type: 'string', - description: 'The requested HTTP method', - example: 'get', - nullable: true, - }, - path: { - type: 'string', - description: 'The requested path', - example: '/unified/hris/employees', - nullable: true, - }, - url: { - type: 'string', - description: 'The requested URL', - example: 'https://api.stackone.com/unified/hris/employees?raw=false', - nullable: true, - }, - status: { - type: 'number', - description: 'The requests response status code', - example: 200, - nullable: true, - }, - duration: { - type: 'number', - description: 'The request duration in milliseconds', - example: 356, - nullable: true, - }, - success: { - type: 'boolean', - description: 'The request success flag', - example: true, - nullable: true, - }, - provider: { - type: 'string', - description: 'The requested provider', - example: 'planday', - nullable: true, - }, - service: { - type: 'string', - description: 'The requested service', - example: 'hris', - nullable: true, - }, - resource: { - type: 'string', - description: 'The requested resource', - example: 'employees', - nullable: true, - }, - child_resource: { - type: 'string', - description: 'The requested child resource', - example: 'time-off', - nullable: true, - }, - sub_resource: { - type: 'string', - description: 'The requested sub resource', - example: 'documents', - nullable: true, - }, - action: { - type: 'string', - description: 'The requested action', - example: 'download', - nullable: true, - }, - is_worker: { - type: 'boolean', - description: 'The asynchronous worker flag', - example: false, - nullable: true, - }, - source_type: { - type: 'string', - description: 'The requests source type', - example: 'DASHBOARD', - nullable: true, - }, - source_value: { - type: 'string', - description: 'The requests source value', - example: 'ACCOUNT_TESTER', - nullable: true, - }, - source_id: { - type: 'string', - description: 'The requests source ID', - example: '1234567890', - nullable: true, - }, - step_requests: { - type: 'array', - description: 'The list of provider requests', - items: { - $ref: '#/components/schemas/StepLogPartial', - }, - nullable: true, - }, - }, - }, UnprocessableEntityResponse: { type: 'object', properties: { diff --git a/src/openapi/generated/ticketing.ts b/src/openapi/generated/ticketing.ts index 7e71820..0e93350 100644 --- a/src/openapi/generated/ticketing.ts +++ b/src/openapi/generated/ticketing.ts @@ -2,4206 +2,7 @@ // DO NOT EDIT THIS FILE DIRECTLY export const ticketingSpec = { openapi: '3.1.0', - paths: { - '/unified/ticketing/tickets': { - get: { - operationId: 'ticketing_list_tickets', - 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,type,ticket_number,title,creator_id,remote_creator_id,reporters,assignees,content,parent_id,remote_parent_id,closed_at,ticket_url,status,priority,tags,collections,organization,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', - 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: { - nullable: true, - example: '2020-01-01T00:00:00.000Z', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The list of tickets was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingTicketsPaginated', - }, - }, - }, - }, - '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 Tickets', - tags: ['Tickets'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'list_tickets', - 'x-speakeasy-pagination': { - type: 'cursor', - inputs: [ - { - name: 'next', - in: 'parameters', - type: 'cursor', - }, - ], - outputs: { - nextCursor: '$.next', - }, - }, - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - post: { - operationId: 'ticketing_create_ticket', - 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/TicketingTicketCreateRequestDto', - }, - }, - }, - }, - responses: { - '201': { - description: 'Record 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 Ticket', - tags: ['Tickets'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'create_ticket', - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/tickets/{id}': { - get: { - operationId: 'ticketing_get_ticket', - 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,type,ticket_number,title,creator_id,remote_creator_id,reporters,assignees,content,parent_id,remote_parent_id,closed_at,ticket_url,status,priority,tags,collections,organization,created_at,updated_at', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The ticket with the given identifier was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingTicketResult', - }, - }, - }, - }, - '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 Ticket', - tags: ['Tickets'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'get_ticket', - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - patch: { - operationId: 'ticketing_update_ticket', - 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/TicketingTicketUpdateRequestDto', - }, - }, - }, - }, - 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 Ticket', - tags: ['Tickets'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'update_ticket', - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/users': { - get: { - operationId: 'ticketing_list_users', - 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,type,name,primary_email,primary_phone,username,active,first_name,last_name,customer_account_reference,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', - 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: { - nullable: true, - example: '2020-01-01T00:00:00.000Z', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The list of users was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingUsersPaginated', - }, - }, - }, - }, - '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 Users', - tags: ['Users'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'list_users', - 'x-speakeasy-pagination': { - type: 'cursor', - inputs: [ - { - name: 'next', - in: 'parameters', - type: 'cursor', - }, - ], - outputs: { - nextCursor: '$.next', - }, - }, - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/users/{id}': { - get: { - operationId: 'ticketing_get_user', - 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,type,name,primary_email,primary_phone,username,active,first_name,last_name,customer_account_reference,created_at,updated_at', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The user with the given identifier was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingUserResult', - }, - }, - }, - }, - '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 User', - tags: ['Users'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'get_user', - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/tickets/{id}/comments': { - get: { - operationId: 'ticketing_list_comments', - 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,ticket_id,remote_ticket_id,content,user_id,remote_user_id,internal,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', - 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: { - nullable: true, - example: '2020-01-01T00:00:00.000Z', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The list of comments was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingCommentsPaginated', - }, - }, - }, - }, - '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 Comments', - tags: ['Tickets', 'Comments'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'list_comments', - 'x-speakeasy-pagination': { - type: 'cursor', - inputs: [ - { - name: 'next', - in: 'parameters', - type: 'cursor', - }, - ], - outputs: { - nextCursor: '$.next', - }, - }, - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/tickets/{id}/comments/{subResourceId}': { - get: { - operationId: 'ticketing_get_comment', - 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: 'subResourceId', - 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,ticket_id,remote_ticket_id,content,user_id,remote_user_id,internal,created_at,updated_at', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The comment with the given identifier was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingCommentResult', - }, - }, - }, - }, - '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 Comment', - tags: ['Tickets', 'Comments'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'get_comment', - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/tickets/{id}/attachments/{subResourceId}/download': { - get: { - operationId: 'ticketing_download_ticketing_attachment', - 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: 'subResourceId', - required: true, - in: 'path', - schema: { - type: 'string', - }, - }, - { - name: 'format', - required: false, - in: 'query', - description: 'The format to download the file in', - schema: { - nullable: true, - example: 'base64', - type: 'string', - }, - }, - { - name: 'export_format', - required: false, - in: 'query', - description: 'The export format of the file', - schema: { - nullable: true, - example: 'text/plain', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: - 'The document related to the application with the given identifiers was retrieved.', - content: { - '*/*': { - schema: { - type: 'string', - format: 'binary', - }, - }, - }, - }, - '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: 'Download Attachment', - tags: ['Tickets', 'Attachments'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'download_ticketing_attachment', - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/tickets/{id}/attachments': { - get: { - operationId: 'ticketing_list_attachments', - 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,ticket_id,remote_ticket_id,user_id,remote_user_id,file_name,file_format,file_url,size,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', - 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: { - nullable: true, - example: '2020-01-01T00:00:00.000Z', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The list of attachments was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingAttachmentsPaginated', - }, - }, - }, - }, - '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 Attachments', - tags: ['Tickets', 'Attachments'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'list_attachments', - 'x-speakeasy-pagination': { - type: 'cursor', - inputs: [ - { - name: 'next', - in: 'parameters', - type: 'cursor', - }, - ], - outputs: { - nextCursor: '$.next', - }, - }, - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/tickets/{id}/attachments/{subResourceId}': { - get: { - operationId: 'ticketing_get_attachment', - 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: 'subResourceId', - 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,ticket_id,remote_ticket_id,user_id,remote_user_id,file_name,file_format,file_url,size,created_at,updated_at', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The attachment with the given identifier was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingAttachmentResult', - }, - }, - }, - }, - '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 Attachment', - tags: ['Tickets', 'Attachments'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'get_attachment', - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/ticket_types': { - get: { - operationId: 'ticketing_list_ticket_types', - 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,parent_collection_id,remote_parent_collection_id', - 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', - 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: { - nullable: true, - example: '2020-01-01T00:00:00.000Z', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The list of ticket types was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingTicketTypePaginated', - }, - }, - }, - }, - '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 Ticket Types', - tags: ['Ticket Types'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'list_ticket_types', - 'x-speakeasy-pagination': { - type: 'cursor', - inputs: [ - { - name: 'next', - in: 'parameters', - type: 'cursor', - }, - ], - outputs: { - nextCursor: '$.next', - }, - }, - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/ticket_types/{id}': { - get: { - operationId: 'ticketing_get_ticket_type', - 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,parent_collection_id,remote_parent_collection_id', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The ticket type with the given identifier was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingTicketTypeResult', - }, - }, - }, - }, - '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 Ticket Type', - tags: ['Ticket Types'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'get_ticket_type', - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/collections': { - get: { - operationId: 'ticketing_list_collections', - 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,organization_id,remote_organization_id,parent_id,remote_parent_id,key,name,description,type,created_at,updated_at', - type: 'string', - }, - }, - { - name: 'filter', - required: false, - in: 'query', - description: 'Ticketing Collections 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', - nullable: true, - additionalProperties: false, - }, - type: { - description: 'Filter collections by type', - enum: ['project', 'component', null], - 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: { - nullable: true, - example: '2020-01-01T00:00:00.000Z', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The list of collections was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingCollectionsPaginated', - }, - }, - }, - }, - '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 Collections', - tags: ['Collections'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'list_collections', - 'x-speakeasy-pagination': { - type: 'cursor', - inputs: [ - { - name: 'next', - in: 'parameters', - type: 'cursor', - }, - ], - outputs: { - nextCursor: '$.next', - }, - }, - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/collections/{id}': { - get: { - operationId: 'ticketing_get_collection', - 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,organization_id,remote_organization_id,parent_id,remote_parent_id,key,name,description,type,created_at,updated_at', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The collection with the given identifier was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingCollectionResult', - }, - }, - }, - }, - '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 Collection', - tags: ['Collections'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'get_collection', - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/collections/{id}/ticket_types': { - get: { - operationId: 'ticketing_list_collection_ticket_types', - 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,parent_collection_id,remote_parent_collection_id', - 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', - 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: { - nullable: true, - example: '2020-01-01T00:00:00.000Z', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The list of collection ticket types was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingTicketTypePaginated', - }, - }, - }, - }, - '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 Collection Ticket Types', - tags: ['Collections', 'Ticket Types'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'list_collection_ticket_types', - 'x-speakeasy-pagination': { - type: 'cursor', - inputs: [ - { - name: 'next', - in: 'parameters', - type: 'cursor', - }, - ], - outputs: { - nextCursor: '$.next', - }, - }, - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - '/unified/ticketing/tickets/{id}/statuses': { - get: { - operationId: 'ticketing_list_ticket_statuses', - 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 to return in the response (if empty, all fields are returned)', - schema: { - nullable: true, - 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', - 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: { - nullable: true, - example: '2020-01-01T00:00:00.000Z', - type: 'string', - }, - }, - ], - responses: { - '200': { - description: 'The list of ticket statuses was retrieved.', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/TicketingTicketStatusesPaginated', - }, - }, - }, - }, - '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 Ticket Statuses', - tags: ['Tickets', 'Ticket Statuses'], - 'x-speakeasy-group': 'ticketing', - 'x-speakeasy-name-override': 'list_ticket_statuses', - 'x-speakeasy-pagination': { - type: 'cursor', - inputs: [ - { - name: 'next', - in: 'parameters', - type: 'cursor', - }, - ], - outputs: { - nextCursor: '$.next', - }, - }, - 'x-speakeasy-retries': { - statusCodes: [429, 408], - strategy: 'backoff', - }, - }, - }, - }, + paths: {}, info: { title: 'Ticketing', description: 'The documentation for the StackOne Unified API - TICKETING', @@ -4217,26 +18,6 @@ export const ticketingSpec = { name: 'Users', description: '', }, - { - name: 'Comments', - description: '', - }, - { - name: 'Attachments', - description: '', - }, - { - name: 'Ticket Types', - description: '', - }, - { - name: 'Collections', - description: '', - }, - { - name: 'Ticket Statuses', - description: '', - }, ], servers: [ { @@ -4250,2821 +31,6 @@ export const ticketingSpec = { scheme: 'basic', }, }, - schemas: { - BadGatewayResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 502, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Bad Gateway', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - BadRequestResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 400, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Bad Request', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - data: { - description: 'Error details', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/UnifiedError', - }, - ], - }, - provider_errors: { - description: 'List of provider-specific errors', - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/ProviderError', - }, - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - ConflictResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 409, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Conflict', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - CreateResult: { - type: 'object', - properties: { - statusCode: { - type: 'number', - example: 201, - }, - message: { - type: 'string', - example: 'Record created successfully.', - }, - timestamp: { - type: 'string', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - }, - data: { - $ref: '#/components/schemas/CreateResultDataApiModel', - }, - }, - required: ['statusCode', 'message', 'timestamp', 'data'], - }, - CreateResultDataApiModel: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'Unique identifier', - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - remote_id: { - type: 'string', - description: "Provider's unique identifier", - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - }, - }, - FileFormatEnum: { - type: 'object', - properties: { - value: { - type: 'string', - description: 'The file format of the file, expressed as a file extension', - enum: [ - 'unmapped_value', - 'ez', - 'aw', - 'atom', - 'atomcat', - 'atomdeleted', - 'atomsvc', - 'dwd', - 'held', - 'rsat', - 'bdoc', - 'xcs', - 'ccxml', - 'cdfx', - 'cdmia', - 'cdmic', - 'cdmid', - 'cdmio', - 'cdmiq', - 'cu', - 'mpd', - 'davmount', - 'dbk', - 'dssc', - 'xdssc', - 'es', - 'ecma', - 'emma', - 'emotionml', - 'epub', - 'exi', - 'exp', - 'fdt', - 'pfr', - 'geojson', - 'gml', - 'gpx', - 'gxf', - 'gz', - 'hjson', - 'stk', - 'ink', - 'inkml', - 'ipfix', - 'its', - 'jar', - 'war', - 'ear', - 'ser', - 'class', - 'js', - 'mjs', - 'json', - 'map', - 'json5', - 'jsonml', - 'jsonld', - 'lgr', - 'lostxml', - 'hqx', - 'cpt', - 'mads', - 'webmanifest', - 'mrc', - 'mrcx', - 'ma', - 'nb', - 'mb', - 'mathml', - 'mbox', - 'mscml', - 'metalink', - 'meta4', - 'mets', - 'maei', - 'musd', - 'mods', - 'm21', - 'mp21', - 'mp4s', - 'm4p', - 'doc', - 'dot', - 'mxf', - 'nq', - 'nt', - 'cjs', - 'bin', - 'dms', - 'lrf', - 'mar', - 'so', - 'dist', - 'distz', - 'pkg', - 'bpk', - 'dump', - 'elc', - 'deploy', - 'exe', - 'dll', - 'deb', - 'dmg', - 'iso', - 'img', - 'msi', - 'msp', - 'msm', - 'buffer', - 'oda', - 'opf', - 'ogx', - 'omdoc', - 'onetoc', - 'onetoc2', - 'onetmp', - 'onepkg', - 'oxps', - 'relo', - 'xer', - 'pdf', - 'pgp', - 'asc', - 'sig', - 'prf', - 'p10', - 'p7m', - 'p7c', - 'p7s', - 'p8', - 'ac', - 'cer', - 'crl', - 'pkipath', - 'pki', - 'pls', - 'ai', - 'eps', - 'ps', - 'provx', - 'pskcxml', - 'raml', - 'rdf', - 'owl', - 'rif', - 'rnc', - 'rl', - 'rld', - 'rs', - 'rapd', - 'sls', - 'rusd', - 'gbr', - 'mft', - 'roa', - 'rsd', - 'rss', - 'rtf', - 'sbml', - 'scq', - 'scs', - 'spq', - 'spp', - 'sdp', - 'senmlx', - 'sensmlx', - 'setpay', - 'setreg', - 'shf', - 'siv', - 'sieve', - 'smi', - 'smil', - 'rq', - 'srx', - 'gram', - 'grxml', - 'sru', - 'ssdl', - 'ssml', - 'swidtag', - 'tei', - 'teicorpus', - 'tfi', - 'tsd', - 'toml', - 'trig', - 'ttml', - 'ubj', - 'rsheet', - 'td', - 'vxml', - 'wasm', - 'wgt', - 'hlp', - 'wsdl', - 'wspolicy', - 'xaml', - 'xav', - 'xca', - 'xdf', - 'xel', - 'xns', - 'xenc', - 'xhtml', - 'xht', - 'xlf', - 'xml', - 'xsl', - 'xsd', - 'rng', - 'dtd', - 'xop', - 'xpl', - '*xsl', - 'xslt', - 'xspf', - 'mxml', - 'xhvml', - 'xvml', - 'xvm', - 'yang', - 'yin', - 'zip', - '*3gpp', - 'adp', - 'amr', - 'au', - 'snd', - 'mid', - 'midi', - 'kar', - 'rmi', - 'mxmf', - '*mp3', - 'm4a', - 'mp4a', - 'mpga', - 'mp2', - 'mp2a', - 'mp3', - 'm2a', - 'm3a', - 'oga', - 'ogg', - 'spx', - 'opus', - 's3m', - 'sil', - 'wav', - '*wav', - 'weba', - 'xm', - 'ttc', - 'otf', - 'ttf', - 'woff', - 'woff2', - 'exr', - 'apng', - 'avif', - 'bmp', - 'cgm', - 'drle', - 'emf', - 'fits', - 'g3', - 'gif', - 'heic', - 'heics', - 'heif', - 'heifs', - 'hej2', - 'hsj2', - 'ief', - 'jls', - 'jp2', - 'jpg2', - 'jpeg', - 'jpg', - 'jpe', - 'jph', - 'jhc', - 'jpm', - 'jpx', - 'jpf', - 'jxr', - 'jxra', - 'jxrs', - 'jxs', - 'jxsc', - 'jxsi', - 'jxss', - 'ktx', - 'ktx2', - 'png', - 'sgi', - 'svg', - 'svgz', - 't38', - 'tif', - 'tiff', - 'tfx', - 'webp', - 'wmf', - 'disposition-notification', - 'u8msg', - 'u8dsn', - 'u8mdn', - 'u8hdr', - 'eml', - 'mime', - '3mf', - 'gltf', - 'glb', - 'igs', - 'iges', - 'msh', - 'mesh', - 'silo', - 'mtl', - 'obj', - 'stpx', - 'stpz', - 'stpxz', - 'stl', - 'wrl', - 'vrml', - '*x3db', - 'x3dbz', - 'x3db', - '*x3dv', - 'x3dvz', - 'x3d', - 'x3dz', - 'x3dv', - 'appcache', - 'manifest', - 'ics', - 'ifb', - 'coffee', - 'litcoffee', - 'css', - 'csv', - 'html', - 'htm', - 'shtml', - 'jade', - 'jsx', - 'less', - 'markdown', - 'md', - 'mml', - 'mdx', - 'n3', - 'txt', - 'text', - 'conf', - 'def', - 'list', - 'log', - 'in', - 'ini', - 'rtx', - '*rtf', - 'sgml', - 'sgm', - 'shex', - 'slim', - 'slm', - 'spdx', - 'stylus', - 'styl', - 'tsv', - 't', - 'tr', - 'roff', - 'man', - 'me', - 'ms', - 'ttl', - 'uri', - 'uris', - 'urls', - 'vcard', - 'vtt', - '*xml', - 'yaml', - 'yml', - '3gp', - '3gpp', - '3g2', - 'h261', - 'h263', - 'h264', - 'm4s', - 'jpgv', - '*jpm', - 'jpgm', - 'mj2', - 'mjp2', - 'ts', - 'mp4', - 'mp4v', - 'mpg4', - 'mpeg', - 'mpg', - 'mpe', - 'm1v', - 'm2v', - 'ogv', - 'qt', - 'mov', - 'webm', - 'cww', - '1km', - 'plb', - 'psb', - 'pvb', - 'tcap', - 'pwn', - 'aso', - 'imp', - 'acu', - 'atc', - 'acutc', - 'air', - 'fcdt', - 'fxp', - 'fxpl', - 'xdp', - 'xfdf', - 'ahead', - 'azf', - 'azs', - 'azw', - 'acc', - 'ami', - 'apk', - 'cii', - 'fti', - 'atx', - 'mpkg', - 'key', - 'm3u8', - 'numbers', - 'pages', - 'pkpass', - 'swi', - 'iota', - 'aep', - 'bmml', - 'mpm', - 'bmi', - 'rep', - 'cdxml', - 'mmd', - 'cdy', - 'csl', - 'cla', - 'rp9', - 'c4g', - 'c4d', - 'c4f', - 'c4p', - 'c4u', - 'c11amc', - 'c11amz', - 'csp', - 'cdbcmsg', - 'cmc', - 'clkx', - 'clkk', - 'clkp', - 'clkt', - 'clkw', - 'wbs', - 'pml', - 'ppd', - 'car', - 'pcurl', - 'dart', - 'rdz', - 'dbf', - 'uvf', - 'uvvf', - 'uvd', - 'uvvd', - 'uvt', - 'uvvt', - 'uvx', - 'uvvx', - 'uvz', - 'uvvz', - 'fe_launch', - 'dna', - 'mlp', - 'mle', - 'dpg', - 'dfac', - 'kpxx', - 'ait', - 'svc', - 'geo', - 'mag', - 'nml', - 'esf', - 'msf', - 'qam', - 'slt', - 'ssf', - 'es3', - 'et3', - 'ez2', - 'ez3', - 'fdf', - 'mseed', - 'seed', - 'dataless', - 'gph', - 'ftc', - 'fm', - 'frame', - 'maker', - 'book', - 'fnc', - 'ltf', - 'fsc', - 'oas', - 'oa2', - 'oa3', - 'fg5', - 'bh2', - 'ddd', - 'xdw', - 'xbd', - 'fzs', - 'txd', - 'ggb', - 'ggt', - 'gex', - 'gre', - 'gxt', - 'g2w', - 'g3w', - 'gmx', - 'gdoc', - 'gslides', - 'gsheet', - 'kml', - 'kmz', - 'gqf', - 'gqs', - 'gac', - 'ghf', - 'gim', - 'grv', - 'gtm', - 'tpl', - 'vcg', - 'hal', - 'zmm', - 'hbci', - 'les', - 'hpgl', - 'hpid', - 'hps', - 'jlt', - 'pcl', - 'pclxl', - 'sfd-hdstx', - 'mpy', - 'afp', - 'listafp', - 'list3820', - 'irm', - 'sc', - 'icc', - 'icm', - 'igl', - 'ivp', - 'ivu', - 'igm', - 'xpw', - 'xpx', - 'i2g', - 'qbo', - 'qfx', - 'rcprofile', - 'irp', - 'xpr', - 'fcs', - 'jam', - 'rms', - 'jisp', - 'joda', - 'ktz', - 'ktr', - 'karbon', - 'chrt', - 'kfo', - 'flw', - 'kon', - 'kpr', - 'kpt', - 'ksp', - 'kwd', - 'kwt', - 'htke', - 'kia', - 'kne', - 'knp', - 'skp', - 'skd', - 'skt', - 'skm', - 'sse', - 'lasxml', - 'lbd', - 'lbe', - 'apr', - 'pre', - 'nsf', - 'org', - 'scm', - 'lwp', - 'portpkg', - 'mvt', - 'mcd', - 'mc1', - 'cdkey', - 'mwf', - 'mfm', - 'flo', - 'igx', - 'mif', - 'daf', - 'dis', - 'mbk', - 'mqy', - 'msl', - 'plc', - 'txf', - 'mpn', - 'mpc', - 'xul', - 'cil', - 'cab', - 'xls', - 'xlm', - 'xla', - 'xlc', - 'xlt', - 'xlw', - 'xlam', - 'xlsb', - 'xlsm', - 'xltm', - 'eot', - 'chm', - 'ims', - 'lrm', - 'thmx', - 'msg', - 'cat', - '*stl', - 'ppt', - 'pps', - 'pot', - 'ppam', - 'pptm', - 'sldm', - 'ppsm', - 'potm', - 'mpp', - 'mpt', - 'docm', - 'dotm', - 'wps', - 'wks', - 'wcm', - 'wdb', - 'wpl', - 'xps', - 'mseq', - 'mus', - 'msty', - 'taglet', - 'nlu', - 'ntf', - 'nitf', - 'nnd', - 'nns', - 'nnw', - '*ac', - 'ngdat', - 'n-gage', - 'rpst', - 'rpss', - 'edm', - 'edx', - 'ext', - 'odc', - 'otc', - 'odb', - 'odf', - 'odft', - 'odg', - 'otg', - 'odi', - 'oti', - 'odp', - 'otp', - 'ods', - 'ots', - 'odt', - 'odm', - 'ott', - 'oth', - 'xo', - 'dd2', - 'obgx', - 'oxt', - 'osm', - 'pptx', - 'sldx', - 'ppsx', - 'potx', - 'xlsx', - 'xltx', - 'docx', - 'dotx', - 'mgp', - 'dp', - 'esa', - 'pdb', - 'pqa', - 'oprc', - 'paw', - 'str', - 'ei6', - 'efif', - 'wg', - 'plf', - 'pbd', - 'box', - 'mgz', - 'qps', - 'ptid', - 'qxd', - 'qxt', - 'qwd', - 'qwt', - 'qxl', - 'qxb', - 'rar', - 'bed', - 'mxl', - 'musicxml', - 'cryptonote', - 'cod', - 'rm', - 'rmvb', - 'link66', - 'st', - 'see', - 'sema', - 'semd', - 'semf', - 'ifm', - 'itp', - 'iif', - 'ipk', - 'twd', - 'twds', - 'mmf', - 'teacher', - 'fo', - 'sdkm', - 'sdkd', - 'dxp', - 'sfs', - 'sdc', - 'sda', - 'sdd', - 'smf', - 'sdw', - 'vor', - 'sgl', - 'smzip', - 'sm', - 'wadl', - 'sxc', - 'stc', - 'sxd', - 'std', - 'sxi', - 'sti', - 'sxm', - 'sxw', - 'sxg', - 'stw', - 'sus', - 'susp', - 'svd', - 'sis', - 'sisx', - 'xsm', - 'bdm', - 'xdm', - 'ddf', - 'tao', - 'pcap', - 'cap', - 'dmp', - 'tmo', - 'tpt', - 'mxs', - 'tra', - 'ufd', - 'ufdl', - 'utz', - 'umj', - 'unityweb', - 'uoml', - 'vcx', - 'vsd', - 'vst', - 'vss', - 'vsw', - 'vis', - 'vsf', - 'wbxml', - 'wmlc', - 'wmlsc', - 'wtb', - 'nbp', - 'wpd', - 'wqd', - 'stf', - 'xar', - 'xfdl', - 'hvd', - 'hvs', - 'hvp', - 'osf', - 'osfpvg', - 'saf', - 'spf', - 'cmp', - 'zir', - 'zirz', - 'zaz', - '7z', - 'abw', - 'ace', - '*dmg', - 'arj', - 'aab', - 'x32', - 'u32', - 'vox', - 'aam', - 'aas', - 'bcpio', - '*bdoc', - 'torrent', - 'blb', - 'blorb', - 'bz', - 'bz2', - 'boz', - 'cbr', - 'cba', - 'cbt', - 'cbz', - 'cb7', - 'vcd', - 'cfs', - 'chat', - 'pgn', - 'crx', - 'cco', - 'nsc', - 'cpio', - 'csh', - '*deb', - 'udeb', - 'dgc', - 'dir', - 'dcr', - 'dxr', - 'cst', - 'cct', - 'cxt', - 'w3d', - 'fgd', - 'swa', - 'wad', - 'ncx', - 'dtb', - 'res', - 'dvi', - 'evy', - 'eva', - 'bdf', - 'gsf', - 'psf', - 'pcf', - 'snf', - 'pfa', - 'pfb', - 'pfm', - 'afm', - 'arc', - 'spl', - 'gca', - 'ulx', - 'gnumeric', - 'gramps', - 'gtar', - 'hdf', - 'php', - 'install', - '*iso', - '*key', - '*numbers', - '*pages', - 'jardiff', - 'jnlp', - 'kdbx', - 'latex', - 'luac', - 'lzh', - 'lha', - 'run', - 'mie', - 'prc', - 'mobi', - 'application', - 'lnk', - 'wmd', - 'wmz', - 'xbap', - 'mdb', - 'obd', - 'crd', - 'clp', - '*exe', - '*dll', - 'com', - 'bat', - '*msi', - 'mvb', - 'm13', - 'm14', - '*wmf', - '*wmz', - '*emf', - 'emz', - 'mny', - 'pub', - 'scd', - 'trm', - 'wri', - 'nc', - 'cdf', - 'pac', - 'nzb', - 'pl', - 'pm', - '*prc', - '*pdb', - 'p12', - 'pfx', - 'p7b', - 'spc', - 'p7r', - '*rar', - 'rpm', - 'ris', - 'sea', - 'sh', - 'shar', - 'swf', - 'xap', - 'sql', - 'sit', - 'sitx', - 'srt', - 'sv4cpio', - 'sv4crc', - 't3', - 'gam', - 'tar', - 'tcl', - 'tk', - 'tex', - 'tfm', - 'texinfo', - 'texi', - '*obj', - 'ustar', - 'hdd', - 'ova', - 'ovf', - 'vbox', - 'vbox-extpack', - 'vdi', - 'vhd', - 'vmdk', - 'src', - 'webapp', - 'der', - 'crt', - 'pem', - 'fig', - '*xlf', - 'xpi', - 'xz', - 'z1', - 'z2', - 'z3', - 'z4', - 'z5', - 'z6', - 'z7', - 'z8', - 'uva', - 'uvva', - 'eol', - 'dra', - 'dts', - 'dtshd', - 'lvp', - 'pya', - 'ecelp4800', - 'ecelp7470', - 'ecelp9600', - 'rip', - 'aac', - 'aif', - 'aiff', - 'aifc', - 'caf', - 'flac', - '*m4a', - 'mka', - 'm3u', - 'wax', - 'wma', - 'ram', - 'ra', - 'rmp', - '*ra', - 'cdx', - 'cif', - 'cmdf', - 'cml', - 'csml', - 'xyz', - 'btif', - 'pti', - 'psd', - 'azv', - 'uvi', - 'uvvi', - 'uvg', - 'uvvg', - 'djvu', - 'djv', - '*sub', - 'dwg', - 'dxf', - 'fbs', - 'fpx', - 'fst', - 'mmr', - 'rlc', - 'ico', - 'dds', - 'mdi', - 'wdp', - 'npx', - 'b16', - 'tap', - 'vtf', - 'wbmp', - 'xif', - 'pcx', - '3ds', - 'ras', - 'cmx', - 'fh', - 'fhc', - 'fh4', - 'fh5', - 'fh7', - '*ico', - 'jng', - 'sid', - '*bmp', - '*pcx', - 'pic', - 'pct', - 'pnm', - 'pbm', - 'pgm', - 'ppm', - 'rgb', - 'tga', - 'xbm', - 'xpm', - 'xwd', - 'wsc', - 'dae', - 'dwf', - 'gdl', - 'gtw', - 'mts', - 'ogex', - 'x_b', - 'x_t', - 'vds', - 'usdz', - 'bsp', - 'vtu', - 'dsc', - 'curl', - 'dcurl', - 'mcurl', - 'scurl', - 'sub', - 'fly', - 'flx', - 'gv', - '3dml', - 'spot', - 'jad', - 'wml', - 'wmls', - 's', - 'asm', - 'c', - 'cc', - 'cxx', - 'cpp', - 'h', - 'hh', - 'dic', - 'htc', - 'f', - 'for', - 'f77', - 'f90', - 'hbs', - 'java', - 'lua', - 'mkd', - 'nfo', - 'opml', - '*org', - 'p', - 'pas', - 'pde', - 'sass', - 'scss', - 'etx', - 'sfv', - 'ymp', - 'uu', - 'vcs', - 'vcf', - 'uvh', - 'uvvh', - 'uvm', - 'uvvm', - 'uvp', - 'uvvp', - 'uvs', - 'uvvs', - 'uvv', - 'uvvv', - 'dvb', - 'fvt', - 'mxu', - 'm4u', - 'pyv', - 'uvu', - 'uvvu', - 'viv', - 'f4v', - 'fli', - 'flv', - 'm4v', - 'mkv', - 'mk3d', - 'mks', - 'mng', - 'asf', - 'asx', - 'vob', - 'wm', - 'wmv', - 'wmx', - 'wvx', - 'avi', - 'movie', - 'smv', - 'ice', - 'mht', - null, - ], - example: 'pdf', - 'x-speakeasy-unknown-values': 'allow', - nullable: true, - }, - source_value: { - oneOf: [ - { - type: 'string', - }, - { - type: 'number', - }, - { - type: 'boolean', - }, - { - type: 'object', - }, - { - type: 'array', - items: {}, - }, - ], - example: 'application/pdf', - nullable: true, - }, - }, - }, - ForbiddenResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 403, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Forbidden resource', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - InternalServerErrorResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 500, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Internal server error', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - NotFoundResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 404, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Not Found', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - NotImplementedResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 501, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Not Implemented', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - PreconditionFailedResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 412, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Precondition failed', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - ProviderError: { - type: 'object', - properties: { - status: { - type: 'number', - description: 'HTTP status code of the provider error', - example: 400, - nullable: true, - }, - url: { - type: 'string', - description: 'URL that caused the error', - example: 'https://api.provider.com/v1/resource', - nullable: true, - }, - raw: { - type: 'object', - description: 'Raw error response from the provider', - example: { - message: 'Invalid input parameters', - }, - nullable: true, - }, - headers: { - type: 'object', - description: 'Response headers', - example: { - 'content-type': 'application/json', - 'x-request-id': '5678c28b211dace4e0a0f9171e6b88c5', - }, - nullable: true, - }, - }, - }, - RawResponse: { - type: 'object', - properties: { - method: { - type: 'string', - }, - url: { - type: 'string', - }, - body: { - oneOf: [ - { - type: 'string', - }, - { - type: 'object', - }, - { - type: 'array', - items: { - type: 'integer', - format: 'int32', - minimum: 0, - maximum: 255, - }, - }, - ], - additionalProperties: true, - nullable: true, - }, - response: { - oneOf: [ - { - type: 'object', - additionalProperties: true, - }, - { - type: 'array', - items: {}, - }, - { - type: 'string', - }, - ], - nullable: true, - }, - }, - required: ['method', 'url'], - }, - RequestTimedOutResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 408, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Request timed out', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - TicketingAttachment: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'Unique identifier', - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - remote_id: { - type: 'string', - description: "Provider's unique identifier", - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - ticket_id: { - type: 'string', - example: 'ticket-001', - description: 'The reference ticket ID the attachment belongs to', - nullable: true, - }, - user_id: { - type: 'string', - description: 'The user who uploaded the file', - example: 'user-001', - nullable: true, - }, - file_name: { - type: 'string', - description: 'The name of the file', - example: 'file.pdf', - nullable: true, - }, - file_format: { - description: 'The type of the file', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/FileFormatEnum', - }, - ], - }, - file_url: { - type: 'string', - description: 'The resource URL of the file', - example: 'https://example.com/files/screenshot.png', - nullable: true, - }, - size: { - type: 'number', - description: 'The size of the file', - example: 1024, - nullable: true, - }, - created_at: { - type: 'string', - description: 'The timestamp when the record was created', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - updated_at: { - type: 'string', - description: 'The timestamp when the record was last updated', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - }, - }, - TicketingAttachmentResult: { - type: 'object', - properties: { - data: { - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingAttachment', - }, - ], - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingAttachmentsPaginated: { - type: 'object', - properties: { - next: { - type: 'string', - nullable: true, - }, - data: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TicketingAttachment', - }, - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingCollection: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'Unique identifier', - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - remote_id: { - type: 'string', - description: "Provider's unique identifier", - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - parent_id: { - type: 'string', - description: 'The parent collection of the collection', - example: 'collection-001', - nullable: true, - }, - name: { - type: 'string', - description: 'The name of the collection', - example: 'Project Falcon', - nullable: true, - }, - description: { - type: 'string', - description: 'The description of the collection', - example: 'Description of the project', - nullable: true, - }, - key: { - type: 'string', - description: 'The user-friendly key of the collection', - example: 'project-falcon', - nullable: true, - }, - type: { - type: 'string', - enum: ['project', 'component', 'unmapped_value', null], - description: 'The type of the collection.', - example: 'project', - 'x-speakeasy-unknown-values': 'allow', - nullable: true, - }, - organization_id: { - type: 'string', - description: 'The organization id related to the collection', - example: 'organization-001', - nullable: true, - }, - created_at: { - type: 'string', - description: 'The timestamp when the record was created', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - updated_at: { - type: 'string', - description: 'The timestamp when the record was last updated', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - }, - }, - TicketingCollectionResult: { - type: 'object', - properties: { - data: { - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingCollection', - }, - ], - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingCollectionsPaginated: { - type: 'object', - properties: { - next: { - type: 'string', - nullable: true, - }, - data: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TicketingCollection', - }, - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingComment: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'Unique identifier', - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - remote_id: { - type: 'string', - description: "Provider's unique identifier", - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - ticket_id: { - type: 'string', - description: 'The ticket ID associated with the comment', - example: 'ticket-001', - }, - user_id: { - type: 'string', - description: 'The user who created the comment', - example: 'user-001', - nullable: true, - }, - internal: { - type: 'boolean', - description: 'Whether the comment is internal', - example: false, - nullable: true, - }, - content: { - description: 'Array of content associated with the comment', - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TicketingContent', - }, - }, - created_at: { - type: 'string', - description: 'The timestamp when the record was created', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - updated_at: { - type: 'string', - description: 'The timestamp when the record was last updated', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - }, - required: ['ticket_id'], - }, - TicketingCommentResult: { - type: 'object', - properties: { - data: { - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingComment', - }, - ], - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingCommentsPaginated: { - type: 'object', - properties: { - next: { - type: 'string', - nullable: true, - }, - data: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TicketingComment', - }, - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingContent: { - type: 'object', - properties: { - plain: { - type: 'string', - description: 'The content of the ticket', - example: 'This is some content', - nullable: true, - }, - html: { - type: 'string', - description: 'The HTML content of the ticket', - example: '

This is some content

', - nullable: true, - }, - }, - }, - TicketingOrganization: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'Unique identifier', - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - remote_id: { - type: 'string', - description: "Provider's unique identifier", - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - domain: { - type: 'string', - description: 'The domain of the organization', - example: 'company.com', - nullable: true, - }, - name: { - type: 'string', - description: 'The name of the organization', - example: 'Company', - nullable: true, - }, - }, - }, - TicketingReadTicket: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'Unique identifier', - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - remote_id: { - type: 'string', - description: "Provider's unique identifier", - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - unified_custom_fields: { - type: 'object', - description: 'Custom Unified Fields configured in your StackOne project', - additionalProperties: true, - example: { - my_project_custom_field_1: 'REF-1236', - my_project_custom_field_2: 'some other value', - }, - nullable: true, - }, - title: { - type: 'string', - description: 'The title or subject of the ticket', - example: 'System outage in production environment', - nullable: true, - }, - creator_id: { - type: 'string', - description: 'The creator of the ticket', - example: 'user-001', - nullable: true, - }, - reporters: { - description: 'Users who reported the ticket', - example: ['user-001', 'user-002'], - nullable: true, - type: 'array', - items: { - type: 'string', - }, - }, - assignees: { - description: 'Agents assigned to the ticket', - example: ['user-001', 'user-002'], - nullable: true, - type: 'array', - items: { - type: 'string', - }, - }, - content: { - description: 'Array of content associated with the ticket', - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TicketingContent', - }, - }, - parent_id: { - type: 'string', - description: 'ID of the parent ticket if this is a sub-ticket', - example: 'ticket-002', - nullable: true, - }, - priority: { - description: 'Priority of the ticket', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingTicketPriorityTypeEnum', - }, - ], - }, - tags: { - description: 'The tags of the ticket', - example: ['tag-001', 'tag-002'], - nullable: true, - type: 'array', - items: { - type: 'string', - }, - }, - collections: { - description: 'Collections the ticket belongs to', - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TicketingCollection', - }, - }, - ticket_number: { - type: 'string', - example: 'ticket-001', - description: 'The unique ticket number or reference ID', - nullable: true, - }, - type: { - description: 'The type of the ticket', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingTicketType', - }, - ], - }, - closed_at: { - type: 'string', - description: 'The date the ticket was closed', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - ticket_url: { - type: 'string', - description: 'URL to view the ticket in the source system', - example: 'https://help.company.com/tickets/SUP-5689', - nullable: true, - }, - status: { - description: 'Current status of the ticket', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingTicketStatus', - }, - ], - }, - organization: { - description: 'Organization associated with the ticket', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingOrganization', - }, - ], - }, - created_at: { - type: 'string', - description: 'The timestamp when the record was created', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - updated_at: { - type: 'string', - description: 'The timestamp when the record was last updated', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - }, - }, - TicketingTicketCreateRequestDto: { - type: 'object', - properties: { - unified_custom_fields: { - type: 'object', - description: 'Custom Unified Fields configured in your StackOne project', - additionalProperties: true, - example: { - my_project_custom_field_1: 'REF-1236', - my_project_custom_field_2: 'some other value', - }, - nullable: true, - }, - title: { - type: 'string', - description: 'The title or subject of the ticket', - example: 'System outage in production environment', - nullable: true, - }, - creator_id: { - type: 'string', - description: 'The creator of the ticket', - example: 'user-001', - nullable: true, - }, - reporters: { - description: 'Users who reported the ticket', - example: ['user-001', 'user-002'], - nullable: true, - type: 'array', - items: { - type: 'string', - }, - }, - assignees: { - description: 'Agents assigned to the ticket', - example: ['user-001', 'user-002'], - nullable: true, - type: 'array', - items: { - type: 'string', - }, - }, - content: { - description: 'Array of content associated with the ticket', - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TicketingContent', - }, - }, - parent_id: { - type: 'string', - description: 'ID of the parent ticket if this is a sub-ticket', - example: 'ticket-002', - nullable: true, - }, - priority: { - description: 'Priority of the ticket', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingTicketPriorityTypeEnum', - }, - ], - }, - tags: { - description: 'The tags of the ticket', - example: ['tag-001', 'tag-002'], - nullable: true, - type: 'array', - items: { - type: 'string', - }, - }, - collection_ids: { - description: 'Collections the ticket belongs to', - example: ['collection-001', 'collection-002'], - nullable: true, - type: 'array', - items: { - type: 'string', - }, - }, - type: { - type: 'string', - description: 'The type of the ticket', - example: 'ticket-type-001', - nullable: true, - }, - organization_id: { - type: 'string', - description: 'Organization associated with the ticket', - example: 'organization-001', - nullable: true, - }, - }, - }, - TicketingTicketPriorityTypeEnum: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'The id of the ticket priority.', - example: '001', - nullable: true, - }, - value: { - type: 'string', - enum: ['lowest', 'low', 'medium', 'high', 'highest', 'unmapped_value', null], - description: 'The priority of the ticket.', - example: 'medium', - 'x-speakeasy-unknown-values': 'allow', - nullable: true, - }, - source_value: { - description: 'The source value of the ticket priority.', - example: 'Normal', - oneOf: [ - { - type: 'string', - }, - { - type: 'number', - }, - { - type: 'boolean', - }, - { - type: 'object', - }, - { - type: 'array', - items: {}, - }, - ], - nullable: true, - }, - }, - }, - TicketingTicketResult: { - type: 'object', - properties: { - data: { - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingReadTicket', - }, - ], - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingTicketsPaginated: { - type: 'object', - properties: { - next: { - type: 'string', - nullable: true, - }, - data: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TicketingReadTicket', - }, - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingTicketStatus: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'The id of the ticket status.', - example: '001', - nullable: true, - }, - type: { - description: 'The type of this status', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingTicketStatusTypeEnum', - }, - ], - }, - name: { - type: 'string', - description: 'The name of the ticket status.', - example: 'Backlog', - nullable: true, - }, - }, - }, - TicketingTicketStatusesPaginated: { - type: 'object', - properties: { - next: { - type: 'string', - nullable: true, - }, - data: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TicketingTicketStatus', - }, - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingTicketStatusTypeEnum: { - type: 'object', - properties: { - value: { - type: 'string', - enum: ['to-do', 'in-progress', 'closed', 'unmapped_value', null], - description: 'The type of this status', - example: 'to-do', - 'x-speakeasy-unknown-values': 'allow', - nullable: true, - }, - source_value: { - oneOf: [ - { - type: 'string', - }, - { - type: 'number', - }, - { - type: 'boolean', - }, - { - type: 'object', - }, - { - type: 'array', - items: {}, - }, - ], - description: 'The source value of this status type', - example: 'New', - nullable: true, - }, - }, - }, - TicketingTicketType: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'The id of the ticket type.', - example: '001', - nullable: true, - }, - name: { - type: 'string', - description: 'The name of the ticket type.', - example: 'Task', - nullable: true, - }, - parent_collection_id: { - type: 'string', - description: 'The collection the ticket type belongs to.', - example: 'collection-001', - nullable: true, - }, - }, - }, - TicketingTicketTypePaginated: { - type: 'object', - properties: { - next: { - type: 'string', - nullable: true, - }, - data: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TicketingTicketType', - }, - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingTicketTypeResult: { - type: 'object', - properties: { - data: { - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingTicketType', - }, - ], - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingTicketUpdateRequestDto: { - type: 'object', - properties: { - unified_custom_fields: { - type: 'object', - description: 'Custom Unified Fields configured in your StackOne project', - additionalProperties: true, - example: { - my_project_custom_field_1: 'REF-1236', - my_project_custom_field_2: 'some other value', - }, - nullable: true, - }, - title: { - type: 'string', - description: 'The title or subject of the ticket', - example: 'System outage in production environment', - nullable: true, - }, - reporters: { - description: 'Users who reported the ticket', - example: ['user-001', 'user-002'], - nullable: true, - type: 'array', - items: { - type: 'string', - }, - }, - assignees: { - description: 'Agents assigned to the ticket', - example: ['user-001', 'user-002'], - nullable: true, - type: 'array', - items: { - type: 'string', - }, - }, - content: { - description: 'Array of content associated with the ticket', - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TicketingContent', - }, - }, - parent_id: { - type: 'string', - description: 'ID of the parent ticket if this is a sub-ticket', - example: 'ticket-002', - nullable: true, - }, - priority: { - description: 'Priority of the ticket', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingTicketPriorityTypeEnum', - }, - ], - }, - tags: { - description: 'The tags of the ticket', - example: ['tag-001', 'tag-002'], - nullable: true, - type: 'array', - items: { - type: 'string', - }, - }, - collection_ids: { - description: 'Collections the ticket belongs to', - example: ['collection-001', 'collection-002'], - nullable: true, - type: 'array', - items: { - type: 'string', - }, - }, - status: { - description: 'Current status of the ticket', - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingTicketStatus', - }, - ], - }, - }, - }, - TicketingUser: { - type: 'object', - properties: { - id: { - type: 'string', - description: 'Unique identifier', - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - remote_id: { - type: 'string', - description: "Provider's unique identifier", - example: '8187e5da-dc77-475e-9949-af0f1fa4e4e3', - nullable: true, - }, - type: { - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingUserTypeEnum', - }, - ], - }, - name: { - type: 'string', - description: 'John Doe', - example: 'John Doe', - nullable: true, - }, - primary_email: { - type: 'string', - description: "The user's primary email address", - example: 'john.doe@example.com', - nullable: true, - }, - primary_phone: { - type: 'string', - description: "The user's primary phone number", - example: '555-5555-5555', - nullable: true, - }, - username: { - type: 'string', - description: 'The username of the user in the provider system', - example: 'johndoe', - nullable: true, - }, - active: { - type: 'boolean', - description: 'If the user is active', - example: true, - nullable: true, - }, - first_name: { - type: 'string', - description: 'The first name of the user', - example: 'John', - nullable: true, - }, - last_name: { - type: 'string', - description: 'The last name of the user', - example: 'Doe', - nullable: true, - }, - customer_account_reference: { - type: 'string', - description: - 'The unique account reference assigned as an external user (e.g. the customer account identifier registered on the customer-facing site or portal)', - example: 'JohnDoe123', - nullable: true, - }, - created_at: { - type: 'string', - description: 'The timestamp when the record was created', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - updated_at: { - type: 'string', - description: 'The timestamp when the record was last updated', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - nullable: true, - }, - }, - }, - TicketingUserResult: { - type: 'object', - properties: { - data: { - nullable: true, - allOf: [ - { - $ref: '#/components/schemas/TicketingUser', - }, - ], - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingUsersPaginated: { - type: 'object', - properties: { - next: { - type: 'string', - nullable: true, - }, - data: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/TicketingUser', - }, - }, - raw: { - nullable: true, - type: 'array', - items: { - $ref: '#/components/schemas/RawResponse', - }, - }, - }, - }, - TicketingUserTypeEnum: { - type: 'object', - properties: { - value: { - type: 'string', - enum: ['agent', 'contact', 'bot', 'unmapped_value', null], - description: 'The type of the user.', - example: 'agent', - 'x-speakeasy-unknown-values': 'allow', - nullable: true, - }, - source_value: { - description: 'The source value of the user type.', - example: 'Live', - oneOf: [ - { - type: 'string', - }, - { - type: 'number', - }, - { - type: 'boolean', - }, - { - type: 'object', - }, - { - type: 'array', - items: {}, - }, - ], - nullable: true, - }, - }, - }, - TooManyRequestsResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 429, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Too many requests', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - UnauthorizedResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 401, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Unauthorized', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - UnifiedError: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 400, - nullable: true, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Bad Request', - nullable: true, - }, - headers: { - type: 'object', - description: 'Response headers', - example: { - 'content-type': 'application/json', - 'x-request-id': '5678c28b211dace4e0a0f9171e6b88c5', - }, - nullable: true, - }, - }, - }, - UnprocessableEntityResponse: { - type: 'object', - properties: { - statusCode: { - type: 'number', - description: 'HTTP status code', - example: 422, - }, - message: { - type: 'string', - description: 'Error message', - example: 'Unprocessable Entity', - }, - timestamp: { - type: 'string', - description: 'Timestamp when the error occurred', - example: '2023-05-30T00:00:00.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - UpdateResult: { - type: 'object', - properties: { - statusCode: { - type: 'number', - example: 200, - }, - message: { - type: 'string', - example: 'Record updated successfully.', - }, - timestamp: { - type: 'string', - example: '2021-01-01T01:01:01.000Z', - format: 'date-time', - }, - }, - required: ['statusCode', 'message', 'timestamp'], - }, - }, + schemas: {}, }, }; diff --git a/src/openapi/tests/__snapshots__/openapi-parser.spec.ts.snap b/src/openapi/tests/__snapshots__/openapi-parser.spec.ts.snap index 196b0be..ae96bb6 100644 --- a/src/openapi/tests/__snapshots__/openapi-parser.spec.ts.snap +++ b/src/openapi/tests/__snapshots__/openapi-parser.spec.ts.snap @@ -117,7 +117,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "enum": [ "true", "false", - "unmapped_value", null, ], "example": "true", @@ -135,7 +134,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "description": "The file format of the file", "properties": { "source_value": { - "example": "application/pdf", + "example": "abc", "oneOf": [ { "type": "string", @@ -1404,110 +1403,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "object", }, }, - "hris_cancel_employee_time_off_request": { - "description": "Cancel Employee Time Off Request", - "execute": { - "bodyType": "json", - "method": "DELETE", - "params": [ - { - "location": "header", - "name": "x-account-id", - "type": "string", - }, - { - "location": "path", - "name": "id", - "type": "string", - }, - { - "location": "path", - "name": "subResourceId", - "type": "string", - }, - ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/time_off/{subResourceId}", - }, - "parameters": { - "properties": { - "id": { - "type": "string", - }, - "subResourceId": { - "type": "string", - }, - "x-account-id": { - "description": "The account identifier", - "type": "string", - }, - }, - "required": [ - "id", - "subResourceId", - ], - "type": "object", - }, - }, - "hris_complete_employee_task": { - "description": "Complete Employee Task", - "execute": { - "bodyType": "json", - "method": "PATCH", - "params": [ - { - "location": "header", - "name": "x-account-id", - "type": "string", - }, - { - "location": "path", - "name": "id", - "type": "string", - }, - { - "location": "path", - "name": "subResourceId", - "type": "string", - }, - { - "location": "query", - "name": "proxy", - "type": "string", - }, - { - "location": "body", - "name": "comment", - "type": "string", - }, - ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/tasks/{subResourceId}", - }, - "parameters": { - "properties": { - "comment": { - "description": "Comment or note about the task completion", - "example": "All required documents have been submitted", - "type": "string", - }, - "id": { - "type": "string", - }, - "proxy": {}, - "subResourceId": { - "type": "string", - }, - "x-account-id": { - "description": "The account identifier", - "type": "string", - }, - }, - "required": [ - "id", - "subResourceId", - ], - "type": "object", - }, - }, "hris_create_employee": { "description": "Creates an employee", "execute": { @@ -1564,6 +1459,11 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "name": "work_phone_number", "type": "string", }, + { + "location": "body", + "name": "job_id", + "type": "string", + }, { "location": "body", "name": "job_title", @@ -1634,6 +1534,16 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "name": "start_date", "type": "string", }, + { + "location": "body", + "name": "employment_type", + "type": "object", + }, + { + "location": "body", + "name": "employment_contract_type", + "type": "object", + }, { "location": "body", "name": "employment_status", @@ -2179,7 +2089,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "date_of_birth": { "description": "The employee date_of_birth", - "example": "1990-01-01T00:00:00.000Z", + "example": "1990-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -2206,51 +2116,103 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "employment": { "description": "The employee employment", "properties": { - "end_date": { - "description": "The end date of employment", - "example": "2021-01-01T01:01:01.000Z", - "format": "date-time", - "type": "string", - }, - "grade": { - "description": "Represents the employee’s position within the organizational hierarchy.", + "employment_contract_type": { + "description": "The employment work schedule type (e.g., full-time, part-time)", + "example": "full_time", "properties": { - "description": { - "description": "description of the grade", - "example": "Mid-level employee demonstrating proficiency and autonomy.", - "type": "string", + "source_value": { + "oneOf": [ + { + "type": "string", + }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { + "type": "object", + }, + { + "items": {}, + "type": "array", + }, + ], }, - "id": { - "description": "The reference id", - "example": "1687-3", + "value": { + "enum": [ + "full_time", + "shifts", + "part_time", + "unmapped_value", + null, + ], "type": "string", }, - "name": { - "description": "The reference name", - "example": "1687-4", - "type": "string", + }, + "type": "object", + }, + "employment_type": { + "description": "The type of employment (e.g., contractor, permanent)", + "example": "permanent", + "properties": { + "source_value": { + "oneOf": [ + { + "type": "string", + }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { + "type": "object", + }, + { + "items": {}, + "type": "array", + }, + ], }, - "remote_id": { - "description": "Provider's unique identifier", - "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "value": { + "enum": [ + "contractor", + "intern", + "permanent", + "apprentice", + "freelance", + "terminated", + "temporary", + "seasonal", + "volunteer", + "probation", + "internal", + "external", + "expatriate", + "employer_of_record", + "casual", + "Programme", + "unmapped_value", + null, + ], "type": "string", }, }, "type": "object", }, + "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, "job_title": { "description": "The job title of the employee", "example": "Software Engineer", "type": "string", }, - "passthrough": { - "additionalProperties": true, - "description": "Value to pass through to the provider", - "example": { - "other_known_names": "John Doe", - }, - "type": "object", - }, "pay_currency": { "description": "The currency used for pay", "example": "USD", @@ -2352,9 +2314,10 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "example": "40.00", "type": "string", }, - "payroll_code": { - "description": "The payroll code of the employee", - "example": "PC1", + "time_worked": { + "description": "The time worked for the employee in ISO 8601 duration format", + "example": "P0Y0M0DT8H0M0S", + "format": "duration", "type": "string", }, "unified_custom_fields": { @@ -2366,56 +2329,42 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "type": "object", }, - "work_time": { - "properties": { - "duration": { - "description": "The work time duration in ISO 8601 duration format", - "example": "P0Y0M0DT8H0M0S", - "format": "duration", + }, + "type": "object", + }, + "employment_contract_type": { + "description": "The employment work schedule type (e.g., full-time, part-time)", + "example": "full_time", + "properties": { + "source_value": { + "oneOf": [ + { "type": "string", }, - "duration_unit": { - "description": "The duration unit of the work time", - "example": "month", - "properties": { - "source_value": { - "oneOf": [ - { - "type": "string", - }, - { - "type": "number", - }, - { - "type": "boolean", - }, - { - "type": "object", - }, - { - "items": {}, - "type": "array", - }, - ], - }, - "value": { - "description": "The unified value for the period.", - "enum": [ - "day", - "week", - "month", - "year", - "unmapped_value", - null, - ], - "example": "month", - "type": "string", - }, - }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { "type": "object", }, - }, - "type": "object", + { + "items": {}, + "type": "array", + }, + ], + }, + "value": { + "enum": [ + "full_time", + "shifts", + "part_time", + "unmapped_value", + null, + ], + "type": "string", }, }, "type": "object", @@ -2460,6 +2409,56 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "type": "object", }, + "employment_type": { + "description": "The employee employment type", + "example": "full_time", + "properties": { + "source_value": { + "oneOf": [ + { + "type": "string", + }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { + "type": "object", + }, + { + "items": {}, + "type": "array", + }, + ], + }, + "value": { + "enum": [ + "contractor", + "intern", + "permanent", + "apprentice", + "freelance", + "terminated", + "temporary", + "seasonal", + "volunteer", + "probation", + "internal", + "external", + "expatriate", + "employer_of_record", + "casual", + "Programme", + "unmapped_value", + null, + ], + "type": "string", + }, + }, + "type": "object", + }, "ethnicity": { "description": "The employee ethnicity", "example": "white", @@ -2550,7 +2549,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "hire_date": { "description": "The employee hire date", - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -2917,8 +2916,13 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "type": "object", }, + "job_id": { + "description": "The employee job id", + "example": "R-6789", + "type": "string", + }, "job_title": { - "description": "If the source of the job_title is the Employee's current Employment, and that Employment pertains exclusively to this Employee, then the active Employment job_title will also be written", + "description": "The employee job title", "example": "Physicist", "type": "string", }, @@ -3473,7 +3477,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "preferred_language": { "description": "The employee preferred language", - "example": "eng", + "example": "en_US", "properties": { "source_value": { "oneOf": [ @@ -3513,7 +3517,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "cat", "cha", "ces", - "dan", "deu", "div", "dzo", @@ -3530,7 +3533,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "fra", "gle", "grn", - "guj", "glv", "heb", "hin", @@ -3561,8 +3563,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "mah", "mri", "mkd", - "mon", - "mar", "msa", "mlt", "mya", @@ -3577,18 +3577,15 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "pol", "pus", "por", - "que", "rar", "roh", "rup", "ron", "rus", "kin", - "sme", "sag", "sin", "slk", - "slv", "smo", "sna", "som", @@ -3598,24 +3595,11 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "swe", "swa", "tam", - "tel", "tgk", "tha", "tir", "tig", - "tuk", - "tsn", - "ton", - "tur", - "tso", - "ukr", - "urd", - "uzb", - "ven", - "vie", - "xho", "zho", - "zul", "unmapped_value", null, ], @@ -3627,7 +3611,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "start_date": { "description": "The employee start date", - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -4036,7 +4020,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "string", }, { - "location": "path", + "location": "body", "name": "id", "type": "string", }, @@ -4072,32 +4056,17 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, { "location": "body", - "name": "effective_date", - "type": "string", + "name": "employment_type", + "type": "object", }, { "location": "body", - "name": "end_date", - "type": "string", - }, - { - "location": "body", - "name": "grade", - "type": "object", - }, - { - "location": "body", - "name": "work_time", + "name": "employment_contract_type", "type": "object", }, { "location": "body", - "name": "payroll_code", - "type": "string", - }, - { - "location": "body", - "name": "job_id", + "name": "time_worked", "type": "string", }, { @@ -4110,50 +4079,96 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "parameters": { "properties": { - "effective_date": { - "description": "The effective date of the employment contract", - "example": "2021-01-01T01:01:01.000Z", - "format": "date-time", - "type": "string", - }, - "end_date": { - "description": "The end date of employment", - "example": "2021-01-01T01:01:01.000Z", - "format": "date-time", - "type": "string", - }, - "grade": { - "description": "Represents the employee’s position within the organizational hierarchy.", + "employment_contract_type": { + "description": "The employment work schedule type (e.g., full-time, part-time)", + "example": "full_time", "properties": { - "description": { - "description": "description of the grade", - "example": "Mid-level employee demonstrating proficiency and autonomy.", - "type": "string", + "source_value": { + "oneOf": [ + { + "type": "string", + }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { + "type": "object", + }, + { + "items": {}, + "type": "array", + }, + ], }, - "id": { - "description": "The reference id", - "example": "1687-3", + "value": { + "enum": [ + "full_time", + "shifts", + "part_time", + "unmapped_value", + null, + ], "type": "string", }, - "name": { - "description": "The reference name", - "example": "1687-4", - "type": "string", + }, + "type": "object", + }, + "employment_type": { + "description": "The type of employment (e.g., contractor, permanent)", + "example": "permanent", + "properties": { + "source_value": { + "oneOf": [ + { + "type": "string", + }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { + "type": "object", + }, + { + "items": {}, + "type": "array", + }, + ], }, - "remote_id": { - "description": "Provider's unique identifier", - "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "value": { + "enum": [ + "contractor", + "intern", + "permanent", + "apprentice", + "freelance", + "terminated", + "temporary", + "seasonal", + "volunteer", + "probation", + "internal", + "external", + "expatriate", + "employer_of_record", + "casual", + "Programme", + "unmapped_value", + null, + ], "type": "string", }, }, "type": "object", }, "id": { - "type": "string", - }, - "job_id": { - "description": "The employee job id", - "example": "5290", + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", "type": "string", }, "job_title": { @@ -4270,9 +4285,10 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "example": "40.00", "type": "string", }, - "payroll_code": { - "description": "The payroll code of the employee", - "example": "PC1", + "time_worked": { + "description": "The time worked for the employee in ISO 8601 duration format", + "example": "P0Y0M0DT8H0M0S", + "format": "duration", "type": "string", }, "unified_custom_fields": { @@ -4284,57 +4300,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "type": "object", }, - "work_time": { - "properties": { - "duration": { - "description": "The work time duration in ISO 8601 duration format", - "example": "P0Y0M0DT8H0M0S", - "format": "duration", - "type": "string", - }, - "duration_unit": { - "description": "The duration unit of the work time", - "example": "month", - "properties": { - "source_value": { - "oneOf": [ - { - "type": "string", - }, - { - "type": "number", - }, - { - "type": "boolean", - }, - { - "type": "object", - }, - { - "items": {}, - "type": "array", - }, - ], - }, - "value": { - "description": "The unified value for the period.", - "enum": [ - "day", - "week", - "month", - "year", - "unmapped_value", - null, - ], - "example": "month", - "type": "string", - }, - }, - "type": "object", - }, - }, - "type": "object", - }, "x-account-id": { "description": "The account identifier", "type": "string", @@ -4432,7 +4397,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "3", "4", "5", - "unmapped_value", null, ], "type": "string", @@ -4485,7 +4449,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "3", "4", "5", - "unmapped_value", null, ], "type": "string", @@ -4525,6 +4488,11 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "name": "id", "type": "string", }, + { + "location": "body", + "name": "employee_id", + "type": "string", + }, { "location": "body", "name": "approver_id", @@ -4580,10 +4548,15 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "example": "1687-4", "type": "string", }, + "employee_id": { + "description": "The employee ID", + "example": "1687-3", + "type": "string", + }, "end_date": { - "description": "Inclusive end date of the time off request (ISO8601 date-time without timezone). The time off includes this day", - "example": "2021-01-01T01:01:01.000", - "format": "datetime-local", + "description": "The end date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", "type": "string", }, "end_half_day": { @@ -4632,9 +4605,9 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "object", }, "start_date": { - "description": "The start date of the time off request (ISO8601 date-time without timezone)", - "example": "2021-01-01T01:01:01.000", - "format": "datetime-local", + "description": "The start date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", "type": "string", }, "start_half_day": { @@ -4683,7 +4656,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "rejected", "pending", "deleted", - "draft", "unmapped_value", null, ], @@ -4817,7 +4789,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "description": "The file format of the file", "properties": { "source_value": { - "example": "application/pdf", + "example": "abc", "oneOf": [ { "type": "string", @@ -6425,7 +6397,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "driver_license", "birth_certificate", "other", - "unmapped_value", null, ], "type": "string", @@ -6434,12 +6405,12 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "object", }, "valid_from": { - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, "valid_to": { - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -6454,11 +6425,11 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "object", }, }, - "hris_download_employee_document": { - "description": "Download Employee Document", + "hris_create_time_off_request": { + "description": "Creates a time off request", "execute": { "bodyType": "json", - "method": "GET", + "method": "POST", "params": [ { "location": "header", @@ -6466,126 +6437,314 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "string", }, { - "location": "path", - "name": "id", + "location": "body", + "name": "employee_id", "type": "string", }, { - "location": "path", - "name": "subResourceId", + "location": "body", + "name": "approver_id", "type": "string", }, { - "location": "query", - "name": "format", - "type": "string", + "location": "body", + "name": "status", + "type": "object", }, { - "location": "query", - "name": "export_format", - "type": "string", - }, - ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/documents/{subResourceId}/download", - }, - "parameters": { - "properties": { - "export_format": { - "description": "The export format of the file", - "example": "text/plain", - "type": "string", - }, - "format": { - "description": "The format to download the file in", - "example": "base64", - "type": "string", - }, - "id": { - "type": "string", - }, - "subResourceId": { + "location": "body", + "name": "start_date", "type": "string", }, - "x-account-id": { - "description": "The account identifier", + { + "location": "body", + "name": "end_date", "type": "string", }, - }, - "required": [ - "id", - "subResourceId", - ], - "type": "object", - }, - }, - "hris_get_benefit": { - "description": "Get Benefit", - "execute": { - "bodyType": "json", - "method": "GET", - "params": [ { - "location": "header", - "name": "x-account-id", + "location": "body", + "name": "start_half_day", "type": "string", }, { - "location": "path", - "name": "id", + "location": "body", + "name": "end_half_day", "type": "string", }, { - "location": "query", - "name": "raw", - "type": "boolean", + "location": "body", + "name": "time_off_policy_id", + "type": "string", }, { - "location": "query", - "name": "proxy", + "location": "body", + "name": "reason", "type": "object", }, { - "location": "query", - "name": "fields", - "type": "string", + "location": "body", + "name": "passthrough", + "type": "object", }, ], - "url": "https://api.stackone.com/unified/hris/benefits/{id}", + "url": "https://api.stackone.com/unified/hris/time_off", }, "parameters": { "properties": { - "fields": { - "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,benefit_type,provider,description,created_at,updated_at", + "approver_id": { + "description": "The approver ID", + "example": "1687-4", "type": "string", }, - "id": { + "employee_id": { + "description": "The employee ID", + "example": "1687-3", "type": "string", }, - "proxy": { - "additionalProperties": true, - "description": "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", - "type": "object", - }, - "raw": { - "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", - "type": "boolean", - }, - "x-account-id": { - "description": "The account identifier", + "end_date": { + "description": "The end date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", "type": "string", }, - }, - "required": [ - "id", - ], - "type": "object", - }, - }, - "hris_get_company": { - "description": "Get Company", - "execute": { - "bodyType": "json", + "end_half_day": { + "description": "True if the end of the time off request ends half way through the day", + "example": true, + "oneOf": [ + { + "type": "boolean", + }, + { + "enum": [ + "true", + "false", + ], + "type": "string", + }, + ], + }, + "passthrough": { + "additionalProperties": true, + "description": "Value to pass through to the provider", + "example": { + "other_known_names": "John Doe", + }, + "type": "object", + }, + "reason": { + "properties": { + "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, + "name": { + "type": "string", + }, + "remote_id": { + "description": "Provider's unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, + }, + "type": "object", + }, + "start_date": { + "description": "The start date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", + "type": "string", + }, + "start_half_day": { + "description": "True if the start of the time off request begins half way through the day", + "example": true, + "oneOf": [ + { + "type": "boolean", + }, + { + "enum": [ + "true", + "false", + ], + "type": "string", + }, + ], + }, + "status": { + "description": "The status of the time off request", + "properties": { + "source_value": { + "oneOf": [ + { + "type": "string", + }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { + "type": "object", + }, + { + "items": {}, + "type": "array", + }, + ], + }, + "value": { + "enum": [ + "approved", + "cancelled", + "rejected", + "pending", + "deleted", + "unmapped_value", + null, + ], + "type": "string", + }, + }, + "type": "object", + }, + "time_off_policy_id": { + "description": "The time off policy id associated with this time off request", + "example": "cx280928933", + "type": "string", + }, + "x-account-id": { + "description": "The account identifier", + "type": "string", + }, + }, + "required": undefined, + "type": "object", + }, + }, + "hris_download_employee_document": { + "description": "Download Employee Document", + "execute": { + "bodyType": "json", + "method": "GET", + "params": [ + { + "location": "header", + "name": "x-account-id", + "type": "string", + }, + { + "location": "path", + "name": "id", + "type": "string", + }, + { + "location": "path", + "name": "subResourceId", + "type": "string", + }, + { + "location": "query", + "name": "format", + "type": "string", + }, + ], + "url": "https://api.stackone.com/unified/hris/employees/{id}/documents/{subResourceId}/download", + }, + "parameters": { + "properties": { + "format": { + "description": "The format to download the file in", + "example": "base64", + "type": "string", + }, + "id": { + "type": "string", + }, + "subResourceId": { + "type": "string", + }, + "x-account-id": { + "description": "The account identifier", + "type": "string", + }, + }, + "required": [ + "id", + "subResourceId", + ], + "type": "object", + }, + }, + "hris_get_benefit": { + "description": "Get Benefit", + "execute": { + "bodyType": "json", + "method": "GET", + "params": [ + { + "location": "header", + "name": "x-account-id", + "type": "string", + }, + { + "location": "path", + "name": "id", + "type": "string", + }, + { + "location": "query", + "name": "raw", + "type": "boolean", + }, + { + "location": "query", + "name": "proxy", + "type": "object", + }, + { + "location": "query", + "name": "fields", + "type": "string", + }, + ], + "url": "https://api.stackone.com/unified/hris/benefits/{id}", + }, + "parameters": { + "properties": { + "fields": { + "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", + "example": "id,remote_id,name,benefit_type,provider,description,created_at,updated_at", + "type": "string", + }, + "id": { + "type": "string", + }, + "proxy": { + "additionalProperties": true, + "description": "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", + "type": "object", + }, + "raw": { + "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", + "type": "boolean", + }, + "x-account-id": { + "description": "The account identifier", + "type": "string", + }, + }, + "required": [ + "id", + ], + "type": "object", + }, + }, + "hris_get_company": { + "description": "Get Company", + "execute": { + "bodyType": "json", "method": "GET", "params": [ { @@ -6684,7 +6843,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,distribution_percentage,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id", + "example": "id,remote_id,name,type,distribution_percentage,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, "id": { @@ -6827,7 +6986,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "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,documents,created_at,updated_at,benefits,employee_number,national_identity_number,national_identity_numbers,skills", + "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,benefits,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,documents,created_at,updated_at,employee_number,national_identity_number,national_identity_numbers,skills", "type": "string", }, "id": { @@ -7147,7 +7306,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,end_date,employment_type,employment_contract_type,change_reason,grade,work_time,payroll_code,fte,created_at,updated_at,start_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", + "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,employment_type,employment_contract_type,time_worked,created_at,updated_at,start_date,end_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", "type": "string", }, "id": { @@ -7250,89 +7409,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "object", }, }, - "hris_get_employee_task": { - "description": "Get Employee Task", - "execute": { - "bodyType": "json", - "method": "GET", - "params": [ - { - "location": "header", - "name": "x-account-id", - "type": "string", - }, - { - "location": "path", - "name": "id", - "type": "string", - }, - { - "location": "path", - "name": "subResourceId", - "type": "string", - }, - { - "location": "query", - "name": "raw", - "type": "boolean", - }, - { - "location": "query", - "name": "proxy", - "type": "object", - }, - { - "location": "query", - "name": "fields", - "type": "string", - }, - { - "location": "query", - "name": "expand", - "type": "string", - }, - ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/tasks/{subResourceId}", - }, - "parameters": { - "properties": { - "expand": { - "description": "The comma separated list of fields that will be expanded in the response", - "example": "attachments", - "type": "string", - }, - "fields": { - "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,name,description,type,status,due_date,completion_date,assigned_by_employee_id,remote_assigned_by_employee_id,assigned_by_employee_name,link_to_task,extracted_links,next_task_id,remote_next_task_id,parent_process_name,comments,attachments,created_at,updated_at", - "type": "string", - }, - "id": { - "type": "string", - }, - "proxy": { - "additionalProperties": true, - "description": "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", - "type": "object", - }, - "raw": { - "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", - "type": "boolean", - }, - "subResourceId": { - "type": "string", - }, - "x-account-id": { - "description": "The account identifier", - "type": "string", - }, - }, - "required": [ - "id", - "subResourceId", - ], - "type": "object", - }, - }, "hris_get_employee_time_off_balance": { "description": "Get Employee Time Off Balance", "execute": { @@ -7469,7 +7545,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "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,duration,created_at,updated_at,policy", + "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,duration,time_off_policy_id,remote_time_off_policy_id,reason,created_at,updated_at,policy", "type": "string", }, "id": { @@ -7620,7 +7696,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,end_date,employment_type,employment_contract_type,change_reason,grade,work_time,payroll_code,fte,created_at,updated_at,start_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", + "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,employment_type,employment_contract_type,time_worked,created_at,updated_at,start_date,end_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", "type": "string", }, "id": { @@ -7684,7 +7760,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id", + "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, "id": { @@ -7748,7 +7824,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id", + "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, "id": { @@ -8078,7 +8154,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "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,duration,created_at,updated_at,policy", + "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,duration,time_off_policy_id,remote_time_off_policy_id,reason,created_at,updated_at,policy", "type": "string", }, "id": { @@ -8442,7 +8518,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,distribution_percentage,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id", + "example": "id,remote_id,name,type,distribution_percentage,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, "filter": { @@ -8912,7 +8988,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,end_date,employment_type,employment_contract_type,change_reason,grade,work_time,payroll_code,fte,created_at,updated_at,start_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", + "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,employment_type,employment_contract_type,time_worked,created_at,updated_at,start_date,end_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", "type": "string", }, "filter": { @@ -9057,115 +9133,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "object", }, }, - "hris_list_employee_tasks": { - "description": "List Employee Tasks", - "execute": { - "bodyType": "json", - "method": "GET", - "params": [ - { - "location": "header", - "name": "x-account-id", - "type": "string", - }, - { - "location": "path", - "name": "id", - "type": "string", - }, - { - "location": "query", - "name": "raw", - "type": "boolean", - }, - { - "location": "query", - "name": "proxy", - "type": "object", - }, - { - "location": "query", - "name": "fields", - "type": "string", - }, - { - "location": "query", - "name": "filter", - "type": "object", - }, - { - "location": "query", - "name": "page_size", - "type": "string", - }, - { - "location": "query", - "name": "next", - "type": "string", - }, - { - "location": "query", - "name": "expand", - "type": "string", - }, - ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/tasks", - }, - "parameters": { - "properties": { - "expand": { - "description": "The comma separated list of fields that will be expanded in the response", - "example": "attachments", - "type": "string", - }, - "fields": { - "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,name,description,type,status,due_date,completion_date,assigned_by_employee_id,remote_assigned_by_employee_id,assigned_by_employee_name,link_to_task,extracted_links,next_task_id,remote_next_task_id,parent_process_name,comments,attachments,created_at,updated_at", - "type": "string", - }, - "filter": { - "description": "Filter parameters that allow greater customisation of the list response", - "properties": { - "updated_after": { - "additionalProperties": false, - "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", - }, - }, - "type": "object", - }, - "id": { - "type": "string", - }, - "next": { - "description": "The unified cursor", - "type": "string", - }, - "page_size": { - "description": "The number of results per page (default value is 25)", - "type": "string", - }, - "proxy": { - "additionalProperties": true, - "description": "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", - "type": "object", - }, - "raw": { - "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", - "type": "boolean", - }, - "x-account-id": { - "description": "The account identifier", - "type": "string", - }, - }, - "required": [ - "id", - ], - "type": "object", - }, - }, "hris_list_employee_time_off_balances": { "description": "List Employee Time Off Balances", "execute": { @@ -9340,37 +9307,8 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "string", }, "filter": { - "description": "HRIS Time-Off Policies filters", + "description": "Filter parameters that allow greater customisation of the list response", "properties": { - "type": { - "description": "Filter to select time-off policies by type", - "enum": [ - "sick", - "unmapped_value", - "vacation", - "long_term_disability", - "short_term_disability", - "absent", - "comp_time", - "training", - "annual_leave", - "leave_of_absence", - "break", - "child_care_leave", - "maternity_leave", - "jury_duty", - "sabbatical", - "accident", - "paid", - "unpaid", - "holiday", - "personal", - "in_lieu", - "bereavement", - null, - ], - "type": "string", - }, "updated_after": { "additionalProperties": false, "description": "Use a string with a date to only select results updated after that given date", @@ -9474,7 +9412,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "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,duration,created_at,updated_at,policy", + "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,duration,time_off_policy_id,remote_time_off_policy_id,reason,created_at,updated_at,policy", "type": "string", }, "filter": { @@ -9689,7 +9627,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "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,documents,created_at,updated_at,benefits,employee_number,national_identity_number,national_identity_numbers,skills", + "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,benefits,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,documents,created_at,updated_at,employee_number,national_identity_number,national_identity_numbers,skills", "type": "string", }, "filter": { @@ -9801,7 +9739,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,end_date,employment_type,employment_contract_type,change_reason,grade,work_time,payroll_code,fte,created_at,updated_at,start_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", + "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,employment_type,employment_contract_type,time_worked,created_at,updated_at,start_date,end_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", "type": "string", }, "filter": { @@ -9890,7 +9828,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id", + "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, "filter": { @@ -9979,7 +9917,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id", + "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, "filter": { @@ -10356,37 +10294,8 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "string", }, "filter": { - "description": "HRIS Time-Off Policies filters", + "description": "Filter parameters that allow greater customisation of the list response", "properties": { - "type": { - "description": "Filter to select time-off policies by type", - "enum": [ - "sick", - "unmapped_value", - "vacation", - "long_term_disability", - "short_term_disability", - "absent", - "comp_time", - "training", - "annual_leave", - "leave_of_absence", - "break", - "child_care_leave", - "maternity_leave", - "jury_duty", - "sabbatical", - "accident", - "paid", - "unpaid", - "holiday", - "personal", - "in_lieu", - "bereavement", - null, - ], - "type": "string", - }, "updated_after": { "additionalProperties": false, "description": "Use a string with a date to only select results updated after that given date", @@ -10480,7 +10389,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "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,duration,created_at,updated_at,policy", + "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,duration,time_off_policy_id,remote_time_off_policy_id,reason,created_at,updated_at,policy", "type": "string", }, "filter": { @@ -10678,6 +10587,11 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "name": "work_phone_number", "type": "string", }, + { + "location": "body", + "name": "job_id", + "type": "string", + }, { "location": "body", "name": "job_title", @@ -10748,6 +10662,16 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "name": "start_date", "type": "string", }, + { + "location": "body", + "name": "employment_type", + "type": "object", + }, + { + "location": "body", + "name": "employment_contract_type", + "type": "object", + }, { "location": "body", "name": "employment_status", @@ -11266,7 +11190,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "date_of_birth": { "description": "The employee date_of_birth", - "example": "1990-01-01T00:00:00.000Z", + "example": "1990-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -11293,51 +11217,103 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "employment": { "description": "The employee employment", "properties": { - "end_date": { - "description": "The end date of employment", - "example": "2021-01-01T01:01:01.000Z", - "format": "date-time", - "type": "string", - }, - "grade": { - "description": "Represents the employee’s position within the organizational hierarchy.", + "employment_contract_type": { + "description": "The employment work schedule type (e.g., full-time, part-time)", + "example": "full_time", "properties": { - "description": { - "description": "description of the grade", - "example": "Mid-level employee demonstrating proficiency and autonomy.", - "type": "string", + "source_value": { + "oneOf": [ + { + "type": "string", + }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { + "type": "object", + }, + { + "items": {}, + "type": "array", + }, + ], }, - "id": { - "description": "The reference id", - "example": "1687-3", + "value": { + "enum": [ + "full_time", + "shifts", + "part_time", + "unmapped_value", + null, + ], "type": "string", }, - "name": { - "description": "The reference name", - "example": "1687-4", - "type": "string", + }, + "type": "object", + }, + "employment_type": { + "description": "The type of employment (e.g., contractor, permanent)", + "example": "permanent", + "properties": { + "source_value": { + "oneOf": [ + { + "type": "string", + }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { + "type": "object", + }, + { + "items": {}, + "type": "array", + }, + ], }, - "remote_id": { - "description": "Provider's unique identifier", - "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "value": { + "enum": [ + "contractor", + "intern", + "permanent", + "apprentice", + "freelance", + "terminated", + "temporary", + "seasonal", + "volunteer", + "probation", + "internal", + "external", + "expatriate", + "employer_of_record", + "casual", + "Programme", + "unmapped_value", + null, + ], "type": "string", }, }, "type": "object", }, + "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, "job_title": { "description": "The job title of the employee", "example": "Software Engineer", "type": "string", }, - "passthrough": { - "additionalProperties": true, - "description": "Value to pass through to the provider", - "example": { - "other_known_names": "John Doe", - }, - "type": "object", - }, "pay_currency": { "description": "The currency used for pay", "example": "USD", @@ -11439,9 +11415,10 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "example": "40.00", "type": "string", }, - "payroll_code": { - "description": "The payroll code of the employee", - "example": "PC1", + "time_worked": { + "description": "The time worked for the employee in ISO 8601 duration format", + "example": "P0Y0M0DT8H0M0S", + "format": "duration", "type": "string", }, "unified_custom_fields": { @@ -11453,56 +11430,42 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "type": "object", }, - "work_time": { - "properties": { - "duration": { - "description": "The work time duration in ISO 8601 duration format", - "example": "P0Y0M0DT8H0M0S", - "format": "duration", + }, + "type": "object", + }, + "employment_contract_type": { + "description": "The employment work schedule type (e.g., full-time, part-time)", + "example": "full_time", + "properties": { + "source_value": { + "oneOf": [ + { "type": "string", }, - "duration_unit": { - "description": "The duration unit of the work time", - "example": "month", - "properties": { - "source_value": { - "oneOf": [ - { - "type": "string", - }, - { - "type": "number", - }, - { - "type": "boolean", - }, - { - "type": "object", - }, - { - "items": {}, - "type": "array", - }, - ], - }, - "value": { - "description": "The unified value for the period.", - "enum": [ - "day", - "week", - "month", - "year", - "unmapped_value", - null, - ], - "example": "month", - "type": "string", - }, - }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { "type": "object", }, - }, - "type": "object", + { + "items": {}, + "type": "array", + }, + ], + }, + "value": { + "enum": [ + "full_time", + "shifts", + "part_time", + "unmapped_value", + null, + ], + "type": "string", }, }, "type": "object", @@ -11547,6 +11510,56 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "type": "object", }, + "employment_type": { + "description": "The employee employment type", + "example": "full_time", + "properties": { + "source_value": { + "oneOf": [ + { + "type": "string", + }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { + "type": "object", + }, + { + "items": {}, + "type": "array", + }, + ], + }, + "value": { + "enum": [ + "contractor", + "intern", + "permanent", + "apprentice", + "freelance", + "terminated", + "temporary", + "seasonal", + "volunteer", + "probation", + "internal", + "external", + "expatriate", + "employer_of_record", + "casual", + "Programme", + "unmapped_value", + null, + ], + "type": "string", + }, + }, + "type": "object", + }, "ethnicity": { "description": "The employee ethnicity", "example": "white", @@ -11637,7 +11650,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "hire_date": { "description": "The employee hire date", - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -12007,8 +12020,13 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "id": { "type": "string", }, + "job_id": { + "description": "The employee job id", + "example": "R-6789", + "type": "string", + }, "job_title": { - "description": "If the source of the job_title is the Employee's current Employment, and that Employment pertains exclusively to this Employee, then the active Employment job_title will also be written", + "description": "The employee job title", "example": "Physicist", "type": "string", }, @@ -12563,7 +12581,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "preferred_language": { "description": "The employee preferred language", - "example": "eng", + "example": "en_US", "properties": { "source_value": { "oneOf": [ @@ -12603,7 +12621,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "cat", "cha", "ces", - "dan", "deu", "div", "dzo", @@ -12620,7 +12637,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "fra", "gle", "grn", - "guj", "glv", "heb", "hin", @@ -12651,8 +12667,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "mah", "mri", "mkd", - "mon", - "mar", "msa", "mlt", "mya", @@ -12667,18 +12681,15 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "pol", "pus", "por", - "que", "rar", "roh", "rup", "ron", "rus", "kin", - "sme", "sag", "sin", "slk", - "slv", "smo", "sna", "som", @@ -12688,24 +12699,11 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "swe", "swa", "tam", - "tel", "tgk", "tha", "tir", "tig", - "tuk", - "tsn", - "ton", - "tur", - "tso", - "ukr", - "urd", - "uzb", - "ven", - "vie", - "xho", "zho", - "zul", "unmapped_value", null, ], @@ -12717,7 +12715,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "start_date": { "description": "The employee start date", - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -13128,7 +13126,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "string", }, { - "location": "path", + "location": "body", "name": "id", "type": "string", }, @@ -13169,27 +13167,17 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, { "location": "body", - "name": "effective_date", - "type": "string", - }, - { - "location": "body", - "name": "end_date", - "type": "string", - }, - { - "location": "body", - "name": "grade", + "name": "employment_type", "type": "object", }, { "location": "body", - "name": "work_time", + "name": "employment_contract_type", "type": "object", }, { "location": "body", - "name": "payroll_code", + "name": "time_worked", "type": "string", }, { @@ -13202,45 +13190,96 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, "parameters": { "properties": { - "effective_date": { - "description": "The effective date of the employment contract", - "example": "2021-01-01T01:01:01.000Z", - "format": "date-time", - "type": "string", - }, - "end_date": { - "description": "The end date of employment", - "example": "2021-01-01T01:01:01.000Z", - "format": "date-time", - "type": "string", - }, - "grade": { - "description": "Represents the employee’s position within the organizational hierarchy.", + "employment_contract_type": { + "description": "The employment work schedule type (e.g., full-time, part-time)", + "example": "full_time", "properties": { - "description": { - "description": "description of the grade", - "example": "Mid-level employee demonstrating proficiency and autonomy.", - "type": "string", + "source_value": { + "oneOf": [ + { + "type": "string", + }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { + "type": "object", + }, + { + "items": {}, + "type": "array", + }, + ], }, - "id": { - "description": "The reference id", - "example": "1687-3", + "value": { + "enum": [ + "full_time", + "shifts", + "part_time", + "unmapped_value", + null, + ], "type": "string", }, - "name": { - "description": "The reference name", - "example": "1687-4", - "type": "string", + }, + "type": "object", + }, + "employment_type": { + "description": "The type of employment (e.g., contractor, permanent)", + "example": "permanent", + "properties": { + "source_value": { + "oneOf": [ + { + "type": "string", + }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { + "type": "object", + }, + { + "items": {}, + "type": "array", + }, + ], }, - "remote_id": { - "description": "Provider's unique identifier", - "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "value": { + "enum": [ + "contractor", + "intern", + "permanent", + "apprentice", + "freelance", + "terminated", + "temporary", + "seasonal", + "volunteer", + "probation", + "internal", + "external", + "expatriate", + "employer_of_record", + "casual", + "Programme", + "unmapped_value", + null, + ], "type": "string", }, }, "type": "object", }, "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", "type": "string", }, "job_title": { @@ -13328,103 +13367,53 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 { "type": "object", }, - { - "items": {}, - "type": "array", - }, - ], - }, - "value": { - "enum": [ - "hour", - "day", - "week", - "every_two_weeks", - "month", - "quarter", - "every_six_months", - "year", - "unmapped_value", - null, - ], - "type": "string", - }, - }, - "type": "object", - }, - "pay_rate": { - "description": "The pay rate for the employee", - "example": "40.00", - "type": "string", - }, - "payroll_code": { - "description": "The payroll code of the employee", - "example": "PC1", - "type": "string", - }, - "subResourceId": { - "type": "string", - }, - "unified_custom_fields": { - "additionalProperties": true, - "description": "Custom Unified Fields configured in your StackOne project", - "example": { - "my_project_custom_field_1": "REF-1236", - "my_project_custom_field_2": "some other value", - }, - "type": "object", - }, - "work_time": { - "properties": { - "duration": { - "description": "The work time duration in ISO 8601 duration format", - "example": "P0Y0M0DT8H0M0S", - "format": "duration", - "type": "string", - }, - "duration_unit": { - "description": "The duration unit of the work time", - "example": "month", - "properties": { - "source_value": { - "oneOf": [ - { - "type": "string", - }, - { - "type": "number", - }, - { - "type": "boolean", - }, - { - "type": "object", - }, - { - "items": {}, - "type": "array", - }, - ], - }, - "value": { - "description": "The unified value for the period.", - "enum": [ - "day", - "week", - "month", - "year", - "unmapped_value", - null, - ], - "example": "month", - "type": "string", + { + "items": {}, + "type": "array", }, - }, - "type": "object", + ], + }, + "value": { + "enum": [ + "hour", + "day", + "week", + "every_two_weeks", + "month", + "quarter", + "every_six_months", + "year", + "unmapped_value", + null, + ], + "type": "string", }, }, "type": "object", }, + "pay_rate": { + "description": "The pay rate for the employee", + "example": "40.00", + "type": "string", + }, + "subResourceId": { + "type": "string", + }, + "time_worked": { + "description": "The time worked for the employee in ISO 8601 duration format", + "example": "P0Y0M0DT8H0M0S", + "format": "duration", + "type": "string", + }, + "unified_custom_fields": { + "additionalProperties": true, + "description": "Custom Unified Fields configured in your StackOne project", + "example": { + "my_project_custom_field_1": "REF-1236", + "my_project_custom_field_2": "some other value", + }, + "type": "object", + }, "x-account-id": { "description": "The account identifier", "type": "string", @@ -13458,6 +13447,11 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "name": "subResourceId", "type": "string", }, + { + "location": "body", + "name": "employee_id", + "type": "string", + }, { "location": "body", "name": "approver_id", @@ -13513,10 +13507,15 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "example": "1687-4", "type": "string", }, + "employee_id": { + "description": "The employee ID", + "example": "1687-3", + "type": "string", + }, "end_date": { - "description": "Inclusive end date of the time off request (ISO8601 date-time without timezone). The time off includes this day", - "example": "2021-01-01T01:01:01.000", - "format": "datetime-local", + "description": "The end date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", "type": "string", }, "end_half_day": { @@ -13565,9 +13564,9 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "object", }, "start_date": { - "description": "The start date of the time off request (ISO8601 date-time without timezone)", - "example": "2021-01-01T01:01:01.000", - "format": "datetime-local", + "description": "The start date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", "type": "string", }, "start_half_day": { @@ -13616,7 +13615,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "rejected", "pending", "deleted", - "draft", "unmapped_value", null, ], @@ -13759,7 +13757,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "description": "The file format of the file", "properties": { "source_value": { - "example": "application/pdf", + "example": "abc", "oneOf": [ { "type": "string", @@ -15370,7 +15368,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "driver_license", "birth_certificate", "other", - "unmapped_value", null, ], "type": "string", @@ -15379,12 +15376,12 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "object", }, "valid_from": { - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, "valid_to": { - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -15400,6 +15397,214 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "type": "object", }, }, + "hris_update_time_off_request": { + "description": "Update time off request", + "execute": { + "bodyType": "json", + "method": "PATCH", + "params": [ + { + "location": "header", + "name": "x-account-id", + "type": "string", + }, + { + "location": "path", + "name": "id", + "type": "string", + }, + { + "location": "body", + "name": "employee_id", + "type": "string", + }, + { + "location": "body", + "name": "approver_id", + "type": "string", + }, + { + "location": "body", + "name": "status", + "type": "object", + }, + { + "location": "body", + "name": "start_date", + "type": "string", + }, + { + "location": "body", + "name": "end_date", + "type": "string", + }, + { + "location": "body", + "name": "start_half_day", + "type": "string", + }, + { + "location": "body", + "name": "end_half_day", + "type": "string", + }, + { + "location": "body", + "name": "time_off_policy_id", + "type": "string", + }, + { + "location": "body", + "name": "reason", + "type": "object", + }, + { + "location": "body", + "name": "passthrough", + "type": "object", + }, + ], + "url": "https://api.stackone.com/unified/hris/time_off/{id}", + }, + "parameters": { + "properties": { + "approver_id": { + "description": "The approver ID", + "example": "1687-4", + "type": "string", + }, + "employee_id": { + "description": "The employee ID", + "example": "1687-3", + "type": "string", + }, + "end_date": { + "description": "The end date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", + "type": "string", + }, + "end_half_day": { + "description": "True if the end of the time off request ends half way through the day", + "example": true, + "oneOf": [ + { + "type": "boolean", + }, + { + "enum": [ + "true", + "false", + ], + "type": "string", + }, + ], + }, + "id": { + "type": "string", + }, + "passthrough": { + "additionalProperties": true, + "description": "Value to pass through to the provider", + "example": { + "other_known_names": "John Doe", + }, + "type": "object", + }, + "reason": { + "properties": { + "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, + "name": { + "type": "string", + }, + "remote_id": { + "description": "Provider's unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, + }, + "type": "object", + }, + "start_date": { + "description": "The start date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", + "type": "string", + }, + "start_half_day": { + "description": "True if the start of the time off request begins half way through the day", + "example": true, + "oneOf": [ + { + "type": "boolean", + }, + { + "enum": [ + "true", + "false", + ], + "type": "string", + }, + ], + }, + "status": { + "description": "The status of the time off request", + "properties": { + "source_value": { + "oneOf": [ + { + "type": "string", + }, + { + "type": "number", + }, + { + "type": "boolean", + }, + { + "type": "object", + }, + { + "items": {}, + "type": "array", + }, + ], + }, + "value": { + "enum": [ + "approved", + "cancelled", + "rejected", + "pending", + "deleted", + "unmapped_value", + null, + ], + "type": "string", + }, + }, + "type": "object", + }, + "time_off_policy_id": { + "description": "The time off policy id associated with this time off request", + "example": "cx280928933", + "type": "string", + }, + "x-account-id": { + "description": "The account identifier", + "type": "string", + }, + }, + "required": [ + "id", + ], + "type": "object", + }, + }, "hris_upload_employee_document": { "description": "Upload Employee Document", "execute": { @@ -15443,12 +15648,12 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 }, { "location": "body", - "name": "confidential", + "name": "category", "type": "object", }, { "location": "body", - "name": "category", + "name": "confidential", "type": "object", }, ], @@ -15538,7 +15743,6 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "enum": [ "true", "false", - "unmapped_value", null, ], "example": "true", @@ -15556,7 +15760,7 @@ exports[`OpenAPIParser Snapshot Tests should parse all OpenAPI specs correctly 1 "description": "The file format of the file", "properties": { "source_value": { - "example": "application/pdf", + "example": "abc", "oneOf": [ { "type": "string", diff --git a/src/tests/fetch-specs.spec.ts b/src/tests/fetch-specs.spec.ts index 6c691c7..0a26fad 100644 --- a/src/tests/fetch-specs.spec.ts +++ b/src/tests/fetch-specs.spec.ts @@ -1,7 +1,17 @@ -import { afterEach, beforeAll, beforeEach, describe, expect, it, mock, spyOn } from 'bun:test'; +import { + type Mock, + afterEach, + beforeAll, + beforeEach, + describe, + expect, + it, + mock, + spyOn, +} from 'bun:test'; import fs from 'node:fs'; import path from 'node:path'; -import { mockFetch } from './utils/fetch-mock'; +import { type FetchMockResult, mockFetch } from './utils/fetch-mock'; // Mock environment variables beforeAll(() => { @@ -10,8 +20,8 @@ beforeAll(() => { describe('fetch-specs script', () => { // Mocks for fetch and fs - let fetchMock; - let writeFileSyncSpy; + let fetchMock: FetchMockResult; + let writeFileSyncSpy: Mock; beforeEach(() => { // Set up fetch mock with different responses based on URL @@ -90,6 +100,6 @@ describe('fetch-specs script', () => { expect(writeFileSyncSpy).toHaveBeenCalled(); const writeFileCall = writeFileSyncSpy.mock.calls[0]; expect(writeFileCall[0]).toContain('hris.json'); - expect(JSON.parse(writeFileCall[1])).toEqual(hrisApiSpec); + expect(JSON.parse(writeFileCall[1] as string)).toEqual(hrisApiSpec); }); }); diff --git a/src/tests/utils/fetch-mock.ts b/src/tests/utils/fetch-mock.ts index 94dd425..e3d908c 100644 --- a/src/tests/utils/fetch-mock.ts +++ b/src/tests/utils/fetch-mock.ts @@ -10,7 +10,7 @@ export interface MockFetchResponse { status?: number; statusText?: string; ok?: boolean; - json?: () => Promise; + json?: () => Promise; text?: () => Promise; headers?: Record; } @@ -48,7 +48,7 @@ export interface FetchMockResult { /** * The captured request body from the last fetch call */ - requestBody: any; + requestBody: unknown; /** * The captured URL from the last fetch call diff --git a/src/toolsets/tests/__snapshots__/stackone.spec.ts.snap b/src/toolsets/tests/__snapshots__/stackone.spec.ts.snap index dd85573..fa60b8b 100644 --- a/src/toolsets/tests/__snapshots__/stackone.spec.ts.snap +++ b/src/toolsets/tests/__snapshots__/stackone.spec.ts.snap @@ -656,7 +656,7 @@ Map { }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "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,documents,created_at,updated_at,benefits,employee_number,national_identity_number,national_identity_numbers,skills", + "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,benefits,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,documents,created_at,updated_at,employee_number,national_identity_number,national_identity_numbers,skills", "type": "string", }, "file_path": { @@ -822,6 +822,11 @@ Map { "name": "work_phone_number", "type": "string", }, + { + "location": "body", + "name": "job_id", + "type": "string", + }, { "location": "body", "name": "job_title", @@ -892,6 +897,16 @@ Map { "name": "start_date", "type": "string", }, + { + "location": "body", + "name": "employment_type", + "type": "object", + }, + { + "location": "body", + "name": "employment_contract_type", + "type": "object", + }, { "location": "body", "name": "employment_status", @@ -1411,7 +1426,7 @@ Map { }, "date_of_birth": { "description": "The employee date_of_birth", - "example": "1990-01-01T00:00:00.000Z", + "example": "1990-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -1438,51 +1453,63 @@ Map { "employment": { "description": "The employee employment", "properties": { - "end_date": { - "description": "The end date of employment", - "example": "2021-01-01T01:01:01.000Z", - "format": "date-time", - "type": "string", - }, - "grade": { - "description": "Represents the employee’s position within the organizational hierarchy.", + "employment_contract_type": { + "description": "The employment work schedule type (e.g., full-time, part-time)", + "example": "full_time", "properties": { - "description": { - "description": "description of the grade", - "example": "Mid-level employee demonstrating proficiency and autonomy.", - "type": "string", - }, - "id": { - "description": "The reference id", - "example": "1687-3", - "type": "string", - }, - "name": { - "description": "The reference name", - "example": "1687-4", + "value": { + "enum": [ + "full_time", + "shifts", + "part_time", + "unmapped_value", + null, + ], "type": "string", }, - "remote_id": { - "description": "Provider's unique identifier", - "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + }, + "type": "object", + }, + "employment_type": { + "description": "The type of employment (e.g., contractor, permanent)", + "example": "permanent", + "properties": { + "value": { + "enum": [ + "contractor", + "intern", + "permanent", + "apprentice", + "freelance", + "terminated", + "temporary", + "seasonal", + "volunteer", + "probation", + "internal", + "external", + "expatriate", + "employer_of_record", + "casual", + "Programme", + "unmapped_value", + null, + ], "type": "string", }, }, "type": "object", }, + "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, "job_title": { "description": "The job title of the employee", "example": "Software Engineer", "type": "string", }, - "passthrough": { - "additionalProperties": true, - "description": "Value to pass through to the provider", - "example": { - "other_known_names": "John Doe", - }, - "type": "object", - }, "pay_currency": { "description": "The currency used for pay", "example": "USD", @@ -1544,9 +1571,10 @@ Map { "example": "40.00", "type": "string", }, - "payroll_code": { - "description": "The payroll code of the employee", - "example": "PC1", + "time_worked": { + "description": "The time worked for the employee in ISO 8601 duration format", + "example": "P0Y0M0DT8H0M0S", + "format": "duration", "type": "string", }, "unified_custom_fields": { @@ -1558,36 +1586,22 @@ Map { }, "type": "object", }, - "work_time": { - "properties": { - "duration": { - "description": "The work time duration in ISO 8601 duration format", - "example": "P0Y0M0DT8H0M0S", - "format": "duration", - "type": "string", - }, - "duration_unit": { - "description": "The duration unit of the work time", - "example": "month", - "properties": { - "value": { - "description": "The unified value for the period.", - "enum": [ - "day", - "week", - "month", - "year", - "unmapped_value", - null, - ], - "example": "month", - "type": "string", - }, - }, - "type": "object", - }, - }, - "type": "object", + }, + "type": "object", + }, + "employment_contract_type": { + "description": "The employment work schedule type (e.g., full-time, part-time)", + "example": "full_time", + "properties": { + "value": { + "enum": [ + "full_time", + "shifts", + "part_time", + "unmapped_value", + null, + ], + "type": "string", }, }, "type": "object", @@ -1612,6 +1626,36 @@ Map { }, "type": "object", }, + "employment_type": { + "description": "The employee employment type", + "example": "full_time", + "properties": { + "value": { + "enum": [ + "contractor", + "intern", + "permanent", + "apprentice", + "freelance", + "terminated", + "temporary", + "seasonal", + "volunteer", + "probation", + "internal", + "external", + "expatriate", + "employer_of_record", + "casual", + "Programme", + "unmapped_value", + null, + ], + "type": "string", + }, + }, + "type": "object", + }, "ethnicity": { "description": "The employee ethnicity", "example": "white", @@ -1666,7 +1710,7 @@ Map { }, "hire_date": { "description": "The employee hire date", - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -1993,8 +2037,13 @@ Map { }, "type": "object", }, + "job_id": { + "description": "The employee job id", + "example": "R-6789", + "type": "string", + }, "job_title": { - "description": "If the source of the job_title is the Employee's current Employment, and that Employment pertains exclusively to this Employee, then the active Employment job_title will also be written", + "description": "The employee job title", "example": "Physicist", "type": "string", }, @@ -2489,7 +2538,7 @@ Map { }, "preferred_language": { "description": "The employee preferred language", - "example": "eng", + "example": "en_US", "properties": { "value": { "description": "The ISO639-2 Code of the language", @@ -2509,7 +2558,6 @@ Map { "cat", "cha", "ces", - "dan", "deu", "div", "dzo", @@ -2526,7 +2574,6 @@ Map { "fra", "gle", "grn", - "guj", "glv", "heb", "hin", @@ -2557,8 +2604,6 @@ Map { "mah", "mri", "mkd", - "mon", - "mar", "msa", "mlt", "mya", @@ -2573,18 +2618,15 @@ Map { "pol", "pus", "por", - "que", "rar", "roh", "rup", "ron", "rus", "kin", - "sme", "sag", "sin", "slk", - "slv", "smo", "sna", "som", @@ -2594,24 +2636,11 @@ Map { "swe", "swa", "tam", - "tel", "tgk", "tha", "tir", "tig", - "tuk", - "tsn", - "ton", - "tur", - "tso", - "ukr", - "urd", - "uzb", - "ven", - "vie", - "xho", "zho", - "zul", "unmapped_value", null, ], @@ -2623,7 +2652,7 @@ Map { }, "start_date": { "description": "The employee start date", - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -3033,6 +3062,11 @@ Map { "name": "work_phone_number", "type": "string", }, + { + "location": "body", + "name": "job_id", + "type": "string", + }, { "location": "body", "name": "job_title", @@ -3103,6 +3137,16 @@ Map { "name": "start_date", "type": "string", }, + { + "location": "body", + "name": "employment_type", + "type": "object", + }, + { + "location": "body", + "name": "employment_contract_type", + "type": "object", + }, { "location": "body", "name": "employment_status", @@ -3239,7 +3283,7 @@ Map { }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "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,documents,created_at,updated_at,benefits,employee_number,national_identity_number,national_identity_numbers,skills", + "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,benefits,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,documents,created_at,updated_at,employee_number,national_identity_number,national_identity_numbers,skills", "type": "string", }, "file_path": { @@ -3377,6 +3421,11 @@ Map { "name": "work_phone_number", "type": "string", }, + { + "location": "body", + "name": "job_id", + "type": "string", + }, { "location": "body", "name": "job_title", @@ -3447,6 +3496,16 @@ Map { "name": "start_date", "type": "string", }, + { + "location": "body", + "name": "employment_type", + "type": "object", + }, + { + "location": "body", + "name": "employment_contract_type", + "type": "object", + }, { "location": "body", "name": "employment_status", @@ -3939,7 +3998,7 @@ Map { }, "date_of_birth": { "description": "The employee date_of_birth", - "example": "1990-01-01T00:00:00.000Z", + "example": "1990-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -3966,51 +4025,63 @@ Map { "employment": { "description": "The employee employment", "properties": { - "end_date": { - "description": "The end date of employment", - "example": "2021-01-01T01:01:01.000Z", - "format": "date-time", - "type": "string", - }, - "grade": { - "description": "Represents the employee’s position within the organizational hierarchy.", + "employment_contract_type": { + "description": "The employment work schedule type (e.g., full-time, part-time)", + "example": "full_time", "properties": { - "description": { - "description": "description of the grade", - "example": "Mid-level employee demonstrating proficiency and autonomy.", - "type": "string", - }, - "id": { - "description": "The reference id", - "example": "1687-3", - "type": "string", - }, - "name": { - "description": "The reference name", - "example": "1687-4", + "value": { + "enum": [ + "full_time", + "shifts", + "part_time", + "unmapped_value", + null, + ], "type": "string", }, - "remote_id": { - "description": "Provider's unique identifier", - "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + }, + "type": "object", + }, + "employment_type": { + "description": "The type of employment (e.g., contractor, permanent)", + "example": "permanent", + "properties": { + "value": { + "enum": [ + "contractor", + "intern", + "permanent", + "apprentice", + "freelance", + "terminated", + "temporary", + "seasonal", + "volunteer", + "probation", + "internal", + "external", + "expatriate", + "employer_of_record", + "casual", + "Programme", + "unmapped_value", + null, + ], "type": "string", }, }, "type": "object", }, + "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, "job_title": { "description": "The job title of the employee", "example": "Software Engineer", "type": "string", }, - "passthrough": { - "additionalProperties": true, - "description": "Value to pass through to the provider", - "example": { - "other_known_names": "John Doe", - }, - "type": "object", - }, "pay_currency": { "description": "The currency used for pay", "example": "USD", @@ -4072,9 +4143,10 @@ Map { "example": "40.00", "type": "string", }, - "payroll_code": { - "description": "The payroll code of the employee", - "example": "PC1", + "time_worked": { + "description": "The time worked for the employee in ISO 8601 duration format", + "example": "P0Y0M0DT8H0M0S", + "format": "duration", "type": "string", }, "unified_custom_fields": { @@ -4086,36 +4158,22 @@ Map { }, "type": "object", }, - "work_time": { - "properties": { - "duration": { - "description": "The work time duration in ISO 8601 duration format", - "example": "P0Y0M0DT8H0M0S", - "format": "duration", - "type": "string", - }, - "duration_unit": { - "description": "The duration unit of the work time", - "example": "month", - "properties": { - "value": { - "description": "The unified value for the period.", - "enum": [ - "day", - "week", - "month", - "year", - "unmapped_value", - null, - ], - "example": "month", - "type": "string", - }, - }, - "type": "object", - }, - }, - "type": "object", + }, + "type": "object", + }, + "employment_contract_type": { + "description": "The employment work schedule type (e.g., full-time, part-time)", + "example": "full_time", + "properties": { + "value": { + "enum": [ + "full_time", + "shifts", + "part_time", + "unmapped_value", + null, + ], + "type": "string", }, }, "type": "object", @@ -4140,6 +4198,36 @@ Map { }, "type": "object", }, + "employment_type": { + "description": "The employee employment type", + "example": "full_time", + "properties": { + "value": { + "enum": [ + "contractor", + "intern", + "permanent", + "apprentice", + "freelance", + "terminated", + "temporary", + "seasonal", + "volunteer", + "probation", + "internal", + "external", + "expatriate", + "employer_of_record", + "casual", + "Programme", + "unmapped_value", + null, + ], + "type": "string", + }, + }, + "type": "object", + }, "ethnicity": { "description": "The employee ethnicity", "example": "white", @@ -4194,7 +4282,7 @@ Map { }, "hire_date": { "description": "The employee hire date", - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -4524,8 +4612,13 @@ Map { "id": { "type": "string", }, + "job_id": { + "description": "The employee job id", + "example": "R-6789", + "type": "string", + }, "job_title": { - "description": "If the source of the job_title is the Employee's current Employment, and that Employment pertains exclusively to this Employee, then the active Employment job_title will also be written", + "description": "The employee job title", "example": "Physicist", "type": "string", }, @@ -5020,7 +5113,7 @@ Map { }, "preferred_language": { "description": "The employee preferred language", - "example": "eng", + "example": "en_US", "properties": { "value": { "description": "The ISO639-2 Code of the language", @@ -5040,7 +5133,6 @@ Map { "cat", "cha", "ces", - "dan", "deu", "div", "dzo", @@ -5057,7 +5149,6 @@ Map { "fra", "gle", "grn", - "guj", "glv", "heb", "hin", @@ -5088,8 +5179,6 @@ Map { "mah", "mri", "mkd", - "mon", - "mar", "msa", "mlt", "mya", @@ -5104,18 +5193,15 @@ Map { "pol", "pus", "por", - "que", "rar", "roh", "rup", "ron", "rus", "kin", - "sme", "sag", "sin", "slk", - "slv", "smo", "sna", "som", @@ -5125,24 +5211,11 @@ Map { "swe", "swa", "tam", - "tel", "tgk", "tha", "tir", "tig", - "tuk", - "tsn", - "ton", - "tur", - "tso", - "ukr", - "urd", - "uzb", - "ven", - "vie", - "xho", "zho", - "zul", "unmapped_value", null, ], @@ -5154,7 +5227,7 @@ Map { }, "start_date": { "description": "The employee start date", - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -5571,6 +5644,11 @@ Map { "name": "work_phone_number", "type": "string", }, + { + "location": "body", + "name": "job_id", + "type": "string", + }, { "location": "body", "name": "job_title", @@ -5641,6 +5719,16 @@ Map { "name": "start_date", "type": "string", }, + { + "location": "body", + "name": "employment_type", + "type": "object", + }, + { + "location": "body", + "name": "employment_contract_type", + "type": "object", + }, { "location": "body", "name": "employment_status", @@ -5870,7 +5958,7 @@ Map { }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "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,duration,created_at,updated_at,policy", + "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,duration,time_off_policy_id,remote_time_off_policy_id,reason,created_at,updated_at,policy", "type": "string", }, "file_path": { @@ -5995,6 +6083,11 @@ Map { "name": "id", "type": "string", }, + { + "location": "body", + "name": "employee_id", + "type": "string", + }, { "location": "body", "name": "approver_id", @@ -6064,10 +6157,15 @@ Map { "example": "1687-4", "type": "string", }, + "employee_id": { + "description": "The employee ID", + "example": "1687-3", + "type": "string", + }, "end_date": { - "description": "Inclusive end date of the time off request (ISO8601 date-time without timezone). The time off includes this day", - "example": "2021-01-01T01:01:01.000", - "format": "datetime-local", + "description": "The end date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", "type": "string", }, "end_half_day": { @@ -6120,9 +6218,9 @@ Map { "type": "object", }, "start_date": { - "description": "The start date of the time off request (ISO8601 date-time without timezone)", - "example": "2021-01-01T01:01:01.000", - "format": "datetime-local", + "description": "The start date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", "type": "string", }, "start_half_day": { @@ -6151,7 +6249,6 @@ Map { "rejected", "pending", "deleted", - "draft", "unmapped_value", null, ], @@ -6189,6 +6286,11 @@ Map { "name": "id", "type": "string", }, + { + "location": "body", + "name": "employee_id", + "type": "string", + }, { "location": "body", "name": "approver_id", @@ -6305,7 +6407,7 @@ Map { }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "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,duration,created_at,updated_at,policy", + "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,duration,time_off_policy_id,remote_time_off_policy_id,reason,created_at,updated_at,policy", "type": "string", }, "file_path": { @@ -6382,10 +6484,10 @@ Map { }, }, StackOneTool { - "description": "Cancel Employee Time Off Request", + "description": "Update Employee Time Off Request", "executeConfig": { "bodyType": "json", - "method": "DELETE", + "method": "PATCH", "params": [ { "location": "header", @@ -6402,108 +6504,29 @@ Map { "name": "subResourceId", "type": "string", }, - ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/time_off/{subResourceId}", - }, - "name": "hris_cancel_employee_time_off_request", - "parameterMapper": ParameterMapper { - "transformers": -Map { - "file_path" => { - "transforms": { - "content": [Function], - "file_format": [Function], - "name": [Function], - }, + { + "location": "body", + "name": "employee_id", + "type": "string", }, - } -, - }, - "parameters": { - "properties": { - "file_path": { - "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", + { + "location": "body", + "name": "approver_id", "type": "string", }, - "id": { + { + "location": "body", + "name": "status", + "type": "object", + }, + { + "location": "body", + "name": "start_date", "type": "string", }, - "subResourceId": { - "type": "string", - }, - "x-account-id": undefined, - }, - "required": [ - "id", - "subResourceId", - ], - "type": "object", - }, - "requestBuilder": RequestBuilder { - "bodyType": "json", - "headers": { - "Authorization": "Basic dGVzdF9rZXk6", - }, - "method": "DELETE", - "params": [ - { - "location": "header", - "name": "x-account-id", - "type": "string", - }, - { - "location": "path", - "name": "id", - "type": "string", - }, - { - "location": "path", - "name": "subResourceId", - "type": "string", - }, - ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/time_off/{subResourceId}", - }, - }, - StackOneTool { - "description": "Update Employee Time Off Request", - "executeConfig": { - "bodyType": "json", - "method": "PATCH", - "params": [ - { - "location": "header", - "name": "x-account-id", - "type": "string", - }, - { - "location": "path", - "name": "id", - "type": "string", - }, - { - "location": "path", - "name": "subResourceId", - "type": "string", - }, - { - "location": "body", - "name": "approver_id", - "type": "string", - }, - { - "location": "body", - "name": "status", - "type": "object", - }, - { - "location": "body", - "name": "start_date", - "type": "string", - }, - { - "location": "body", - "name": "end_date", + { + "location": "body", + "name": "end_date", "type": "string", }, { @@ -6555,10 +6578,15 @@ Map { "example": "1687-4", "type": "string", }, + "employee_id": { + "description": "The employee ID", + "example": "1687-3", + "type": "string", + }, "end_date": { - "description": "Inclusive end date of the time off request (ISO8601 date-time without timezone). The time off includes this day", - "example": "2021-01-01T01:01:01.000", - "format": "datetime-local", + "description": "The end date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", "type": "string", }, "end_half_day": { @@ -6611,9 +6639,9 @@ Map { "type": "object", }, "start_date": { - "description": "The start date of the time off request (ISO8601 date-time without timezone)", - "example": "2021-01-01T01:01:01.000", - "format": "datetime-local", + "description": "The start date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", "type": "string", }, "start_half_day": { @@ -6642,7 +6670,6 @@ Map { "rejected", "pending", "deleted", - "draft", "unmapped_value", null, ], @@ -6689,6 +6716,11 @@ Map { "name": "subResourceId", "type": "string", }, + { + "location": "body", + "name": "employee_id", + "type": "string", + }, { "location": "body", "name": "approver_id", @@ -6845,7 +6877,6 @@ Map { "enum": [ "true", "false", - "unmapped_value", null, ], "example": "true", @@ -8176,12 +8207,12 @@ Map { }, { "location": "body", - "name": "confidential", + "name": "category", "type": "object", }, { "location": "body", - "name": "category", + "name": "confidential", "type": "object", }, ], @@ -8259,7 +8290,6 @@ Map { "enum": [ "true", "false", - "unmapped_value", null, ], "example": "true", @@ -9566,12 +9596,12 @@ Map { }, { "location": "body", - "name": "confidential", + "name": "category", "type": "object", }, { "location": "body", - "name": "category", + "name": "confidential", "type": "object", }, ], @@ -9604,11 +9634,6 @@ Map { "name": "format", "type": "string", }, - { - "location": "query", - "name": "export_format", - "type": "string", - }, ], "url": "https://api.stackone.com/unified/hris/employees/{id}/documents/{subResourceId}/download", }, @@ -9628,11 +9653,6 @@ Map { }, "parameters": { "properties": { - "export_format": { - "description": "The export format of the file", - "example": "text/plain", - "type": "string", - }, "file_path": { "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", @@ -9683,11 +9703,6 @@ Map { "name": "format", "type": "string", }, - { - "location": "query", - "name": "export_format", - "type": "string", - }, ], "url": "https://api.stackone.com/unified/hris/employees/{id}/documents/{subResourceId}/download", }, @@ -12065,7 +12080,6 @@ Map { "driver_license", "birth_certificate", "other", - "unmapped_value", null, ], "type": "string", @@ -12074,12 +12088,12 @@ Map { "type": "object", }, "valid_from": { - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, "valid_to": { - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -13941,7 +13955,6 @@ Map { "driver_license", "birth_certificate", "other", - "unmapped_value", null, ], "type": "string", @@ -13950,12 +13963,12 @@ Map { "type": "object", }, "valid_from": { - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, "valid_to": { - "example": "2021-01-01T00:00:00.000Z", + "example": "2021-01-01T00:00.000Z", "format": "date-time", "type": "string", }, @@ -14435,7 +14448,7 @@ Map { }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,end_date,employment_type,employment_contract_type,change_reason,grade,work_time,payroll_code,fte,created_at,updated_at,start_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", + "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,employment_type,employment_contract_type,time_worked,created_at,updated_at,start_date,end_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", "type": "string", }, "file_path": { @@ -14589,7 +14602,7 @@ Map { }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,end_date,employment_type,employment_contract_type,change_reason,grade,work_time,payroll_code,fte,created_at,updated_at,start_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", + "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,employment_type,employment_contract_type,time_worked,created_at,updated_at,start_date,end_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", "type": "string", }, "file_path": { @@ -14733,7 +14746,7 @@ Map { }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,end_date,employment_type,employment_contract_type,change_reason,grade,work_time,payroll_code,fte,created_at,updated_at,start_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", + "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,employment_type,employment_contract_type,time_worked,created_at,updated_at,start_date,end_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", "type": "string", }, "file_path": { @@ -14847,7 +14860,7 @@ Map { "type": "string", }, { - "location": "path", + "location": "body", "name": "id", "type": "string", }, @@ -14883,32 +14896,17 @@ Map { }, { "location": "body", - "name": "effective_date", - "type": "string", - }, - { - "location": "body", - "name": "end_date", - "type": "string", - }, - { - "location": "body", - "name": "grade", + "name": "employment_type", "type": "object", }, { "location": "body", - "name": "work_time", + "name": "employment_contract_type", "type": "object", }, { "location": "body", - "name": "payroll_code", - "type": "string", - }, - { - "location": "body", - "name": "job_id", + "name": "time_worked", "type": "string", }, { @@ -14935,54 +14933,60 @@ Map { }, "parameters": { "properties": { - "effective_date": { - "description": "The effective date of the employment contract", - "example": "2021-01-01T01:01:01.000Z", - "format": "date-time", - "type": "string", - }, - "end_date": { - "description": "The end date of employment", - "example": "2021-01-01T01:01:01.000Z", - "format": "date-time", - "type": "string", - }, - "file_path": { - "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", - "type": "string", - }, - "grade": { - "description": "Represents the employee’s position within the organizational hierarchy.", + "employment_contract_type": { + "description": "The employment work schedule type (e.g., full-time, part-time)", + "example": "full_time", "properties": { - "description": { - "description": "description of the grade", - "example": "Mid-level employee demonstrating proficiency and autonomy.", - "type": "string", - }, - "id": { - "description": "The reference id", - "example": "1687-3", - "type": "string", - }, - "name": { - "description": "The reference name", - "example": "1687-4", + "value": { + "enum": [ + "full_time", + "shifts", + "part_time", + "unmapped_value", + null, + ], "type": "string", }, - "remote_id": { - "description": "Provider's unique identifier", - "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + }, + "type": "object", + }, + "employment_type": { + "description": "The type of employment (e.g., contractor, permanent)", + "example": "permanent", + "properties": { + "value": { + "enum": [ + "contractor", + "intern", + "permanent", + "apprentice", + "freelance", + "terminated", + "temporary", + "seasonal", + "volunteer", + "probation", + "internal", + "external", + "expatriate", + "employer_of_record", + "casual", + "Programme", + "unmapped_value", + null, + ], "type": "string", }, }, "type": "object", }, - "id": { + "file_path": { + "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", }, - "job_id": { - "description": "The employee job id", - "example": "5290", + "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", "type": "string", }, "job_title": { @@ -15059,9 +15063,10 @@ Map { "example": "40.00", "type": "string", }, - "payroll_code": { - "description": "The payroll code of the employee", - "example": "PC1", + "time_worked": { + "description": "The time worked for the employee in ISO 8601 duration format", + "example": "P0Y0M0DT8H0M0S", + "format": "duration", "type": "string", }, "unified_custom_fields": { @@ -15073,37 +15078,6 @@ Map { }, "type": "object", }, - "work_time": { - "properties": { - "duration": { - "description": "The work time duration in ISO 8601 duration format", - "example": "P0Y0M0DT8H0M0S", - "format": "duration", - "type": "string", - }, - "duration_unit": { - "description": "The duration unit of the work time", - "example": "month", - "properties": { - "value": { - "description": "The unified value for the period.", - "enum": [ - "day", - "week", - "month", - "year", - "unmapped_value", - null, - ], - "example": "month", - "type": "string", - }, - }, - "type": "object", - }, - }, - "type": "object", - }, "x-account-id": undefined, }, "required": [ @@ -15124,7 +15098,7 @@ Map { "type": "string", }, { - "location": "path", + "location": "body", "name": "id", "type": "string", }, @@ -15160,32 +15134,17 @@ Map { }, { "location": "body", - "name": "effective_date", - "type": "string", - }, - { - "location": "body", - "name": "end_date", - "type": "string", - }, - { - "location": "body", - "name": "grade", + "name": "employment_type", "type": "object", }, { "location": "body", - "name": "work_time", + "name": "employment_contract_type", "type": "object", }, { "location": "body", - "name": "payroll_code", - "type": "string", - }, - { - "location": "body", - "name": "job_id", + "name": "time_worked", "type": "string", }, { @@ -15264,7 +15223,7 @@ Map { }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,end_date,employment_type,employment_contract_type,change_reason,grade,work_time,payroll_code,fte,created_at,updated_at,start_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", + "example": "id,remote_id,employee_id,remote_employee_id,job_title,pay_rate,pay_period,pay_frequency,pay_currency,effective_date,employment_type,employment_contract_type,time_worked,created_at,updated_at,start_date,end_date,active,department,team,cost_center,cost_centers,division,job,type,contract_type,manager", "type": "string", }, "file_path": { @@ -15352,7 +15311,7 @@ Map { "type": "string", }, { - "location": "path", + "location": "body", "name": "id", "type": "string", }, @@ -15393,27 +15352,17 @@ Map { }, { "location": "body", - "name": "effective_date", - "type": "string", - }, - { - "location": "body", - "name": "end_date", - "type": "string", - }, - { - "location": "body", - "name": "grade", + "name": "employment_type", "type": "object", }, { "location": "body", - "name": "work_time", + "name": "employment_contract_type", "type": "object", }, { "location": "body", - "name": "payroll_code", + "name": "time_worked", "type": "string", }, { @@ -15440,49 +15389,60 @@ Map { }, "parameters": { "properties": { - "effective_date": { - "description": "The effective date of the employment contract", - "example": "2021-01-01T01:01:01.000Z", - "format": "date-time", - "type": "string", - }, - "end_date": { - "description": "The end date of employment", - "example": "2021-01-01T01:01:01.000Z", - "format": "date-time", - "type": "string", - }, - "file_path": { - "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", - "type": "string", - }, - "grade": { - "description": "Represents the employee’s position within the organizational hierarchy.", + "employment_contract_type": { + "description": "The employment work schedule type (e.g., full-time, part-time)", + "example": "full_time", "properties": { - "description": { - "description": "description of the grade", - "example": "Mid-level employee demonstrating proficiency and autonomy.", - "type": "string", - }, - "id": { - "description": "The reference id", - "example": "1687-3", - "type": "string", - }, - "name": { - "description": "The reference name", - "example": "1687-4", + "value": { + "enum": [ + "full_time", + "shifts", + "part_time", + "unmapped_value", + null, + ], "type": "string", }, - "remote_id": { - "description": "Provider's unique identifier", - "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + }, + "type": "object", + }, + "employment_type": { + "description": "The type of employment (e.g., contractor, permanent)", + "example": "permanent", + "properties": { + "value": { + "enum": [ + "contractor", + "intern", + "permanent", + "apprentice", + "freelance", + "terminated", + "temporary", + "seasonal", + "volunteer", + "probation", + "internal", + "external", + "expatriate", + "employer_of_record", + "casual", + "Programme", + "unmapped_value", + null, + ], "type": "string", }, }, "type": "object", }, + "file_path": { + "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", + "type": "string", + }, "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", "type": "string", }, "job_title": { @@ -15559,12 +15519,13 @@ Map { "example": "40.00", "type": "string", }, - "payroll_code": { - "description": "The payroll code of the employee", - "example": "PC1", + "subResourceId": { "type": "string", }, - "subResourceId": { + "time_worked": { + "description": "The time worked for the employee in ISO 8601 duration format", + "example": "P0Y0M0DT8H0M0S", + "format": "duration", "type": "string", }, "unified_custom_fields": { @@ -15576,37 +15537,6 @@ Map { }, "type": "object", }, - "work_time": { - "properties": { - "duration": { - "description": "The work time duration in ISO 8601 duration format", - "example": "P0Y0M0DT8H0M0S", - "format": "duration", - "type": "string", - }, - "duration_unit": { - "description": "The duration unit of the work time", - "example": "month", - "properties": { - "value": { - "description": "The unified value for the period.", - "enum": [ - "day", - "week", - "month", - "year", - "unmapped_value", - null, - ], - "example": "month", - "type": "string", - }, - }, - "type": "object", - }, - }, - "type": "object", - }, "x-account-id": undefined, }, "required": [ @@ -15628,7 +15558,7 @@ Map { "type": "string", }, { - "location": "path", + "location": "body", "name": "id", "type": "string", }, @@ -15669,27 +15599,17 @@ Map { }, { "location": "body", - "name": "effective_date", - "type": "string", - }, - { - "location": "body", - "name": "end_date", - "type": "string", - }, - { - "location": "body", - "name": "grade", + "name": "employment_type", "type": "object", }, { "location": "body", - "name": "work_time", + "name": "employment_contract_type", "type": "object", }, { "location": "body", - "name": "payroll_code", + "name": "time_worked", "type": "string", }, { @@ -16036,7 +15956,7 @@ Map { }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "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,duration,created_at,updated_at,policy", + "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,duration,time_off_policy_id,remote_time_off_policy_id,reason,created_at,updated_at,policy", "type": "string", }, "file_path": { @@ -16136,10 +16056,10 @@ Map { }, }, StackOneTool { - "description": "Get time off request", + "description": "Creates a time off request", "executeConfig": { "bodyType": "json", - "method": "GET", + "method": "POST", "params": [ { "location": "header", @@ -16147,34 +16067,59 @@ Map { "type": "string", }, { - "location": "path", - "name": "id", + "location": "body", + "name": "employee_id", "type": "string", }, { - "location": "query", - "name": "raw", - "type": "boolean", + "location": "body", + "name": "approver_id", + "type": "string", }, { - "location": "query", - "name": "proxy", + "location": "body", + "name": "status", "type": "object", }, { - "location": "query", - "name": "fields", + "location": "body", + "name": "start_date", "type": "string", }, { - "location": "query", - "name": "expand", + "location": "body", + "name": "end_date", + "type": "string", + }, + { + "location": "body", + "name": "start_half_day", + "type": "string", + }, + { + "location": "body", + "name": "end_half_day", + "type": "string", + }, + { + "location": "body", + "name": "time_off_policy_id", "type": "string", }, + { + "location": "body", + "name": "reason", + "type": "object", + }, + { + "location": "body", + "name": "passthrough", + "type": "object", + }, ], - "url": "https://api.stackone.com/unified/hris/time_off/{id}", + "url": "https://api.stackone.com/unified/hris/time_off", }, - "name": "hris_get_time_off_request", + "name": "hris_create_time_off_request", "parameterMapper": ParameterMapper { "transformers": Map { @@ -16190,37 +16135,116 @@ Map { }, "parameters": { "properties": { - "expand": { - "description": "The comma separated list of fields that will be expanded in the response", - "example": "policy", + "approver_id": { + "description": "The approver ID", + "example": "1687-4", "type": "string", }, - "fields": { - "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "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,duration,created_at,updated_at,policy", + "employee_id": { + "description": "The employee ID", + "example": "1687-3", "type": "string", }, + "end_date": { + "description": "The end date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", + "type": "string", + }, + "end_half_day": { + "description": "True if the end of the time off request ends half way through the day", + "example": true, + "oneOf": [ + { + "type": "boolean", + }, + { + "enum": [ + "true", + "false", + ], + "type": "string", + }, + ], + }, "file_path": { "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", }, - "id": { + "passthrough": { + "additionalProperties": true, + "description": "Value to pass through to the provider", + "example": { + "other_known_names": "John Doe", + }, + "type": "object", + }, + "reason": { + "properties": { + "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, + "name": { + "type": "string", + }, + "remote_id": { + "description": "Provider's unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, + }, + "type": "object", + }, + "start_date": { + "description": "The start date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", "type": "string", }, - "proxy": { - "additionalProperties": true, - "description": "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", + "start_half_day": { + "description": "True if the start of the time off request begins half way through the day", + "example": true, + "oneOf": [ + { + "type": "boolean", + }, + { + "enum": [ + "true", + "false", + ], + "type": "string", + }, + ], + }, + "status": { + "description": "The status of the time off request", + "properties": { + "value": { + "enum": [ + "approved", + "cancelled", + "rejected", + "pending", + "deleted", + "unmapped_value", + null, + ], + "type": "string", + }, + }, "type": "object", }, - "raw": { - "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", - "type": "boolean", + "time_off_policy_id": { + "description": "The time off policy id associated with this time off request", + "example": "cx280928933", + "type": "string", }, "x-account-id": undefined, }, - "required": [ - "id", - ], + "required": undefined, "type": "object", }, "requestBuilder": RequestBuilder { @@ -16228,7 +16252,7 @@ Map { "headers": { "Authorization": "Basic dGVzdF9rZXk6", }, - "method": "GET", + "method": "POST", "params": [ { "location": "header", @@ -16236,36 +16260,61 @@ Map { "type": "string", }, { - "location": "path", - "name": "id", + "location": "body", + "name": "employee_id", "type": "string", }, { - "location": "query", - "name": "raw", - "type": "boolean", + "location": "body", + "name": "approver_id", + "type": "string", }, { - "location": "query", - "name": "proxy", + "location": "body", + "name": "status", "type": "object", }, { - "location": "query", - "name": "fields", + "location": "body", + "name": "start_date", "type": "string", }, { - "location": "query", - "name": "expand", + "location": "body", + "name": "end_date", "type": "string", }, + { + "location": "body", + "name": "start_half_day", + "type": "string", + }, + { + "location": "body", + "name": "end_half_day", + "type": "string", + }, + { + "location": "body", + "name": "time_off_policy_id", + "type": "string", + }, + { + "location": "body", + "name": "reason", + "type": "object", + }, + { + "location": "body", + "name": "passthrough", + "type": "object", + }, ], - "url": "https://api.stackone.com/unified/hris/time_off/{id}", + "url": "https://api.stackone.com/unified/hris/time_off", }, }, StackOneTool { - "description": "List time off types", + "description": "Get time off request", "executeConfig": { "bodyType": "json", "method": "GET", @@ -16275,6 +16324,11 @@ Map { "name": "x-account-id", "type": "string", }, + { + "location": "path", + "name": "id", + "type": "string", + }, { "location": "query", "name": "raw", @@ -16292,23 +16346,13 @@ Map { }, { "location": "query", - "name": "filter", - "type": "object", - }, - { - "location": "query", - "name": "page_size", - "type": "string", - }, - { - "location": "query", - "name": "next", + "name": "expand", "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/time_off_types", + "url": "https://api.stackone.com/unified/hris/time_off/{id}", }, - "name": "hris_list_time_off_types", + "name": "hris_get_time_off_request", "parameterMapper": ParameterMapper { "transformers": Map { @@ -16324,33 +16368,21 @@ Map { }, "parameters": { "properties": { + "expand": { + "description": "The comma separated list of fields that will be expanded in the response", + "example": "policy", + "type": "string", + }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,active", + "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,duration,time_off_policy_id,remote_time_off_policy_id,reason,created_at,updated_at,policy", "type": "string", }, "file_path": { "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", }, - "filter": { - "description": "Filter parameters that allow greater customisation of the list response", - "properties": { - "updated_after": { - "additionalProperties": false, - "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", - }, - }, - "type": "object", - }, - "next": { - "description": "The unified cursor", - "type": "string", - }, - "page_size": { - "description": "The number of results per page (default value is 25)", + "id": { "type": "string", }, "proxy": { @@ -16364,7 +16396,9 @@ Map { }, "x-account-id": undefined, }, - "required": undefined, + "required": [ + "id", + ], "type": "object", }, "requestBuilder": RequestBuilder { @@ -16379,6 +16413,11 @@ Map { "name": "x-account-id", "type": "string", }, + { + "location": "path", + "name": "id", + "type": "string", + }, { "location": "query", "name": "raw", @@ -16396,28 +16435,18 @@ Map { }, { "location": "query", - "name": "filter", - "type": "object", - }, - { - "location": "query", - "name": "page_size", - "type": "string", - }, - { - "location": "query", - "name": "next", + "name": "expand", "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/time_off_types", + "url": "https://api.stackone.com/unified/hris/time_off/{id}", }, }, StackOneTool { - "description": "Get time off type", + "description": "Update time off request", "executeConfig": { "bodyType": "json", - "method": "GET", + "method": "PATCH", "params": [ { "location": "header", @@ -16430,24 +16459,59 @@ Map { "type": "string", }, { - "location": "query", - "name": "raw", - "type": "boolean", + "location": "body", + "name": "employee_id", + "type": "string", }, { - "location": "query", - "name": "proxy", + "location": "body", + "name": "approver_id", + "type": "string", + }, + { + "location": "body", + "name": "status", "type": "object", }, { - "location": "query", - "name": "fields", + "location": "body", + "name": "start_date", "type": "string", }, + { + "location": "body", + "name": "end_date", + "type": "string", + }, + { + "location": "body", + "name": "start_half_day", + "type": "string", + }, + { + "location": "body", + "name": "end_half_day", + "type": "string", + }, + { + "location": "body", + "name": "time_off_policy_id", + "type": "string", + }, + { + "location": "body", + "name": "reason", + "type": "object", + }, + { + "location": "body", + "name": "passthrough", + "type": "object", + }, ], - "url": "https://api.stackone.com/unified/hris/time_off_types/{id}", + "url": "https://api.stackone.com/unified/hris/time_off/{id}", }, - "name": "hris_get_time_off_type", + "name": "hris_update_time_off_request", "parameterMapper": ParameterMapper { "transformers": Map { @@ -16463,11 +16527,38 @@ Map { }, "parameters": { "properties": { - "fields": { - "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,active", + "approver_id": { + "description": "The approver ID", + "example": "1687-4", + "type": "string", + }, + "employee_id": { + "description": "The employee ID", + "example": "1687-3", "type": "string", }, + "end_date": { + "description": "The end date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", + "type": "string", + }, + "end_half_day": { + "description": "True if the end of the time off request ends half way through the day", + "example": true, + "oneOf": [ + { + "type": "boolean", + }, + { + "enum": [ + "true", + "false", + ], + "type": "string", + }, + ], + }, "file_path": { "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", @@ -16475,14 +16566,76 @@ Map { "id": { "type": "string", }, - "proxy": { + "passthrough": { "additionalProperties": true, - "description": "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", + "description": "Value to pass through to the provider", + "example": { + "other_known_names": "John Doe", + }, "type": "object", }, - "raw": { - "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", - "type": "boolean", + "reason": { + "properties": { + "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, + "name": { + "type": "string", + }, + "remote_id": { + "description": "Provider's unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, + }, + "type": "object", + }, + "start_date": { + "description": "The start date of the time off request", + "example": "2021-01-01T01:01:01.000Z", + "format": "date-time", + "type": "string", + }, + "start_half_day": { + "description": "True if the start of the time off request begins half way through the day", + "example": true, + "oneOf": [ + { + "type": "boolean", + }, + { + "enum": [ + "true", + "false", + ], + "type": "string", + }, + ], + }, + "status": { + "description": "The status of the time off request", + "properties": { + "value": { + "enum": [ + "approved", + "cancelled", + "rejected", + "pending", + "deleted", + "unmapped_value", + null, + ], + "type": "string", + }, + }, + "type": "object", + }, + "time_off_policy_id": { + "description": "The time off policy id associated with this time off request", + "example": "cx280928933", + "type": "string", }, "x-account-id": undefined, }, @@ -16496,7 +16649,7 @@ Map { "headers": { "Authorization": "Basic dGVzdF9rZXk6", }, - "method": "GET", + "method": "PATCH", "params": [ { "location": "header", @@ -16509,26 +16662,61 @@ Map { "type": "string", }, { - "location": "query", - "name": "raw", - "type": "boolean", + "location": "body", + "name": "employee_id", + "type": "string", }, { - "location": "query", - "name": "proxy", + "location": "body", + "name": "approver_id", + "type": "string", + }, + { + "location": "body", + "name": "status", "type": "object", }, { - "location": "query", - "name": "fields", + "location": "body", + "name": "start_date", + "type": "string", + }, + { + "location": "body", + "name": "end_date", + "type": "string", + }, + { + "location": "body", + "name": "start_half_day", "type": "string", }, + { + "location": "body", + "name": "end_half_day", + "type": "string", + }, + { + "location": "body", + "name": "time_off_policy_id", + "type": "string", + }, + { + "location": "body", + "name": "reason", + "type": "object", + }, + { + "location": "body", + "name": "passthrough", + "type": "object", + }, ], - "url": "https://api.stackone.com/unified/hris/time_off_types/{id}", + "url": "https://api.stackone.com/unified/hris/time_off/{id}", }, }, StackOneTool { - "description": "List Time Entries", + "description": "List time off types", "executeConfig": { "bodyType": "json", "method": "GET", @@ -16569,9 +16757,9 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/time_entries", + "url": "https://api.stackone.com/unified/hris/time_off_types", }, - "name": "hris_list_time_entries", + "name": "hris_list_time_off_types", "parameterMapper": ParameterMapper { "transformers": Map { @@ -16589,7 +16777,7 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,start_time,end_time,hours_worked,break_duration,labor_type,location,status,created_at,updated_at", + "example": "id,remote_id,name,active", "type": "string", }, "file_path": { @@ -16597,25 +16785,8 @@ Map { "type": "string", }, "filter": { - "description": "HRIS Time Entries filters", + "description": "Filter parameters that allow greater customisation of the list response", "properties": { - "employee_id": { - "additionalProperties": false, - "description": "Filter to select time entries by employee_id", - "type": "string", - }, - "end_time": { - "additionalProperties": false, - "description": "Filter to select time entries before a given time", - "example": "2020-01-01T00:00:00.000Z", - "type": "string", - }, - "start_time": { - "additionalProperties": false, - "description": "Filter to select time entries after a given time", - "example": "2020-01-01T00:00:00.000Z", - "type": "string", - }, "updated_after": { "additionalProperties": false, "description": "Use a string with a date to only select results updated after that given date", @@ -16690,11 +16861,11 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/time_entries", + "url": "https://api.stackone.com/unified/hris/time_off_types", }, }, StackOneTool { - "description": "Get Time Entry", + "description": "Get time off type", "executeConfig": { "bodyType": "json", "method": "GET", @@ -16725,9 +16896,9 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/time_entries/{id}", + "url": "https://api.stackone.com/unified/hris/time_off_types/{id}", }, - "name": "hris_get_time_entries", + "name": "hris_get_time_off_type", "parameterMapper": ParameterMapper { "transformers": Map { @@ -16745,7 +16916,7 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,start_time,end_time,hours_worked,break_duration,labor_type,location,status,created_at,updated_at", + "example": "id,remote_id,name,active", "type": "string", }, "file_path": { @@ -16804,11 +16975,11 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/time_entries/{id}", + "url": "https://api.stackone.com/unified/hris/time_off_types/{id}", }, }, StackOneTool { - "description": "List benefits", + "description": "List Time Entries", "executeConfig": { "bodyType": "json", "method": "GET", @@ -16849,9 +17020,9 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/benefits", + "url": "https://api.stackone.com/unified/hris/time_entries", }, - "name": "hris_list_benefits", + "name": "hris_list_time_entries", "parameterMapper": ParameterMapper { "transformers": Map { @@ -16869,7 +17040,7 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,benefit_type,provider,description,created_at,updated_at", + "example": "id,remote_id,employee_id,remote_employee_id,start_time,end_time,hours_worked,break_duration,labor_type,location,status,created_at,updated_at", "type": "string", }, "file_path": { @@ -16877,8 +17048,25 @@ Map { "type": "string", }, "filter": { - "description": "Filter parameters that allow greater customisation of the list response", + "description": "HRIS Time Entries filters", "properties": { + "employee_id": { + "additionalProperties": false, + "description": "Filter to select time entries by employee_id", + "type": "string", + }, + "end_time": { + "additionalProperties": false, + "description": "Filter to select time entries before a given time", + "example": "2020-01-01T00:00:00.000Z", + "type": "string", + }, + "start_time": { + "additionalProperties": false, + "description": "Filter to select time entries after a given time", + "example": "2020-01-01T00:00:00.000Z", + "type": "string", + }, "updated_after": { "additionalProperties": false, "description": "Use a string with a date to only select results updated after that given date", @@ -16953,11 +17141,11 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/benefits", + "url": "https://api.stackone.com/unified/hris/time_entries", }, }, StackOneTool { - "description": "Get Benefit", + "description": "Get Time Entry", "executeConfig": { "bodyType": "json", "method": "GET", @@ -16988,9 +17176,9 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/benefits/{id}", + "url": "https://api.stackone.com/unified/hris/time_entries/{id}", }, - "name": "hris_get_benefit", + "name": "hris_get_time_entries", "parameterMapper": ParameterMapper { "transformers": Map { @@ -17008,7 +17196,7 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,benefit_type,provider,description,created_at,updated_at", + "example": "id,remote_id,employee_id,remote_employee_id,start_time,end_time,hours_worked,break_duration,labor_type,location,status,created_at,updated_at", "type": "string", }, "file_path": { @@ -17067,11 +17255,11 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/benefits/{id}", + "url": "https://api.stackone.com/unified/hris/time_entries/{id}", }, }, StackOneTool { - "description": "List Groups", + "description": "List benefits", "executeConfig": { "bodyType": "json", "method": "GET", @@ -17112,9 +17300,9 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/groups", + "url": "https://api.stackone.com/unified/hris/benefits", }, - "name": "hris_list_groups", + "name": "hris_list_benefits", "parameterMapper": ParameterMapper { "transformers": Map { @@ -17132,7 +17320,7 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id", + "example": "id,remote_id,name,benefit_type,provider,description,created_at,updated_at", "type": "string", }, "file_path": { @@ -17216,11 +17404,11 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/groups", + "url": "https://api.stackone.com/unified/hris/benefits", }, }, StackOneTool { - "description": "List Department Groups", + "description": "Get Benefit", "executeConfig": { "bodyType": "json", "method": "GET", @@ -17230,6 +17418,11 @@ Map { "name": "x-account-id", "type": "string", }, + { + "location": "path", + "name": "id", + "type": "string", + }, { "location": "query", "name": "raw", @@ -17245,25 +17438,10 @@ Map { "name": "fields", "type": "string", }, - { - "location": "query", - "name": "filter", - "type": "object", - }, - { - "location": "query", - "name": "page_size", - "type": "string", - }, - { - "location": "query", - "name": "next", - "type": "string", - }, ], - "url": "https://api.stackone.com/unified/hris/groups/departments", + "url": "https://api.stackone.com/unified/hris/benefits/{id}", }, - "name": "hris_list_department_groups", + "name": "hris_get_benefit", "parameterMapper": ParameterMapper { "transformers": Map { @@ -17275,37 +17453,20 @@ Map { }, }, } -, - }, - "parameters": { - "properties": { - "fields": { - "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name", - "type": "string", - }, - "file_path": { - "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", - "type": "string", - }, - "filter": { - "description": "Filter parameters that allow greater customisation of the list response", - "properties": { - "updated_after": { - "additionalProperties": false, - "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", - }, - }, - "type": "object", +, + }, + "parameters": { + "properties": { + "fields": { + "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", + "example": "id,remote_id,name,benefit_type,provider,description,created_at,updated_at", + "type": "string", }, - "next": { - "description": "The unified cursor", + "file_path": { + "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", }, - "page_size": { - "description": "The number of results per page (default value is 25)", + "id": { "type": "string", }, "proxy": { @@ -17319,7 +17480,9 @@ Map { }, "x-account-id": undefined, }, - "required": undefined, + "required": [ + "id", + ], "type": "object", }, "requestBuilder": RequestBuilder { @@ -17334,6 +17497,11 @@ Map { "name": "x-account-id", "type": "string", }, + { + "location": "path", + "name": "id", + "type": "string", + }, { "location": "query", "name": "raw", @@ -17349,27 +17517,12 @@ Map { "name": "fields", "type": "string", }, - { - "location": "query", - "name": "filter", - "type": "object", - }, - { - "location": "query", - "name": "page_size", - "type": "string", - }, - { - "location": "query", - "name": "next", - "type": "string", - }, ], - "url": "https://api.stackone.com/unified/hris/groups/departments", + "url": "https://api.stackone.com/unified/hris/benefits/{id}", }, }, StackOneTool { - "description": "List Cost Center Groups", + "description": "List Groups", "executeConfig": { "bodyType": "json", "method": "GET", @@ -17410,9 +17563,9 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/groups/cost_centers", + "url": "https://api.stackone.com/unified/hris/groups", }, - "name": "hris_list_cost_center_groups", + "name": "hris_list_groups", "parameterMapper": ParameterMapper { "transformers": Map { @@ -17430,7 +17583,7 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,distribution_percentage,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id", + "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, "file_path": { @@ -17514,11 +17667,11 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/groups/cost_centers", + "url": "https://api.stackone.com/unified/hris/groups", }, }, StackOneTool { - "description": "List Team Groups", + "description": "List Department Groups", "executeConfig": { "bodyType": "json", "method": "GET", @@ -17559,9 +17712,9 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/groups/teams", + "url": "https://api.stackone.com/unified/hris/groups/departments", }, - "name": "hris_list_team_groups", + "name": "hris_list_department_groups", "parameterMapper": ParameterMapper { "transformers": Map { @@ -17579,7 +17732,7 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", + "example": "id,remote_id,name", "type": "string", }, "file_path": { @@ -17663,11 +17816,11 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/groups/teams", + "url": "https://api.stackone.com/unified/hris/groups/departments", }, }, StackOneTool { - "description": "Get Group", + "description": "List Cost Center Groups", "executeConfig": { "bodyType": "json", "method": "GET", @@ -17677,11 +17830,6 @@ Map { "name": "x-account-id", "type": "string", }, - { - "location": "path", - "name": "id", - "type": "string", - }, { "location": "query", "name": "raw", @@ -17697,10 +17845,25 @@ Map { "name": "fields", "type": "string", }, + { + "location": "query", + "name": "filter", + "type": "object", + }, + { + "location": "query", + "name": "page_size", + "type": "string", + }, + { + "location": "query", + "name": "next", + "type": "string", + }, ], - "url": "https://api.stackone.com/unified/hris/groups/{id}", + "url": "https://api.stackone.com/unified/hris/groups/cost_centers", }, - "name": "hris_get_group", + "name": "hris_list_cost_center_groups", "parameterMapper": ParameterMapper { "transformers": Map { @@ -17718,14 +17881,31 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id", + "example": "id,remote_id,name,type,distribution_percentage,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, "file_path": { "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", }, - "id": { + "filter": { + "description": "Filter parameters that allow greater customisation of the list response", + "properties": { + "updated_after": { + "additionalProperties": false, + "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", + }, + }, + "type": "object", + }, + "next": { + "description": "The unified cursor", + "type": "string", + }, + "page_size": { + "description": "The number of results per page (default value is 25)", "type": "string", }, "proxy": { @@ -17739,9 +17919,7 @@ Map { }, "x-account-id": undefined, }, - "required": [ - "id", - ], + "required": undefined, "type": "object", }, "requestBuilder": RequestBuilder { @@ -17756,11 +17934,6 @@ Map { "name": "x-account-id", "type": "string", }, - { - "location": "path", - "name": "id", - "type": "string", - }, { "location": "query", "name": "raw", @@ -17776,93 +17949,29 @@ Map { "name": "fields", "type": "string", }, - ], - "url": "https://api.stackone.com/unified/hris/groups/{id}", - }, - }, - StackOneTool { - "description": "Get Department Group", - "executeConfig": { - "bodyType": "json", - "method": "GET", - "params": [ - { - "location": "header", - "name": "x-account-id", - "type": "string", - }, - { - "location": "path", - "name": "id", - "type": "string", - }, - { - "location": "query", - "name": "raw", - "type": "boolean", - }, { "location": "query", - "name": "proxy", + "name": "filter", "type": "object", }, { "location": "query", - "name": "fields", - "type": "string", - }, - ], - "url": "https://api.stackone.com/unified/hris/groups/departments/{id}", - }, - "name": "hris_get_department_group", - "parameterMapper": ParameterMapper { - "transformers": -Map { - "file_path" => { - "transforms": { - "content": [Function], - "file_format": [Function], - "name": [Function], - }, - }, - } -, - }, - "parameters": { - "properties": { - "fields": { - "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name", - "type": "string", - }, - "file_path": { - "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", + "name": "page_size", "type": "string", }, - "id": { + { + "location": "query", + "name": "next", "type": "string", }, - "proxy": { - "additionalProperties": true, - "description": "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", - "type": "object", - }, - "raw": { - "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", - "type": "boolean", - }, - "x-account-id": undefined, - }, - "required": [ - "id", ], - "type": "object", + "url": "https://api.stackone.com/unified/hris/groups/cost_centers", }, - "requestBuilder": RequestBuilder { + }, + StackOneTool { + "description": "List Team Groups", + "executeConfig": { "bodyType": "json", - "headers": { - "Authorization": "Basic dGVzdF9rZXk6", - }, "method": "GET", "params": [ { @@ -17870,11 +17979,6 @@ Map { "name": "x-account-id", "type": "string", }, - { - "location": "path", - "name": "id", - "type": "string", - }, { "location": "query", "name": "raw", @@ -17890,45 +17994,25 @@ Map { "name": "fields", "type": "string", }, - ], - "url": "https://api.stackone.com/unified/hris/groups/departments/{id}", - }, - }, - StackOneTool { - "description": "Get Cost Center Group", - "executeConfig": { - "bodyType": "json", - "method": "GET", - "params": [ - { - "location": "header", - "name": "x-account-id", - "type": "string", - }, - { - "location": "path", - "name": "id", - "type": "string", - }, { "location": "query", - "name": "raw", - "type": "boolean", + "name": "filter", + "type": "object", }, { "location": "query", - "name": "proxy", - "type": "object", + "name": "page_size", + "type": "string", }, { "location": "query", - "name": "fields", + "name": "next", "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/groups/cost_centers/{id}", + "url": "https://api.stackone.com/unified/hris/groups/teams", }, - "name": "hris_get_cost_center_group", + "name": "hris_list_team_groups", "parameterMapper": ParameterMapper { "transformers": Map { @@ -17946,14 +18030,31 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,distribution_percentage,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id", + "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, "file_path": { "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", }, - "id": { + "filter": { + "description": "Filter parameters that allow greater customisation of the list response", + "properties": { + "updated_after": { + "additionalProperties": false, + "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", + }, + }, + "type": "object", + }, + "next": { + "description": "The unified cursor", + "type": "string", + }, + "page_size": { + "description": "The number of results per page (default value is 25)", "type": "string", }, "proxy": { @@ -17967,9 +18068,7 @@ Map { }, "x-account-id": undefined, }, - "required": [ - "id", - ], + "required": undefined, "type": "object", }, "requestBuilder": RequestBuilder { @@ -17984,11 +18083,6 @@ Map { "name": "x-account-id", "type": "string", }, - { - "location": "path", - "name": "id", - "type": "string", - }, { "location": "query", "name": "raw", @@ -18004,12 +18098,27 @@ Map { "name": "fields", "type": "string", }, + { + "location": "query", + "name": "filter", + "type": "object", + }, + { + "location": "query", + "name": "page_size", + "type": "string", + }, + { + "location": "query", + "name": "next", + "type": "string", + }, ], - "url": "https://api.stackone.com/unified/hris/groups/cost_centers/{id}", + "url": "https://api.stackone.com/unified/hris/groups/teams", }, }, StackOneTool { - "description": "Get Team Group", + "description": "Get Group", "executeConfig": { "bodyType": "json", "method": "GET", @@ -18040,9 +18149,9 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/groups/teams/{id}", + "url": "https://api.stackone.com/unified/hris/groups/{id}", }, - "name": "hris_get_team_group", + "name": "hris_get_group", "parameterMapper": ParameterMapper { "transformers": Map { @@ -18119,11 +18228,11 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/groups/teams/{id}", + "url": "https://api.stackone.com/unified/hris/groups/{id}", }, }, StackOneTool { - "description": "List Jobs", + "description": "Get Department Group", "executeConfig": { "bodyType": "json", "method": "GET", @@ -18133,6 +18242,11 @@ Map { "name": "x-account-id", "type": "string", }, + { + "location": "path", + "name": "id", + "type": "string", + }, { "location": "query", "name": "raw", @@ -18148,25 +18262,10 @@ Map { "name": "fields", "type": "string", }, - { - "location": "query", - "name": "filter", - "type": "object", - }, - { - "location": "query", - "name": "page_size", - "type": "string", - }, - { - "location": "query", - "name": "next", - "type": "string", - }, ], - "url": "https://api.stackone.com/unified/hris/jobs", + "url": "https://api.stackone.com/unified/hris/groups/departments/{id}", }, - "name": "hris_list_jobs", + "name": "hris_get_department_group", "parameterMapper": ParameterMapper { "transformers": Map { @@ -18184,31 +18283,14 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id", + "example": "id,remote_id,name", "type": "string", }, "file_path": { "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", }, - "filter": { - "description": "Filter parameters that allow greater customisation of the list response", - "properties": { - "updated_after": { - "additionalProperties": false, - "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", - }, - }, - "type": "object", - }, - "next": { - "description": "The unified cursor", - "type": "string", - }, - "page_size": { - "description": "The number of results per page (default value is 25)", + "id": { "type": "string", }, "proxy": { @@ -18222,7 +18304,9 @@ Map { }, "x-account-id": undefined, }, - "required": undefined, + "required": [ + "id", + ], "type": "object", }, "requestBuilder": RequestBuilder { @@ -18237,6 +18321,11 @@ Map { "name": "x-account-id", "type": "string", }, + { + "location": "path", + "name": "id", + "type": "string", + }, { "location": "query", "name": "raw", @@ -18252,27 +18341,12 @@ Map { "name": "fields", "type": "string", }, - { - "location": "query", - "name": "filter", - "type": "object", - }, - { - "location": "query", - "name": "page_size", - "type": "string", - }, - { - "location": "query", - "name": "next", - "type": "string", - }, ], - "url": "https://api.stackone.com/unified/hris/jobs", + "url": "https://api.stackone.com/unified/hris/groups/departments/{id}", }, }, StackOneTool { - "description": "Get Job", + "description": "Get Cost Center Group", "executeConfig": { "bodyType": "json", "method": "GET", @@ -18303,9 +18377,9 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/jobs/{id}", + "url": "https://api.stackone.com/unified/hris/groups/cost_centers/{id}", }, - "name": "hris_get_job", + "name": "hris_get_cost_center_group", "parameterMapper": ParameterMapper { "transformers": Map { @@ -18323,7 +18397,7 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids,company_id,remote_company_id", + "example": "id,remote_id,name,type,distribution_percentage,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, "file_path": { @@ -18382,11 +18456,11 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/jobs/{id}", + "url": "https://api.stackone.com/unified/hris/groups/cost_centers/{id}", }, }, StackOneTool { - "description": "List Employee Skills", + "description": "Get Team Group", "executeConfig": { "bodyType": "json", "method": "GET", @@ -18416,25 +18490,10 @@ Map { "name": "fields", "type": "string", }, - { - "location": "query", - "name": "filter", - "type": "object", - }, - { - "location": "query", - "name": "page_size", - "type": "string", - }, - { - "location": "query", - "name": "next", - "type": "string", - }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/skills", + "url": "https://api.stackone.com/unified/hris/groups/teams/{id}", }, - "name": "hris_list_employee_skills", + "name": "hris_get_team_group", "parameterMapper": ParameterMapper { "transformers": Map { @@ -18452,36 +18511,16 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,active,language,maximum_proficiency,minimum_proficiency", + "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, "file_path": { "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", }, - "filter": { - "description": "Filter parameters that allow greater customisation of the list response", - "properties": { - "updated_after": { - "additionalProperties": false, - "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", - }, - }, - "type": "object", - }, "id": { "type": "string", }, - "next": { - "description": "The unified cursor", - "type": "string", - }, - "page_size": { - "description": "The number of results per page (default value is 25)", - "type": "string", - }, "proxy": { "additionalProperties": true, "description": "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", @@ -18530,30 +18569,15 @@ Map { "name": "fields", "type": "string", }, - { - "location": "query", - "name": "filter", - "type": "object", - }, - { - "location": "query", - "name": "page_size", - "type": "string", - }, - { - "location": "query", - "name": "next", - "type": "string", - }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/skills", + "url": "https://api.stackone.com/unified/hris/groups/teams/{id}", }, }, StackOneTool { - "description": "Create Employee Skill", + "description": "List Jobs", "executeConfig": { "bodyType": "json", - "method": "POST", + "method": "GET", "params": [ { "location": "header", @@ -18561,29 +18585,39 @@ Map { "type": "string", }, { - "location": "body", - "name": "id", - "type": "string", + "location": "query", + "name": "raw", + "type": "boolean", }, { - "location": "body", - "name": "name", + "location": "query", + "name": "proxy", + "type": "object", + }, + { + "location": "query", + "name": "fields", "type": "string", }, { - "location": "body", - "name": "maximum_proficiency", + "location": "query", + "name": "filter", "type": "object", }, { - "location": "body", - "name": "minimum_proficiency", - "type": "object", + "location": "query", + "name": "page_size", + "type": "string", + }, + { + "location": "query", + "name": "next", + "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/skills", + "url": "https://api.stackone.com/unified/hris/jobs", }, - "name": "hris_create_employee_skill", + "name": "hris_list_jobs", "parameterMapper": ParameterMapper { "transformers": Map { @@ -18599,91 +18633,47 @@ Map { }, "parameters": { "properties": { - "file_path": { - "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", - "type": "string", - }, - "id": { - "description": "The ID associated with this skill", - "example": "16873-IT345", + "fields": { + "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", + "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, - "maximum_proficiency": { - "description": "The proficiency level of the skill", - "properties": { - "id": { - "description": "Unique identifier", - "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", - "type": "string", - }, - "name": { - "description": "The name associated with this proficiency", - "example": "Expert", - "type": "string", - }, - "remote_id": { - "description": "Provider's unique identifier", - "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", - "type": "string", - }, - "value": { - "enum": [ - "1", - "2", - "3", - "4", - "5", - "unmapped_value", - null, - ], - "type": "string", - }, - }, - "type": "object", + "file_path": { + "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", + "type": "string", }, - "minimum_proficiency": { - "description": "The proficiency level of the skill", + "filter": { + "description": "Filter parameters that allow greater customisation of the list response", "properties": { - "id": { - "description": "Unique identifier", - "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", - "type": "string", - }, - "name": { - "description": "The name associated with this proficiency", - "example": "Expert", - "type": "string", - }, - "remote_id": { - "description": "Provider's unique identifier", - "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", - "type": "string", - }, - "value": { - "enum": [ - "1", - "2", - "3", - "4", - "5", - "unmapped_value", - null, - ], + "updated_after": { + "additionalProperties": false, + "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", }, }, "type": "object", }, - "name": { - "description": "The name associated with this skill", - "example": "Information-Technology", + "next": { + "description": "The unified cursor", "type": "string", }, + "page_size": { + "description": "The number of results per page (default value is 25)", + "type": "string", + }, + "proxy": { + "additionalProperties": true, + "description": "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", + "type": "object", + }, + "raw": { + "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", + "type": "boolean", + }, "x-account-id": undefined, }, - "required": [ - "id", - ], + "required": undefined, "type": "object", }, "requestBuilder": RequestBuilder { @@ -18691,7 +18681,7 @@ Map { "headers": { "Authorization": "Basic dGVzdF9rZXk6", }, - "method": "POST", + "method": "GET", "params": [ { "location": "header", @@ -18699,31 +18689,41 @@ Map { "type": "string", }, { - "location": "body", - "name": "id", - "type": "string", + "location": "query", + "name": "raw", + "type": "boolean", }, { - "location": "body", - "name": "name", + "location": "query", + "name": "proxy", + "type": "object", + }, + { + "location": "query", + "name": "fields", "type": "string", }, { - "location": "body", - "name": "maximum_proficiency", + "location": "query", + "name": "filter", "type": "object", }, { - "location": "body", - "name": "minimum_proficiency", - "type": "object", + "location": "query", + "name": "page_size", + "type": "string", + }, + { + "location": "query", + "name": "next", + "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/skills", + "url": "https://api.stackone.com/unified/hris/jobs", }, }, StackOneTool { - "description": "Get Employee Skill", + "description": "Get Job", "executeConfig": { "bodyType": "json", "method": "GET", @@ -18738,11 +18738,6 @@ Map { "name": "id", "type": "string", }, - { - "location": "path", - "name": "subResourceId", - "type": "string", - }, { "location": "query", "name": "raw", @@ -18759,9 +18754,9 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/skills/{subResourceId}", + "url": "https://api.stackone.com/unified/hris/jobs/{id}", }, - "name": "hris_get_employee_skill", + "name": "hris_get_job", "parameterMapper": ParameterMapper { "transformers": Map { @@ -18779,7 +18774,7 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,active,language,maximum_proficiency,minimum_proficiency", + "example": "id,remote_id,name,type,parent_ids,remote_parent_ids,owner_ids,remote_owner_ids", "type": "string", }, "file_path": { @@ -18798,14 +18793,10 @@ Map { "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", "type": "boolean", }, - "subResourceId": { - "type": "string", - }, "x-account-id": undefined, }, "required": [ "id", - "subResourceId", ], "type": "object", }, @@ -18826,11 +18817,6 @@ Map { "name": "id", "type": "string", }, - { - "location": "path", - "name": "subResourceId", - "type": "string", - }, { "location": "query", "name": "raw", @@ -18847,11 +18833,11 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/skills/{subResourceId}", + "url": "https://api.stackone.com/unified/hris/jobs/{id}", }, }, StackOneTool { - "description": "List Time Off Policies", + "description": "List Employee Skills", "executeConfig": { "bodyType": "json", "method": "GET", @@ -18861,6 +18847,11 @@ Map { "name": "x-account-id", "type": "string", }, + { + "location": "path", + "name": "id", + "type": "string", + }, { "location": "query", "name": "raw", @@ -18892,9 +18883,9 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/time_off_policies", + "url": "https://api.stackone.com/unified/hris/employees/{id}/skills", }, - "name": "hris_list_time_off_policies", + "name": "hris_list_employee_skills", "parameterMapper": ParameterMapper { "transformers": Map { @@ -18912,7 +18903,7 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,description,type,duration_unit,reasons,updated_at,created_at", + "example": "id,remote_id,name,active,language,maximum_proficiency,minimum_proficiency", "type": "string", }, "file_path": { @@ -18920,37 +18911,8 @@ Map { "type": "string", }, "filter": { - "description": "HRIS Time-Off Policies filters", + "description": "Filter parameters that allow greater customisation of the list response", "properties": { - "type": { - "description": "Filter to select time-off policies by type", - "enum": [ - "sick", - "unmapped_value", - "vacation", - "long_term_disability", - "short_term_disability", - "absent", - "comp_time", - "training", - "annual_leave", - "leave_of_absence", - "break", - "child_care_leave", - "maternity_leave", - "jury_duty", - "sabbatical", - "accident", - "paid", - "unpaid", - "holiday", - "personal", - "in_lieu", - "bereavement", - null, - ], - "type": "string", - }, "updated_after": { "additionalProperties": false, "description": "Use a string with a date to only select results updated after that given date", @@ -18960,6 +18922,9 @@ Map { }, "type": "object", }, + "id": { + "type": "string", + }, "next": { "description": "The unified cursor", "type": "string", @@ -18979,7 +18944,9 @@ Map { }, "x-account-id": undefined, }, - "required": undefined, + "required": [ + "id", + ], "type": "object", }, "requestBuilder": RequestBuilder { @@ -18994,6 +18961,11 @@ Map { "name": "x-account-id", "type": "string", }, + { + "location": "path", + "name": "id", + "type": "string", + }, { "location": "query", "name": "raw", @@ -19025,14 +18997,14 @@ Map { "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/time_off_policies", + "url": "https://api.stackone.com/unified/hris/employees/{id}/skills", }, }, StackOneTool { - "description": "Get Time Off Policy", + "description": "Create Employee Skill", "executeConfig": { "bodyType": "json", - "method": "GET", + "method": "POST", "params": [ { "location": "header", @@ -19040,29 +19012,29 @@ Map { "type": "string", }, { - "location": "path", + "location": "body", "name": "id", "type": "string", }, { - "location": "query", - "name": "raw", - "type": "boolean", + "location": "body", + "name": "name", + "type": "string", }, { - "location": "query", - "name": "proxy", + "location": "body", + "name": "maximum_proficiency", "type": "object", }, { - "location": "query", - "name": "fields", - "type": "string", + "location": "body", + "name": "minimum_proficiency", + "type": "object", }, ], - "url": "https://api.stackone.com/unified/hris/time_off_policies/{id}", + "url": "https://api.stackone.com/unified/hris/employees/{id}/skills", }, - "name": "hris_get_time_off_policy", + "name": "hris_create_employee_skill", "parameterMapper": ParameterMapper { "transformers": Map { @@ -19078,26 +19050,83 @@ Map { }, "parameters": { "properties": { - "fields": { - "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,description,type,duration_unit,reasons,updated_at,created_at", - "type": "string", - }, "file_path": { "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", }, "id": { + "description": "The ID associated with this skill", + "example": "16873-IT345", "type": "string", }, - "proxy": { - "additionalProperties": true, - "description": "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", + "maximum_proficiency": { + "description": "The proficiency level of the skill", + "properties": { + "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, + "name": { + "description": "The name associated with this proficiency", + "example": "Expert", + "type": "string", + }, + "remote_id": { + "description": "Provider's unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, + "value": { + "enum": [ + "1", + "2", + "3", + "4", + "5", + null, + ], + "type": "string", + }, + }, "type": "object", }, - "raw": { - "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", - "type": "boolean", + "minimum_proficiency": { + "description": "The proficiency level of the skill", + "properties": { + "id": { + "description": "Unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, + "name": { + "description": "The name associated with this proficiency", + "example": "Expert", + "type": "string", + }, + "remote_id": { + "description": "Provider's unique identifier", + "example": "8187e5da-dc77-475e-9949-af0f1fa4e4e3", + "type": "string", + }, + "value": { + "enum": [ + "1", + "2", + "3", + "4", + "5", + null, + ], + "type": "string", + }, + }, + "type": "object", + }, + "name": { + "description": "The name associated with this skill", + "example": "Information-Technology", + "type": "string", }, "x-account-id": undefined, }, @@ -19111,7 +19140,7 @@ Map { "headers": { "Authorization": "Basic dGVzdF9rZXk6", }, - "method": "GET", + "method": "POST", "params": [ { "location": "header", @@ -19119,31 +19148,31 @@ Map { "type": "string", }, { - "location": "path", + "location": "body", "name": "id", "type": "string", }, { - "location": "query", - "name": "raw", - "type": "boolean", + "location": "body", + "name": "name", + "type": "string", }, { - "location": "query", - "name": "proxy", + "location": "body", + "name": "maximum_proficiency", "type": "object", }, { - "location": "query", - "name": "fields", - "type": "string", + "location": "body", + "name": "minimum_proficiency", + "type": "object", }, ], - "url": "https://api.stackone.com/unified/hris/time_off_policies/{id}", + "url": "https://api.stackone.com/unified/hris/employees/{id}/skills", }, }, StackOneTool { - "description": "List Assigned Time Off Policies", + "description": "Get Employee Skill", "executeConfig": { "bodyType": "json", "method": "GET", @@ -19158,6 +19187,11 @@ Map { "name": "id", "type": "string", }, + { + "location": "path", + "name": "subResourceId", + "type": "string", + }, { "location": "query", "name": "raw", @@ -19173,25 +19207,10 @@ Map { "name": "fields", "type": "string", }, - { - "location": "query", - "name": "filter", - "type": "object", - }, - { - "location": "query", - "name": "page_size", - "type": "string", - }, - { - "location": "query", - "name": "next", - "type": "string", - }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/time_off_policies", + "url": "https://api.stackone.com/unified/hris/employees/{id}/skills/{subResourceId}", }, - "name": "hris_list_employee_time_off_policies", + "name": "hris_get_employee_skill", "parameterMapper": ParameterMapper { "transformers": Map { @@ -19209,65 +19228,16 @@ Map { "properties": { "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,name,description,type,duration_unit,reasons,updated_at,created_at", + "example": "id,remote_id,name,active,language,maximum_proficiency,minimum_proficiency", "type": "string", }, "file_path": { "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", }, - "filter": { - "description": "HRIS Time-Off Policies filters", - "properties": { - "type": { - "description": "Filter to select time-off policies by type", - "enum": [ - "sick", - "unmapped_value", - "vacation", - "long_term_disability", - "short_term_disability", - "absent", - "comp_time", - "training", - "annual_leave", - "leave_of_absence", - "break", - "child_care_leave", - "maternity_leave", - "jury_duty", - "sabbatical", - "accident", - "paid", - "unpaid", - "holiday", - "personal", - "in_lieu", - "bereavement", - null, - ], - "type": "string", - }, - "updated_after": { - "additionalProperties": false, - "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", - }, - }, - "type": "object", - }, "id": { "type": "string", }, - "next": { - "description": "The unified cursor", - "type": "string", - }, - "page_size": { - "description": "The number of results per page (default value is 25)", - "type": "string", - }, "proxy": { "additionalProperties": true, "description": "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", @@ -19277,10 +19247,14 @@ Map { "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", "type": "boolean", }, + "subResourceId": { + "type": "string", + }, "x-account-id": undefined, }, "required": [ "id", + "subResourceId", ], "type": "object", }, @@ -19301,6 +19275,11 @@ Map { "name": "id", "type": "string", }, + { + "location": "path", + "name": "subResourceId", + "type": "string", + }, { "location": "query", "name": "raw", @@ -19316,27 +19295,12 @@ Map { "name": "fields", "type": "string", }, - { - "location": "query", - "name": "filter", - "type": "object", - }, - { - "location": "query", - "name": "page_size", - "type": "string", - }, - { - "location": "query", - "name": "next", - "type": "string", - }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/time_off_policies", + "url": "https://api.stackone.com/unified/hris/employees/{id}/skills/{subResourceId}", }, }, StackOneTool { - "description": "List Employee Tasks", + "description": "List Time Off Policies", "executeConfig": { "bodyType": "json", "method": "GET", @@ -19346,11 +19310,6 @@ Map { "name": "x-account-id", "type": "string", }, - { - "location": "path", - "name": "id", - "type": "string", - }, { "location": "query", "name": "raw", @@ -19381,15 +19340,10 @@ Map { "name": "next", "type": "string", }, - { - "location": "query", - "name": "expand", - "type": "string", - }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/tasks", + "url": "https://api.stackone.com/unified/hris/time_off_policies", }, - "name": "hris_list_employee_tasks", + "name": "hris_list_time_off_policies", "parameterMapper": ParameterMapper { "transformers": Map { @@ -19405,14 +19359,9 @@ Map { }, "parameters": { "properties": { - "expand": { - "description": "The comma separated list of fields that will be expanded in the response", - "example": "attachments", - "type": "string", - }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,name,description,type,status,due_date,completion_date,assigned_by_employee_id,remote_assigned_by_employee_id,assigned_by_employee_name,link_to_task,extracted_links,next_task_id,remote_next_task_id,parent_process_name,comments,attachments,created_at,updated_at", + "example": "id,remote_id,name,description,type,duration_unit,reasons,updated_at,created_at", "type": "string", }, "file_path": { @@ -19431,9 +19380,6 @@ Map { }, "type": "object", }, - "id": { - "type": "string", - }, "next": { "description": "The unified cursor", "type": "string", @@ -19453,9 +19399,7 @@ Map { }, "x-account-id": undefined, }, - "required": [ - "id", - ], + "required": undefined, "type": "object", }, "requestBuilder": RequestBuilder { @@ -19470,11 +19414,6 @@ Map { "name": "x-account-id", "type": "string", }, - { - "location": "path", - "name": "id", - "type": "string", - }, { "location": "query", "name": "raw", @@ -19505,17 +19444,12 @@ Map { "name": "next", "type": "string", }, - { - "location": "query", - "name": "expand", - "type": "string", - }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/tasks", + "url": "https://api.stackone.com/unified/hris/time_off_policies", }, }, StackOneTool { - "description": "Get Employee Task", + "description": "Get Time Off Policy", "executeConfig": { "bodyType": "json", "method": "GET", @@ -19530,11 +19464,6 @@ Map { "name": "id", "type": "string", }, - { - "location": "path", - "name": "subResourceId", - "type": "string", - }, { "location": "query", "name": "raw", @@ -19550,15 +19479,10 @@ Map { "name": "fields", "type": "string", }, - { - "location": "query", - "name": "expand", - "type": "string", - }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/tasks/{subResourceId}", + "url": "https://api.stackone.com/unified/hris/time_off_policies/{id}", }, - "name": "hris_get_employee_task", + "name": "hris_get_time_off_policy", "parameterMapper": ParameterMapper { "transformers": Map { @@ -19574,14 +19498,9 @@ Map { }, "parameters": { "properties": { - "expand": { - "description": "The comma separated list of fields that will be expanded in the response", - "example": "attachments", - "type": "string", - }, "fields": { "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", - "example": "id,remote_id,employee_id,remote_employee_id,name,description,type,status,due_date,completion_date,assigned_by_employee_id,remote_assigned_by_employee_id,assigned_by_employee_name,link_to_task,extracted_links,next_task_id,remote_next_task_id,parent_process_name,comments,attachments,created_at,updated_at", + "example": "id,remote_id,name,description,type,duration_unit,reasons,updated_at,created_at", "type": "string", }, "file_path": { @@ -19600,14 +19519,10 @@ Map { "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", "type": "boolean", }, - "subResourceId": { - "type": "string", - }, "x-account-id": undefined, }, "required": [ "id", - "subResourceId", ], "type": "object", }, @@ -19628,11 +19543,6 @@ Map { "name": "id", "type": "string", }, - { - "location": "path", - "name": "subResourceId", - "type": "string", - }, { "location": "query", "name": "raw", @@ -19648,20 +19558,15 @@ Map { "name": "fields", "type": "string", }, - { - "location": "query", - "name": "expand", - "type": "string", - }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/tasks/{subResourceId}", + "url": "https://api.stackone.com/unified/hris/time_off_policies/{id}", }, }, StackOneTool { - "description": "Complete Employee Task", + "description": "List Assigned Time Off Policies", "executeConfig": { "bodyType": "json", - "method": "PATCH", + "method": "GET", "params": [ { "location": "header", @@ -19674,24 +19579,39 @@ Map { "type": "string", }, { - "location": "path", - "name": "subResourceId", - "type": "string", + "location": "query", + "name": "raw", + "type": "boolean", }, { "location": "query", "name": "proxy", + "type": "object", + }, + { + "location": "query", + "name": "fields", "type": "string", }, { - "location": "body", - "name": "comment", + "location": "query", + "name": "filter", + "type": "object", + }, + { + "location": "query", + "name": "page_size", + "type": "string", + }, + { + "location": "query", + "name": "next", "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/tasks/{subResourceId}", + "url": "https://api.stackone.com/unified/hris/employees/{id}/time_off_policies", }, - "name": "hris_complete_employee_task", + "name": "hris_list_employee_time_off_policies", "parameterMapper": ParameterMapper { "transformers": Map { @@ -19707,27 +19627,51 @@ Map { }, "parameters": { "properties": { - "comment": { - "description": "Comment or note about the task completion", - "example": "All required documents have been submitted", + "fields": { + "description": "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", + "example": "id,remote_id,name,description,type,duration_unit,reasons,updated_at,created_at", "type": "string", }, "file_path": { "description": "Convenience parameter that will be transformed into other parameters. Try and use this parameter in your tool call.", "type": "string", }, + "filter": { + "description": "Filter parameters that allow greater customisation of the list response", + "properties": { + "updated_after": { + "additionalProperties": false, + "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", + }, + }, + "type": "object", + }, "id": { "type": "string", }, - "proxy": {}, - "subResourceId": { + "next": { + "description": "The unified cursor", + "type": "string", + }, + "page_size": { + "description": "The number of results per page (default value is 25)", "type": "string", }, + "proxy": { + "additionalProperties": true, + "description": "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", + "type": "object", + }, + "raw": { + "description": "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", + "type": "boolean", + }, "x-account-id": undefined, }, "required": [ "id", - "subResourceId", ], "type": "object", }, @@ -19736,7 +19680,7 @@ Map { "headers": { "Authorization": "Basic dGVzdF9rZXk6", }, - "method": "PATCH", + "method": "GET", "params": [ { "location": "header", @@ -19749,22 +19693,37 @@ Map { "type": "string", }, { - "location": "path", - "name": "subResourceId", - "type": "string", + "location": "query", + "name": "raw", + "type": "boolean", }, { "location": "query", "name": "proxy", + "type": "object", + }, + { + "location": "query", + "name": "fields", "type": "string", }, { - "location": "body", - "name": "comment", + "location": "query", + "name": "filter", + "type": "object", + }, + { + "location": "query", + "name": "page_size", + "type": "string", + }, + { + "location": "query", + "name": "next", "type": "string", }, ], - "url": "https://api.stackone.com/unified/hris/employees/{id}/tasks/{subResourceId}", + "url": "https://api.stackone.com/unified/hris/employees/{id}/time_off_policies", }, }, ], diff --git a/src/toolsets/tests/openapi.spec.ts b/src/toolsets/tests/openapi.spec.ts index 2047c87..2aea464 100644 --- a/src/toolsets/tests/openapi.spec.ts +++ b/src/toolsets/tests/openapi.spec.ts @@ -4,7 +4,7 @@ import { OpenAPILoader } from '../../openapi/loader'; import { mockFetch } from '../../tests/utils/fetch-mock'; import { ParameterLocation } from '../../types'; import type { AuthenticationConfig } from '../base'; -import { OpenAPIToolSet } from '../openapi'; +import { OpenAPIToolSet, type OpenAPIToolSetConfigFromUrl } from '../openapi'; describe('OpenAPIToolSet', () => { // Path to test fixtures @@ -116,7 +116,7 @@ describe('OpenAPIToolSet', () => { it('should throw error if URL is not provided to fromUrl', async () => { // Attempt to create an instance without URL - await expect(OpenAPIToolSet.fromUrl({} as any)).rejects.toThrow(); + await expect(OpenAPIToolSet.fromUrl({} as OpenAPIToolSetConfigFromUrl)).rejects.toThrow(); }); it('should set headers on tools', () => {