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:
DistributionAssignmentTypeConfig_Conversation:
title: DistributionAssignmentTypeConfig_Conversation
type: object
required:
- type
properties:
type:
type: string
const: Conversation
TeamRef:
title: TeamRef
type: object
required:
- id
- revision
properties:
id:
$ref: '#/components/schemas/TeamId'
revision:
type: integer
format: int32
UserWeight:
title: UserWeight
type: object
required:
- userId
- weight
properties:
userId:
$ref: '#/components/schemas/UserId'
weight:
type: integer
format: int32
minimum: 0
maximum: 10000
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'
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
ReassignmentType:
title: ReassignmentType
type: string
enum:
- SameUser
- AnyTeamMember
DistributionId:
title: DistributionId
examples:
- 7f8a1b2c-3d4e-4f5a-8b9c-0d1e2f3a4b5c
type: string
pattern: '[^\s\\/]+'
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'
UserLimit:
title: UserLimit
type: object
required:
- userId
- limit
properties:
userId:
$ref: '#/components/schemas/UserId'
limit:
type: integer
format: int32
minimum: 0
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
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'
WorkspaceId:
title: WorkspaceId
examples:
- b7263a5d-89cb-4f50-a532-ea4aff74688e
type: string
pattern: '[^\s\\/]+'
DistributedAssignmentLimit:
title: DistributedAssignmentLimit
type: object
required:
- resetPeriodicity
properties:
userCaps:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/UserLimit'
resetPeriodicity:
$ref: '#/components/schemas/DistributedAssignmentLimitReset'
RecordHandling_Strict:
title: RecordHandling_Strict
type: object
required:
- type
properties:
type:
type: string
const: Strict
DistributionState:
title: DistributionState
type: object
properties:
userStates:
type: array
items:
$ref: '#/components/schemas/DistributionUserState'
lastReset:
type: string
format: date-time
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
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'
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_Removed:
title: DistributionUserState_Removed
description: User was removed from the team entirely — historical record, no assignments will go to this user.
type: object
required:
- userId
- total
- removedAt
- statistics
- type
properties:
userId:
$ref: '#/components/schemas/UserId'
total:
type: integer
format: int32
removedAt:
type: string
format: date-time
statistics:
$ref: '#/components/schemas/UserStatistics'
type:
type: string
const: Removed
MeetingHandling_Strict:
title: MeetingHandling_Strict
type: object
required:
- hideAssignee
- type
properties:
hideAssignee:
type: boolean
type:
type: string
const: Strict
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'
DistributionUserState_NoLicense:
title: DistributionUserState_NoLicense
description: User is still on the team but has lost their license, so they cannot receive assignments. Re-licensing restores them.
type: object
required:
- userId
- total
- licenseRemovedAt
- statistics
- type
properties:
userId:
$ref: '#/components/schemas/UserId'
total:
type: integer
format: int32
licenseRemovedAt:
type: string
format: date-time
statistics:
$ref: '#/components/schemas/UserStatistics'
type:
type: string
const: NoLicense
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
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'
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'
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\\/]+'
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
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
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'
CreateDistributionResponse:
title: CreateDistributionResponse
type: object
required:
- distributionId
properties:
distributionId:
$ref: '#/components/schemas/DistributionId'
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'
WorkspaceResetPeriodicity_Never:
title: WorkspaceResetPeriodicity_Never
description: Counters never reset automatically.
type: object
required:
- type
properties:
type:
type: string
const: Never
VacationFreshness:
title: VacationFreshness
description: Whether vacation state is read live (RealTime) or from cache (Cached).
type: string
enum:
- Cached
- RealTime
MeetingLimitReset_Weekly:
title: MeetingLimitReset_Weekly
type: object
required:
- every
- startsOn
- resetDayOfWeek
- timezone
- type
properties:
every:
type: integer
format: int32
exclusiveMinimum: 0
startsOn:
type: string
format: date
resetDayOfWeek:
examples:
- MONDAY
type: string
enum:
- MONDAY
- TUESDAY
- WEDNESDAY
- THURSDAY
- FRIDAY
- SATURDAY
- SUNDAY
timezone:
description: IANA timezone identifier (e.g. America/New_York, Europe/London, Asia/Tokyo)
examples:
- America/New_York
type: string
type:
type: string
const: Weekly
DistributionAssignmentType:
title: DistributionAssignmentType
type: string
enum:
- Record
- Meeting
- Conversation
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
DistributionAssignmentTypeConfig_Record:
title: DistributionAssignmentTypeConfig_Record
type: object
required:
- handling
- type
properties:
handling:
$ref: '#/components/schemas/RecordHandling'
type:
type: string
const: Record
DistributedAssignmentLimitReset_Weekly:
title: DistributedAssignmentLimitReset_Weekly
type: object
required:
- timeZone
- dayOfWeek
- type
properties:
timeZone:
description: IANA timezone identifier (e.g. America/New_York, Europe/London, Asia/Tokyo)
examples:
- America/New_York
type: string
dayOfWeek:
type: integer
format: int32
minimum: 1
maximum: 7
type:
type: string
const: Weekly
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
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'
MeetingLimit_MeetingLimitUnset:
title: MeetingLimit_MeetingLimitUnset
type: object
required:
- type
properties:
type:
type: string
const: MeetingLimitUnset
Levels:
title: Levels
type: object
required:
- current
- nextAssignmentDelta
- total
properties:
current:
description: Earned score plus prolonged-reservation projection, before manual calibration.
type: number
nextAssignmentDelta:
description: Score increment that will be added if this user receives the next assignment. Forward-looking; not included in `current` or `total`.
type: number
calibrationDelta:
description: Manual-calibration adjustment applied on top of `current`. Absent when no calibration is in effect. When present, `total = current + calibrationDelta`.
type: number
total:
description: Current score with manual calibration applied.
type: number
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'
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
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
fo
# --- 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