Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/chili-piper-distribution-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no email required.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Chili Piper Distribution API
version: '1.0'
description: 'Operations tagged distribution across 9 of this provider''s published API definitions: chili-piper-concierge-router-builder-openapi.yaml, chili-piper-concierge-router-configuration-openapi.yaml, chili-piper-distribution-analysis-openapi.yaml, chili-piper-distro-debugger-openapi.yaml, chili-piper-distro-router-configuration-openapi.yaml, chili-piper-handoff-router-configuration-openapi.yaml, chili-piper-routing-audit-openapi.yaml, chili-piper-scheduling-link-management-openapi.yaml, chili-piper-user-offboarding-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://fire.chilipiper.com/api/fire-edge
description: Production
security:
- apiKeyAuth: []
tags:
- name: distribution
paths:
/v1/org/distribution:
servers:
- url: https://fire.chilipiper.com/api/fire-edge
description: Production
post:
tags:
- distribution
summary: Create distribution
description: "[operation: distribution-create]\n\n\n\nMUTATING\n\n\n\nCreates and immediately publishes a distribution — a reusable assignment pool that routing rules and round-robin scheduling links reference. `name` is required: a nameless distribution is a legacy (v1) one that never appears in distribution-list and cannot be used until named. `assignmentTypeConfig` fixes what it distributes (records, meetings, or conversations). Tune weights/caps afterwards with distribution-update-v3 or distribution-adjust-v3.\n\n- assignmentTypeConfig (req): discriminated by `type`:\n\n {type: \"Record\", handling: {type: \"WorkingHours\"}|{type: \"Strict\"}}\n {type: \"Meeting\", handling: {type: \"Flexible\", reassignmentType: \"SameUser\"|\"AnyTeamMember\", allowPickingAssignee: bool}\n |{type: \"Strict\", hideAssignee: bool},\n limits: {type: \"MeetingLimitUnset\"}\n |{type: \"MeetingLimitSet\", userCaps: [{userId, limit}], resetPeriodicity: {type: \"HourlyRolling\"}|{type: \"Daily\", timeZone}|{type: \"Weekly\", timeZone, dayOfWeek(1-7)}|{type: \"Monthly\", timeZone}}}\n {type: \"Conversation\"}\n\n- weights (opt): [{userId, weight}]; manualCalibration (opt): [{userId, count}]; capping (opt): per-user caps\n\n→\n\n {distributionId}\n\nsee: team-list (find teamId), distribution-list (verify after)"
operationId: distributionCreate
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDistributionRequest'
required: true
responses:
'200':
description: ''
headers:
Cache-Control:
required: true
schema:
type: string
X-Robots-Tag:
required: true
schema:
type: string
Pragma:
required: true
schema:
type: string
Expires:
required: true
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDistributionResponse'
'400':
description: 'Invalid value for: body'
content:
text/plain:
schema:
type: string
default:
description: ''
headers:
Location:
required: false
schema:
type: string
content:
application/json:
schema:
type: object
required:
- errorCode
- errorMessage
properties:
errorCode:
type: string
errorMessage:
type: string
arguments:
$ref: '#/components/schemas/Map_String'
security:
- apiKeyAuth: []
X-Chili-Required-Permissions:
- distribution.modify
/v2/org/distribution/list:
servers:
- url: https://fire.chilipiper.com/api/fire-edge
description: Production
put:
tags:
- distribution
summary: List all distributions (PUT)
description: "[operation: distribution-list-put]\n\n\n\nREAD-ONLY\n\n\n\nBrowses published distributions in the org — the preferred, non-deprecated list. Filters go in the request body (avoiding query-string length limits): workspaceIds, name (substring match), and assignmentType (\"Record\" | \"Meeting\" | \"Conversation\"). Paginated (pageSize default 200).\n\n→\n\n {results: [{distributionId, name, teamId, assignees, assignmentTypeConfig, capping}]}\n\nsee: distribution-list (GET equivalent)"
operationId: distributionListPut
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ListRequest'
required: true
responses:
'200':
description: ''
headers:
Cache-Control:
required: true
schema:
type: string
X-Robots-Tag:
required: true
schema:
type: string
Pragma:
required: true
schema:
type: string
Expires:
required: true
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedResult_Distribution'
'400':
description: 'Invalid value for: body'
content:
text/plain:
schema:
type: string
default:
description: ''
headers:
Location:
required: false
schema:
type: string
content:
application/json:
schema:
type: object
required:
- errorCode
- errorMessage
properties:
errorCode:
type: string
errorMessage:
type: string
arguments:
$ref: '#/components/schemas/Map_String'
security:
- apiKeyAuth: []
X-Chili-Required-Permissions:
- distribution.read
/v1/org/distribution/workspace-settings:
servers:
- url: https://fire.chilipiper.com/api/fire-edge
description: Production
get:
tags:
- distribution
summary: Get workspace distribution settings
description: "[operation: distribution-workspace-settings-get]\n\n\n\nREAD-ONLY\n\n\n\nRead a workspace's round-robin distribution (fairness/leveling) settings.\n\n\n\nReturns the workspace-level round-robin settings that shape the fairness/leveling equation applied on top of each distribution's per-user weights and calibration. These knobs are shared by every distribution in the workspace, so an analysis skill should read them before reasoning about how assignments are balanced (otherwise it may misassume the leveling rules). Reflects the published (live) settings only. Pass the target `workspaceId` (from workspace-list).\n\n→\n\n {calibrateVacation, creditBackCancelled, creditBackNoShow, orderIfEqualState (\"Random\"|\"AsConfigured\"), resetPeriodicity, vacationBuffer: {daysBeforeStart, daysBeforeEnd, recognitionEnabled, freshness (\"RealTime\"|\"Cached\")}}\n\n- resetPeriodicity: discriminated by `type`:\n\n {type: \"Monthly\", timeZone}\n {type: \"Quarterly\", firstMonth (1-3), timeZone}\n {type: \"Yearly\", monthOfYear (1-12), timeZone}\n {type: \"Never\"}\n\n Note: creditBackCancelled / creditBackNoShow move a user back up the queue when a meeting is cancelled / no-showed; calibrateVacation excuses vacationing users from the fairness penalty.\n\nsee: distribution-workspace-settings-update (edit these settings), workspace-list (resolve workspaceId), distribution-list-put (per-distribution weights/calibration)"
operationId: distributionWorkspaceSettingsGet
parameters:
- name: workspaceId
in: query
description: Id of the workspace
required: true
schema:
type: string
pattern: '[^\s\\/]+'
responses:
'200':
description: ''
headers:
Cache-Control:
required: true
schema:
type: string
X-Robots-Tag:
required: true
schema:
type: string
Pragma:
required: true
schema:
type: string
Expires:
required: true
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceDistributionSettings'
'400':
description: 'Invalid value for: query parameter workspaceId'
content:
text/plain:
schema:
type: string
default:
description: ''
headers:
Location:
required: false
schema:
type: string
content:
application/json:
schema:
type: object
required:
- errorCode
- errorMessage
properties:
errorCode:
type: string
errorMessage:
type: string
arguments:
$ref: '#/components/schemas/Map_String'
security:
- apiKeyAuth: []
X-Chili-Required-Permissions:
- distribution.read
components:
schemas:
MeetingLimit:
title: MeetingLimit
oneOf:
- $ref: '#/components/schemas/MeetingLimit_MeetingLimitSet'
- $ref: '#/components/schemas/MeetingLimit_MeetingLimitUnset'
discriminator:
propertyName: type
mapping:
MeetingLimitSet: '#/components/schemas/MeetingLimit_MeetingLimitSet'
MeetingLimitUnset: '#/components/schemas/MeetingLimit_MeetingLimitUnset'
TeamRef:
title: TeamRef
type: object
required:
- id
- revision
properties:
id:
$ref: '#/components/schemas/TeamId'
revision:
type: integer
format: int32
CallerRef:
title: CallerRef
description: stringified caller reference in format $type/$id
examples:
- user/17a3d4563d5a67a3d456ad635
type: string
DistributionId:
title: DistributionId
examples:
- 7f8a1b2c-3d4e-4f5a-8b9c-0d1e2f3a4b5c
type: string
pattern: '[^\s\\/]+'
CreateDistributionRequest:
title: CreateDistributionRequest
type: object
required:
- teamId
- workspaceId
- assignmentTypeConfig
- name
properties:
teamId:
$ref: '#/components/schemas/TeamId'
workspaceId:
$ref: '#/components/schemas/WorkspaceId'
assignmentTypeConfig:
$ref: '#/components/schemas/DistributionAssignmentTypeConfig'
weights:
type: array
items:
$ref: '#/components/schemas/UserWeight'
manualCalibration:
type: array
items:
$ref: '#/components/schemas/UserCalibration'
capping:
$ref: '#/components/schemas/DistributedAssignmentLimit'
name:
type: string
ConfigurationDTO:
title: ConfigurationDTO
type: object
required:
- distributionId
- workspaceId
- assignmentTypeConfig
- teamRef
- metadata
properties:
distributionId:
$ref: '#/components/schemas/DistributionId'
workspaceId:
$ref: '#/components/schemas/WorkspaceId'
assignmentTypeConfig:
$ref: '#/components/schemas/DistributionAssignmentTypeConfig'
teamRef:
$ref: '#/components/schemas/TeamRef'
weights:
type: array
items:
$ref: '#/components/schemas/UserWeight'
name:
type: string
manualCalibration:
type: array
items:
$ref: '#/components/schemas/UserCalibration'
capping:
$ref: '#/components/schemas/DistributedAssignmentLimit'
metadata:
$ref: '#/components/schemas/SimpleMetadata'
TeamId:
title: TeamId
examples:
- 2a9c3f1e-8b7d-4a5c-9e6f-1b2c3d4e5f6a
type: string
pattern: '[^\s\\/]+'
DistributionAssignmentTypeConfig_Meeting:
title: DistributionAssignmentTypeConfig_Meeting
type: object
required:
- handling
- limits
- type
properties:
handling:
$ref: '#/components/schemas/MeetingHandling'
limits:
$ref: '#/components/schemas/MeetingLimit'
type:
type: string
const: Meeting
DistributionAssignmentTypeConfig_Conversation:
title: DistributionAssignmentTypeConfig_Conversation
type: object
required:
- type
properties:
type:
type: string
const: Conversation
VacationFreshness:
title: VacationFreshness
description: Whether vacation state is read live (RealTime) or from cache (Cached).
type: string
enum:
- Cached
- RealTime
WorkspaceResetPeriodicity_Yearly:
title: WorkspaceResetPeriodicity_Yearly
description: Counters reset once a year in `monthOfYear` (1-12) in the given time zone.
type: object
required:
- monthOfYear
- timeZone
- type
properties:
monthOfYear:
type: integer
format: int32
timeZone:
description: IANA timezone identifier (e.g. America/New_York, Europe/London, Asia/Tokyo)
examples:
- America/New_York
type: string
type:
type: string
const: Yearly
ListRequest:
title: ListRequest
type: object
properties:
workspaceIds:
type: array
minItems: 1
items:
type: string
pattern: '[^\s\\/]+'
page:
type: integer
format: int64
minimum: 0
pageSize:
type: integer
format: int64
exclusiveMinimum: 0
name:
type: string
assignmentType:
$ref: '#/components/schemas/DistributionAssignmentType'
SimpleMetadata:
title: SimpleMetadata
type: object
required:
- createdAt
- createdBy
- updatedAt
- updatedBy
- revision
properties:
createdAt:
type: string
format: date-time
createdBy:
$ref: '#/components/schemas/CallerRef'
updatedAt:
type: string
format: date-time
updatedBy:
$ref: '#/components/schemas/CallerRef'
revision:
type: integer
format: int32
DistributionState:
title: DistributionState
type: object
properties:
userStates:
type: array
items:
$ref: '#/components/schemas/DistributionUserState'
lastReset:
type: string
format: date-time
DistributedAssignmentLimitReset:
title: DistributedAssignmentLimitReset
oneOf:
- $ref: '#/components/schemas/DistributedAssignmentLimitReset_Daily'
- $ref: '#/components/schemas/DistributedAssignmentLimitReset_HourlyRolling'
- $ref: '#/components/schemas/DistributedAssignmentLimitReset_Monthly'
- $ref: '#/components/schemas/DistributedAssignmentLimitReset_Weekly'
discriminator:
propertyName: type
mapping:
Daily: '#/components/schemas/DistributedAssignmentLimitReset_Daily'
HourlyRolling: '#/components/schemas/DistributedAssignmentLimitReset_HourlyRolling'
Monthly: '#/components/schemas/DistributedAssignmentLimitReset_Monthly'
Weekly: '#/components/schemas/DistributedAssignmentLimitReset_Weekly'
DistributionAssignmentTypeConfig_Record:
title: DistributionAssignmentTypeConfig_Record
type: object
required:
- handling
- type
properties:
handling:
$ref: '#/components/schemas/RecordHandling'
type:
type: string
const: Record
RecordHandling:
title: RecordHandling
oneOf:
- $ref: '#/components/schemas/RecordHandling_Strict'
- $ref: '#/components/schemas/RecordHandling_WorkingHours'
discriminator:
propertyName: type
mapping:
Strict: '#/components/schemas/RecordHandling_Strict'
WorkingHours: '#/components/schemas/RecordHandling_WorkingHours'
DistributionUserState:
title: DistributionUserState
oneOf:
- $ref: '#/components/schemas/DistributionUserState_Active'
- $ref: '#/components/schemas/DistributionUserState_Capped'
- $ref: '#/components/schemas/DistributionUserState_Disabled'
- $ref: '#/components/schemas/DistributionUserState_NoLicense'
- $ref: '#/components/schemas/DistributionUserState_Removed'
discriminator:
propertyName: type
mapping:
Active: '#/components/schemas/DistributionUserState_Active'
Capped: '#/components/schemas/DistributionUserState_Capped'
Disabled: '#/components/schemas/DistributionUserState_Disabled'
NoLicense: '#/components/schemas/DistributionUserState_NoLicense'
Removed: '#/components/schemas/DistributionUserState_Removed'
RecordHandling_Strict:
title: RecordHandling_Strict
type: object
required:
- type
properties:
type:
type: string
const: Strict
WorkspaceResetPeriodicity_Never:
title: WorkspaceResetPeriodicity_Never
description: Counters never reset automatically.
type: object
required:
- type
properties:
type:
type: string
const: Never
MeetingLimitReset:
title: MeetingLimitReset
oneOf:
- $ref: '#/components/schemas/MeetingLimitReset_Daily'
- $ref: '#/components/schemas/MeetingLimitReset_Monthly'
- $ref: '#/components/schemas/MeetingLimitReset_Weekly'
discriminator:
propertyName: type
mapping:
Daily: '#/components/schemas/MeetingLimitReset_Daily'
Monthly: '#/components/schemas/MeetingLimitReset_Monthly'
Weekly: '#/components/schemas/MeetingLimitReset_Weekly'
MeetingLimitReset_Monthly:
title: MeetingLimitReset_Monthly
type: object
required:
- every
- startsOn
- resetDay
- timezone
- type
properties:
every:
type: integer
format: int32
exclusiveMinimum: 0
startsOn:
type: string
format: date
resetDay:
type: integer
format: int32
minimum: 1
maximum: 28
timezone:
description: IANA timezone identifier (e.g. America/New_York, Europe/London, Asia/Tokyo)
examples:
- America/New_York
type: string
type:
type: string
const: Monthly
DistributionUserState_Disabled:
title: DistributionUserState_Disabled
description: User has been explicitly disabled in this distribution (weight set to 0). Still on the team but won't receive assignments until re-enabled.
type: object
required:
- userId
- total
- disabledAt
- statistics
- type
properties:
userId:
$ref: '#/components/schemas/UserId'
total:
type: integer
format: int32
disabledAt:
type: string
format: date-time
statistics:
$ref: '#/components/schemas/UserStatistics'
type:
type: string
const: Disabled
DistributedAssignmentLimitReset_HourlyRolling:
title: DistributedAssignmentLimitReset_HourlyRolling
type: object
required:
- type
properties:
type:
type: string
const: HourlyRolling
WorkspaceDistributionSettings:
title: WorkspaceDistributionSettings
type: object
required:
- calibrateVacation
- creditBackCancelled
- creditBackNoShow
- orderIfEqualState
- resetPeriodicity
- vacationBuffer
properties:
calibrateVacation:
description: Whether users on vacation are calibrated out of the fairness equation so they are not penalized for time off.
type: boolean
creditBackCancelled:
description: Whether a cancelled meeting credits the assignment back to the user (they move back up the queue as if unassigned).
type: boolean
creditBackNoShow:
description: Whether a no-show credits the assignment back to the user, like `creditBackCancelled`.
type: boolean
orderIfEqualState:
$ref: '#/components/schemas/OrderIfEqualState'
resetPeriodicity:
$ref: '#/components/schemas/WorkspaceResetPeriodicity'
description: When the per-period assignment counters reset.
vacationBuffer:
$ref: '#/components/schemas/VacationBuffer'
description: Vacation-awareness configuration.
UserCalibration:
title: UserCalibration
type: object
required:
- userId
- calibration
properties:
userId:
$ref: '#/components/schemas/UserId'
calibration:
type: integer
format: int32
PaginatedResult_Distribution:
title: PaginatedResult_Distribution
type: object
required:
- total
- page
- pageSize
properties:
results:
type: array
items:
$ref: '#/components/schemas/Distribution'
total:
type: integer
format: int64
page:
type: integer
format: int64
minimum: 0
pageSize:
type: integer
format: int64
exclusiveMinimum: 0
WorkspaceResetPeriodicity_Monthly:
title: WorkspaceResetPeriodicity_Monthly
description: Counters reset at the start of every month in the given time zone.
type: object
required:
- timeZone
- type
properties:
timeZone:
description: IANA timezone identifier (e.g. America/New_York, Europe/London, Asia/Tokyo)
examples:
- America/New_York
type: string
type:
type: string
const: Monthly
DistributionUserState_Capped:
title: DistributionUserState_Capped
description: User has reached their assignment cap for the current period and is temporarily excluded until the cap resets.
type: object
required:
- userId
- total
- statistics
- type
properties:
userId:
$ref: '#/components/schemas/UserId'
total:
type: integer
format: int32
statistics:
$ref: '#/components/schemas/UserStatistics'
type:
type: string
const: Capped
MeetingLimitReset_Daily:
title: MeetingLimitReset_Daily
type: object
required:
- every
- startsOn
- resetLocalTime
- timezone
- type
properties:
every:
type: integer
format: int32
exclusiveMinimum: 0
startsOn:
type: string
format: date
resetLocalTime:
type: string
timezone:
description: IANA timezone identifier (e.g. America/New_York, Europe/London, Asia/Tokyo)
examples:
- America/New_York
type: string
type:
type: string
const: Daily
UserWeight:
title: UserWeight
type: object
required:
- userId
- weight
properties:
userId:
$ref: '#/components/schemas/UserId'
weight:
type: integer
format: int32
minimum: 0
maximum: 10000
UserLimit:
title: UserLimit
type: object
required:
- userId
- limit
properties:
userId:
$ref: '#/components/schemas/UserId'
limit:
type: integer
format: int32
minimum: 0
WorkspaceResetPeriodicity_Quarterly:
title: WorkspaceResetPeriodicity_Quarterly
description: Counters reset every quarter; `firstMonth` (1-3) is the first month of the quarter.
type: object
required:
- firstMonth
- timeZone
- type
properties:
firstMonth:
type: integer
format: int32
timeZone:
description: IANA timezone identifier (e.g. America/New_York, Europe/London, Asia/Tokyo)
examples:
- America/New_York
type: string
type:
type: string
const: Quarterly
RecordHandling_WorkingHours:
title: RecordHandling_WorkingHours
type: object
required:
- type
properties:
type:
type: string
const: WorkingHours
WorkspaceId:
title: WorkspaceId
examples:
- b7263a5d-89cb-4f50-a532-ea4aff74688e
type: string
pattern: '[^\s\\/]+'
Distribution:
title: Distribution
type: object
required:
- id
- published
- state
- prioritization
properties:
id:
$ref: '#/components/schemas/DistributionId'
published:
$ref: '#/components/schemas/ConfigurationDTO'
state:
$ref: '#/components/schemas/DistributionState'
prioritization:
$ref: '#/components/schemas/Prioritization'
DistributedAssignmentLimitReset_Daily:
title: DistributedAssignmentLimitReset_Daily
type: object
required:
- timeZone
- type
properties:
timeZone:
description: IANA timezone identifier (e.g. America/New_York, Europe/London, Asia/Tokyo)
examples:
- America/New_York
type: string
type:
type: string
const: Daily
DistributionAssignmentType:
title: DistributionAssignmentType
type: string
enum:
- Record
- Meeting
- Conversation
MeetingLimit_MeetingLimitSet:
title: MeetingLimit_MeetingLimitSet
type: object
required:
- resetPeriodicity
- type
properties:
userCaps:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/UserLimit'
resetPeriodicity:
$ref: '#/components/schemas/MeetingLimitReset'
type:
type: string
const: MeetingLimitSet
Prioritization:
title: Prioritization
type: object
properties:
queue:
description: Ordered list of active user IDs in the order they will receive the next assignments. This is the authoritative assignment-ordering surface; level fields are informational.
type: array
items:
type: string
pattern: '[^\s\\/]+'
onVacation:
description: Users currently on vacation and skipped by the queue until they return.
type: array
uniqueItems: true
items:
type: string
pattern: '[^\s\\/]+'
reachedCap:
description: Users who have reached their assignment cap for the current period and are skipped until the cap resets.
type: array
uniqueItems: true
items:
type: string
pattern: '[^\s\\/]+'
MeetingHandling:
title: MeetingHandling
oneOf:
- $ref: '#/components/schemas/MeetingHandling_Flexible'
- $ref: '#/components/schemas/MeetingHandling_Strict'
discriminator:
propertyName: type
mapping:
Flexible: '#/components/schemas/MeetingHandling_Flexible'
Strict: '#/components/schemas/MeetingHandling_Strict'
DistributedAssignmentLimit:
title: DistributedAssignmentLimit
type: object
required:
- resetPeriodicity
properties:
userCaps:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/UserLimit'
resetPeriodicity:
$ref: '#/components/schemas/DistributedAssignmentLimitReset'
DistributionAssignmentTypeConfig:
title: DistributionAssignmentTypeConfig
oneOf:
- $ref: '#/components/schemas/DistributionAssignmentTypeConfig_Conversation'
- $ref: '#/components/schemas/DistributionAssignmentTypeConfig_Meeting'
- $ref: '#/components/schemas/DistributionAssignmentTypeConfig_Record'
discriminator:
propertyName: type
mapping:
Conversation: '#/components/schemas/DistributionAssignmentTypeConfig_Conversation'
Meeting: '#/components/schemas/DistributionAssignmentTypeConfig_Meeting'
Record: '#/components/schemas/DistributionAssignmentTypeConfig_Record'
Map_String:
title: Map_String
type: object
additionalProperties:
type: string
VacationBuffer:
title: VacationBuffer
type: object
required:
- daysBeforeStart
- daysBeforeEnd
- recognitionEnabled
- freshness
properties:
daysBeforeStart:
description: Days before a vacation starts to stop assigning to the user.
type: integer
format: int32
daysBeforeEnd:
description: Days before a vacation ends after which the user becomes assignable again.
type: integer
format: int32
recognitionEnabled:
description: Whether vacations are recognized at all (calendars are consulted).
type: boolean
freshness:
$ref: '#/components/schemas/VacationFreshness'
CreateDistributionResponse:
title: CreateDistributionResponse
type: object
required:
- distributionId
properties:
distributionId:
$ref: '#/components/schemas/DistributionId'
WorkspaceResetPeriodicity:
title: WorkspaceResetPeriodicity
oneOf:
- $ref: '#/components/schemas/WorkspaceResetPeriodicity_Monthly'
- $ref: '#/components/schemas/WorkspaceResetPeriodicity_Never'
- $ref: '#/components/schemas/WorkspaceResetPeriodicity_Quarterly'
- $ref: '#/components/schemas/WorkspaceResetPeriodicity_Yearly'
discriminator:
propertyName: type
mapping:
Monthly: '#/components/schemas/WorkspaceResetPeriodicity_Monthly'
Never: '#/components/schemas/WorkspaceResetPeriodicity_Never'
Quarterly: '#/components/schemas/WorkspaceResetPeriodicity_Quarterly'
Yearly: '#/components/schemas/WorkspaceResetPeriodicity_Yearly'
OrderIfEqualState:
title: OrderIfEqualState
description: Tie-break ordering when two users have an equal level. Currently always "AsConfigured" upstream.
type: string
enum:
- AsConfigured
- Random
MeetingHandling_Flexible:
title: MeetingHandling_Flexible
type: object
required:
- reassignmentType
- allowPickingAssignee
- type
properties:
reassignmentType:
$ref: '#/components/schemas/ReassignmentType'
allowPickingAssignee:
type: boolean
type:
type: string
const: Flexible
DistributionUserState_Active:
title: DistributionUserState_Active
description: User is active in the distribution and eligible for assignments. Carries the user's current level.
type: object
required:
- userId
- total
- level
- statistics
- type
properties:
userId:
$ref: '#/components/schemas/UserId'
total:
type: integer
format: int32
level:
$ref: '#/components/schemas/Levels'
statistics:
$ref: '#/components/schemas/UserStatis
# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/chili-piper/refs/heads/main/openapi/chili-piper-distribution-api-openapi.yml