Skip to content

Commit 9b6a1ce

Browse files
authored
update webhook schema (#131)
1 parent 4d3a0f9 commit 9b6a1ce

File tree

2 files changed

+134
-65
lines changed

2 files changed

+134
-65
lines changed

src/webhooks/webhook-schema.json

Lines changed: 105 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2423,59 +2423,114 @@
24232423
]
24242424
},
24252425
"serviceLevelAgreement": {
2426-
"type": "object",
2427-
"properties": {
2428-
"id": {
2429-
"$ref": "#/definitions/id"
2430-
},
2431-
"type": {
2432-
"type": "string",
2433-
"enum": [
2434-
"FIRST_RESPONSE_TIME"
2435-
]
2436-
},
2437-
"tier": {
2438-
"$ref": "#/definitions/tier"
2439-
},
2440-
"firstResponseTimeMinutes": {
2441-
"type": "number"
2442-
},
2443-
"useBusinessHoursOnly": {
2444-
"type": "boolean"
2445-
},
2446-
"threadPriorityFilter": {
2447-
"type": "array",
2448-
"items": {
2449-
"$ref": "#/definitions/threadPriority"
2426+
"anyOf": [
2427+
{
2428+
"type": "object",
2429+
"properties": {
2430+
"id": {
2431+
"$ref": "#/definitions/id"
2432+
},
2433+
"tier": {
2434+
"$ref": "#/definitions/tier"
2435+
},
2436+
"useBusinessHoursOnly": {
2437+
"type": "boolean"
2438+
},
2439+
"threadPriorityFilter": {
2440+
"type": "array",
2441+
"items": {
2442+
"$ref": "#/definitions/threadPriority"
2443+
},
2444+
"minItems": 1
2445+
},
2446+
"createdAt": {
2447+
"$ref": "#/definitions/datetime"
2448+
},
2449+
"createdBy": {
2450+
"$ref": "#/definitions/internalActor"
2451+
},
2452+
"updatedAt": {
2453+
"$ref": "#/definitions/datetime"
2454+
},
2455+
"updatedBy": {
2456+
"$ref": "#/definitions/internalActor"
2457+
},
2458+
"type": {
2459+
"type": "string",
2460+
"enum": [
2461+
"FIRST_RESPONSE_TIME"
2462+
]
2463+
},
2464+
"firstResponseTimeMinutes": {
2465+
"type": "number"
2466+
}
24502467
},
2451-
"minItems": 1
2452-
},
2453-
"createdAt": {
2454-
"$ref": "#/definitions/datetime"
2455-
},
2456-
"createdBy": {
2457-
"$ref": "#/definitions/internalActor"
2458-
},
2459-
"updatedAt": {
2460-
"$ref": "#/definitions/datetime"
2468+
"required": [
2469+
"id",
2470+
"tier",
2471+
"useBusinessHoursOnly",
2472+
"threadPriorityFilter",
2473+
"createdAt",
2474+
"createdBy",
2475+
"updatedAt",
2476+
"updatedBy",
2477+
"type",
2478+
"firstResponseTimeMinutes"
2479+
],
2480+
"additionalProperties": false
24612481
},
2462-
"updatedBy": {
2463-
"$ref": "#/definitions/internalActor"
2482+
{
2483+
"type": "object",
2484+
"properties": {
2485+
"id": {
2486+
"$ref": "#/definitions/id"
2487+
},
2488+
"tier": {
2489+
"$ref": "#/definitions/tier"
2490+
},
2491+
"useBusinessHoursOnly": {
2492+
"$ref": "#/definitions/serviceLevelAgreement/anyOf/0/properties/useBusinessHoursOnly"
2493+
},
2494+
"threadPriorityFilter": {
2495+
"$ref": "#/definitions/serviceLevelAgreement/anyOf/0/properties/threadPriorityFilter"
2496+
},
2497+
"createdAt": {
2498+
"$ref": "#/definitions/datetime"
2499+
},
2500+
"createdBy": {
2501+
"$ref": "#/definitions/internalActor"
2502+
},
2503+
"updatedAt": {
2504+
"$ref": "#/definitions/datetime"
2505+
},
2506+
"updatedBy": {
2507+
"$ref": "#/definitions/internalActor"
2508+
},
2509+
"type": {
2510+
"type": "string",
2511+
"enum": [
2512+
"NEXT_RESPONSE_TIME"
2513+
]
2514+
},
2515+
"nextResponseTimeMinutes": {
2516+
"type": "number"
2517+
}
2518+
},
2519+
"required": [
2520+
"id",
2521+
"tier",
2522+
"useBusinessHoursOnly",
2523+
"threadPriorityFilter",
2524+
"createdAt",
2525+
"createdBy",
2526+
"updatedAt",
2527+
"updatedBy",
2528+
"type",
2529+
"nextResponseTimeMinutes"
2530+
],
2531+
"additionalProperties": false
24642532
}
2465-
},
2466-
"required": [
2467-
"id",
2468-
"type",
2469-
"tier",
2470-
"firstResponseTimeMinutes",
2471-
"useBusinessHoursOnly",
2472-
"threadPriorityFilter",
2473-
"createdAt",
2474-
"createdBy",
2475-
"updatedAt",
2476-
"updatedBy"
2477-
],
2478-
"additionalProperties": false
2533+
]
24792534
},
24802535
"customerChangedPayload": {
24812536
"type": "object",

src/webhooks/webhook-schema.ts

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,35 @@ export type ThreadAssignee =
104104
| {
105105
id: string;
106106
};
107+
export type ServiceLevelAgreement =
108+
| {
109+
id: Id;
110+
tier: Tier;
111+
useBusinessHoursOnly: boolean;
112+
threadPriorityFilter: ThreadPriorityFilter;
113+
createdAt: Datetime;
114+
createdBy: InternalActor;
115+
updatedAt: Datetime;
116+
updatedBy: InternalActor;
117+
type: "FIRST_RESPONSE_TIME";
118+
firstResponseTimeMinutes: number;
119+
}
120+
| {
121+
id: Id;
122+
tier: Tier;
123+
useBusinessHoursOnly: boolean;
124+
threadPriorityFilter: ThreadPriorityFilter;
125+
createdAt: Datetime;
126+
createdBy: InternalActor;
127+
updatedAt: Datetime;
128+
updatedBy: InternalActor;
129+
type: "NEXT_RESPONSE_TIME";
130+
nextResponseTimeMinutes: number;
131+
};
132+
/**
133+
* @minItems 1
134+
*/
135+
export type ThreadPriorityFilter = [ThreadPriority, ...ThreadPriority[]];
107136
export type ServiceLevelAgreementStatusDetail =
108137
| {
109138
breachTime: Datetime;
@@ -624,21 +653,6 @@ export interface ThreadServiceLevelAgreementStatusTransitionedPayload {
624653
previousServiceLevelAgreementStatusDetail: ServiceLevelAgreementStatusDetail;
625654
serviceLevelAgreementStatusDetail: ServiceLevelAgreementStatusDetail;
626655
}
627-
export interface ServiceLevelAgreement {
628-
id: Id;
629-
type: "FIRST_RESPONSE_TIME";
630-
tier: Tier;
631-
firstResponseTimeMinutes: number;
632-
useBusinessHoursOnly: boolean;
633-
/**
634-
* @minItems 1
635-
*/
636-
threadPriorityFilter: [ThreadPriority, ...ThreadPriority[]];
637-
createdAt: Datetime;
638-
createdBy: InternalActor;
639-
updatedAt: Datetime;
640-
updatedBy: InternalActor;
641-
}
642656
export interface Tier {
643657
id: Id;
644658
name: string;

0 commit comments

Comments
 (0)