@registrystack/client 0.40.0 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -19
- package/breg/client.d.ts +173 -336
- package/breg/client.js +32 -106
- package/breg/index.d.ts +72 -141
- package/casework/client.d.ts +117 -282
- package/casework/client.js +20 -28
- package/casework/index.d.ts +17 -26
- package/discovery/client.d.ts +0 -3
- package/discovery/client.js +0 -5
- package/discovery/index.d.ts +0 -2
- package/messaging/client.d.ts +3 -0
- package/messaging/client.js +1 -0
- package/messaging/index.d.ts +1 -0
- package/native.js +1 -1
- package/package.json +7 -7
- package/scheduling/client.d.ts +3 -0
- package/scheduling/client.js +1 -0
- package/scheduling/index.d.ts +1 -0
package/casework/client.d.ts
CHANGED
|
@@ -23,29 +23,28 @@ export interface CaseworkClientConfig {
|
|
|
23
23
|
maxMutationRetries?: SafeInteger | null
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
export type InboxView = 'mine' | 'my-teams' | 'team-holdings' | 'overdue' | 'completed-by-me'
|
|
27
|
-
export type OccurrenceKind = 'review' | 'application'
|
|
28
|
-
export type OccurrenceState = 'open' | 'claimed' | 'waiting-applicant' | 'waiting-application' | 'synchronizing' | 'completed' | 'superseded' | 'cancelled'
|
|
29
|
-
export type OperationName = string
|
|
30
|
-
export type AttemptState = 'pending' | 'uncertain' | 'completed' | 'refused'
|
|
31
26
|
export type PageStatus = 'complete' | 'budget-exhausted' | 'source-unavailable'
|
|
32
|
-
export type HistoryKind = 'observed' | 'opened' | 'claimed' | 'assigned' | 'delegated' | 'caseload-moved' | 'clock-reminder' | 'clock-step-applied' | 'clock-recomputed' | 'released' | 'draft-saved' | 'attempt-reserved' | 'attempt-uncertain' | 'action-completed' | 'attempt-settled' | 'superseded' | 'completed'
|
|
33
|
-
|
|
34
27
|
export interface IssuerPrincipal { issuer: string; subject: string }
|
|
35
28
|
export type TaskGrantBounds = { type: 'evidence'; requirement: string } | { type: 'breg'; permissions: ReadonlyArray<TaskPermission> } | { type: 'scheduling'; permissions: ReadonlyArray<SchedulingTaskPermission> }
|
|
36
29
|
export interface TaskPermission { collection: string; operations: ReadonlyArray<string> }
|
|
37
30
|
export interface SchedulingTaskPermission { service: string; location: string; actions: ReadonlyArray<string> }
|
|
38
31
|
export interface EvidenceRequesterContext { requesterTags: ReadonlyArray<string>; audience: string }
|
|
39
32
|
export interface TaskApprovalRequest { templateId: string; templateVersion: string }
|
|
33
|
+
/** Deferred authority keeps its approved deadline; execution credentials stay short-lived. */
|
|
34
|
+
export type TaskAuthorizationMode = 'immediate' | 'deferred'
|
|
40
35
|
export interface TaskTemplatePreview {
|
|
41
36
|
id: string; version: string; label: string; agent: IssuerPrincipal; client: string; resource: string; scopes: ReadonlyArray<string>; purpose: string
|
|
42
37
|
evidenceContext?: EvidenceRequesterContext; bounds: TaskGrantBounds; subjects: { readonly [key: string]: Exclude<JsonScalar, null> }; lifetimeSeconds: SafeInteger
|
|
38
|
+
/** Omitted for the existing immediate mode. */
|
|
39
|
+
authorizationMode?: TaskAuthorizationMode
|
|
43
40
|
}
|
|
44
|
-
export interface TaskTemplatePreviews {
|
|
41
|
+
export interface TaskTemplatePreviews { taskRevision: SafeInteger; templates: ReadonlyArray<TaskTemplatePreview> }
|
|
45
42
|
/** Grant metadata deliberately excludes stored subject values. */
|
|
46
43
|
export interface TaskGrantView {
|
|
47
44
|
id: string; templateId: string; templateVersion: string; agent: IssuerPrincipal; client: string; resource: string; scopes: ReadonlyArray<string>; purpose: string
|
|
48
45
|
evidenceContext?: EvidenceRequesterContext; bounds: TaskGrantBounds; expiresAt: SafeInteger; invalidated: boolean
|
|
46
|
+
/** Omitted for the existing immediate mode. */
|
|
47
|
+
authorizationMode?: TaskAuthorizationMode
|
|
49
48
|
}
|
|
50
49
|
export interface TaskGrantList { grants: ReadonlyArray<TaskGrantView> }
|
|
51
50
|
export interface TaskGrantRevocation { id: string; invalidated: boolean }
|
|
@@ -58,50 +57,7 @@ export interface TaskGrantStatusDetails {
|
|
|
58
57
|
export interface TaskGrantStatus { active: boolean; grant?: TaskGrantStatusDetails }
|
|
59
58
|
|
|
60
59
|
export interface DirectoryMember { issuer: string; subject: string; displayName?: string | null }
|
|
61
|
-
export interface SubjectRef { sourceId: string; kind: string; id: string }
|
|
62
|
-
export interface SourceBinding {
|
|
63
|
-
sourceRevision: string
|
|
64
|
-
version: string
|
|
65
|
-
integrity?: string
|
|
66
|
-
generation: string
|
|
67
|
-
}
|
|
68
|
-
export type CaseworkActionName = 'claim' | 'release' | OperationName
|
|
69
|
-
export interface CaseworkAction { operation: CaseworkActionName; href: string; ifMatch: string }
|
|
70
|
-
export interface CorrectionRoutingCopy {
|
|
71
|
-
sourceBinding: SourceBinding
|
|
72
|
-
reason?: string
|
|
73
|
-
flaggedFields: ReadonlyArray<string>
|
|
74
|
-
}
|
|
75
|
-
export interface WorkItemRouting {
|
|
76
|
-
ruleId?: string
|
|
77
|
-
because?: string
|
|
78
|
-
policyDigest?: string
|
|
79
|
-
}
|
|
80
|
-
export interface WorkItem {
|
|
81
|
-
itemId: string
|
|
82
|
-
subject: SubjectRef
|
|
83
|
-
occurrenceKind: OccurrenceKind
|
|
84
|
-
stage?: string
|
|
85
|
-
binding: SourceBinding
|
|
86
|
-
bindingReference: string
|
|
87
|
-
displayReference?: string
|
|
88
|
-
state: OccurrenceState
|
|
89
|
-
queueId: string
|
|
90
|
-
holder?: IssuerPrincipal
|
|
91
|
-
heldSince?: string
|
|
92
|
-
assignment?: AssignmentContext
|
|
93
|
-
revision: SafeInteger
|
|
94
|
-
firstObservedAt: string
|
|
95
|
-
passiveDueAt?: string
|
|
96
|
-
updatedAt: string
|
|
97
|
-
actions: ReadonlyArray<CaseworkAction>
|
|
98
|
-
routingCopy?: CorrectionRoutingCopy
|
|
99
|
-
routing?: WorkItemRouting
|
|
100
|
-
clockOccurrences?: ReadonlyArray<ClockOccurrenceView>
|
|
101
|
-
liveAttempt?: AttemptStatus
|
|
102
|
-
}
|
|
103
60
|
export interface Page<T> { items: ReadonlyArray<T>; nextCursor?: string; status: PageStatus }
|
|
104
|
-
export interface WorkItemPage extends Page<WorkItem> { servedQueues: ReadonlyArray<string> }
|
|
105
61
|
export type DirectoryTargetPurpose = 'assignment' | 'absence-person' | 'absence-cover'
|
|
106
62
|
export type DirectoryTargetsQuery = {
|
|
107
63
|
cursor?: string
|
|
@@ -112,138 +68,29 @@ export type DirectoryTargetsQuery = {
|
|
|
112
68
|
| { purpose: 'absence-cover'; queue?: never; personIssuer: string; personSubject: string }
|
|
113
69
|
)
|
|
114
70
|
export type DirectoryTargetPage = Page<DirectoryMember>
|
|
115
|
-
export type ListWorkItemsQuery = {
|
|
116
|
-
view: InboxView
|
|
117
|
-
sort?: InboxSort
|
|
118
|
-
queue?: string
|
|
119
|
-
cursor?: string
|
|
120
|
-
limit?: SafeInteger
|
|
121
|
-
} & (
|
|
122
|
-
| { sourceId: string; subjectKind: string; subjectId: string; reference?: never }
|
|
123
|
-
| { reference: string; sourceId?: never; subjectKind?: never; subjectId?: never }
|
|
124
|
-
| { reference?: never; sourceId?: never; subjectKind?: never; subjectId?: never }
|
|
125
|
-
)
|
|
126
|
-
export type InboxSort = 'due' | 'age' | 'type'
|
|
127
|
-
export interface NextWorkItemQuery { queue?: string; cursor?: string }
|
|
128
|
-
export interface SaveDraftRequest {
|
|
129
|
-
binding: SourceBinding
|
|
130
|
-
reason: string
|
|
131
|
-
flaggedFields?: ReadonlyArray<string>
|
|
132
|
-
}
|
|
133
|
-
export interface Draft {
|
|
134
|
-
itemId: string
|
|
135
|
-
author: IssuerPrincipal
|
|
136
|
-
binding: SourceBinding
|
|
137
|
-
reason: string
|
|
138
|
-
flaggedFields: ReadonlyArray<string>
|
|
139
|
-
revision: SafeInteger
|
|
140
|
-
updatedAt: string
|
|
141
|
-
}
|
|
142
|
-
export interface DraftResponse { draft: Draft }
|
|
143
|
-
export interface DecideRequest {
|
|
144
|
-
displayedBinding: SourceBinding
|
|
145
|
-
operation: OperationName
|
|
146
|
-
reason?: string
|
|
147
|
-
flaggedFields?: ReadonlyArray<string>
|
|
148
|
-
}
|
|
149
71
|
/** The Registry-Source-Profile header selects the source profile; the body is empty. */
|
|
150
|
-
export type RecoverAttemptRequest = Record<string, never>
|
|
151
|
-
export interface SourceReceipt {
|
|
152
|
-
sourceRevision: string
|
|
153
|
-
resultingState: string
|
|
154
|
-
binding: SourceBinding
|
|
155
|
-
actorReference?: string
|
|
156
|
-
metadata: Readonly<Record<string, string>>
|
|
157
|
-
}
|
|
158
|
-
export interface AttemptStatus {
|
|
159
|
-
attemptId: string
|
|
160
|
-
itemId: string
|
|
161
|
-
state: AttemptState
|
|
162
|
-
itemRevision: SafeInteger
|
|
163
|
-
operation: OperationName
|
|
164
|
-
createdAt: string
|
|
165
|
-
receipt?: SourceReceipt
|
|
166
|
-
}
|
|
167
|
-
export interface MutationResponse { item: WorkItem; attempt?: AttemptStatus }
|
|
168
|
-
export interface HistoryEntryBase {
|
|
169
|
-
eventId: string
|
|
170
|
-
itemId: string
|
|
171
|
-
itemRevision: SafeInteger
|
|
172
|
-
kind: HistoryKind
|
|
173
|
-
occurredAt: string
|
|
174
|
-
actor?: IssuerPrincipal
|
|
175
|
-
profileId: string
|
|
176
|
-
}
|
|
177
|
-
export interface AttemptReservedHistoryEntry extends HistoryEntryBase {
|
|
178
|
-
kind: 'attempt-reserved'
|
|
179
|
-
detail: JsonObject & { attemptId: string; bindingReference: string; operation: OperationName }
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* An attempt-uncertain detail takes one of three shapes: recovery left the
|
|
183
|
-
* attempt uncertain, the source definitively refused it, or an operator marked
|
|
184
|
-
* an expired pending attempt uncertain. reason is the original decision reason.
|
|
185
|
-
*/
|
|
186
|
-
export type AttemptUncertainHistoryDetail = JsonObject & {
|
|
187
|
-
attemptId: string
|
|
188
|
-
bindingReference: string
|
|
189
|
-
operation: OperationName
|
|
190
|
-
reason?: string
|
|
191
|
-
} & (
|
|
192
|
-
| { sourceRevision?: string | null; definitivelyRefused?: never; operatorReason?: never }
|
|
193
|
-
| { definitivelyRefused: true; operatorReason?: never }
|
|
194
|
-
| { operatorReason: string; decidedBy: string; originalActor: IssuerPrincipal; originalProfileId: string; definitivelyRefused?: never }
|
|
195
|
-
)
|
|
196
|
-
export interface AttemptUncertainHistoryEntry extends HistoryEntryBase {
|
|
197
|
-
kind: 'attempt-uncertain'
|
|
198
|
-
detail: AttemptUncertainHistoryDetail
|
|
199
|
-
}
|
|
200
|
-
export interface ActionCompletedHistoryEntry extends HistoryEntryBase {
|
|
201
|
-
kind: 'action-completed'
|
|
202
|
-
detail: JsonObject & { attemptId: string; bindingReference: string; sourceRevision: string; sourceReceipt: SourceReceipt }
|
|
203
|
-
}
|
|
204
|
-
export interface AttemptSettledHistoryEntry extends HistoryEntryBase {
|
|
205
|
-
kind: 'attempt-settled'
|
|
206
|
-
detail: JsonObject & { attemptId: string; bindingReference: string; operation: OperationName; outcome: 'applied' | 'not-applied'; reason: string; decidedBy: string }
|
|
207
|
-
}
|
|
208
|
-
export interface OtherHistoryEntry extends HistoryEntryBase {
|
|
209
|
-
kind: Exclude<HistoryKind, 'attempt-reserved' | 'attempt-uncertain' | 'action-completed' | 'attempt-settled'>
|
|
210
|
-
detail: JsonValue
|
|
211
|
-
}
|
|
212
|
-
export type HistoryEntry = AttemptReservedHistoryEntry | AttemptUncertainHistoryEntry | ActionCompletedHistoryEntry | AttemptSettledHistoryEntry | OtherHistoryEntry
|
|
213
|
-
export interface HoldingSummary {
|
|
214
|
-
principal: IssuerPrincipal
|
|
215
|
-
queueId: string
|
|
216
|
-
activeItems: SafeInteger
|
|
217
|
-
overdueItems: SafeInteger
|
|
218
|
-
}
|
|
219
72
|
export interface QueueRecord { id: string; label: string }
|
|
220
|
-
export interface PassiveTargetPolicy { id: string; after: { elapsed: string } }
|
|
221
73
|
export type RoutingPredicate = { equals: JsonValue } | { oneOf: ReadonlyArray<JsonValue> }
|
|
222
|
-
export interface RoutingCondition {
|
|
74
|
+
export interface RoutingCondition { stage?: string; fields?: Readonly<Record<string, RoutingPredicate>> }
|
|
223
75
|
export interface RoutingRule { id: string; because: string; when: RoutingCondition; queue: string }
|
|
224
|
-
export interface DisplayReferencePolicy { field: string }
|
|
225
|
-
export interface SourceRequestPolicy { entity: string; queue: string; projection?: ReadonlyArray<string>; routing?: ReadonlyArray<RoutingRule>; displayReference?: DisplayReferencePolicy; clock?: string; target?: PassiveTargetPolicy }
|
|
226
76
|
export type WorkingWeekday = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday'
|
|
227
77
|
export interface CalendarPolicy { id: string; timezone: string; workingWeekdays: ReadonlyArray<WorkingWeekday>; holidaySet: string }
|
|
228
|
-
export interface
|
|
78
|
+
export interface WorkingDays { workingDays: SafeInteger }
|
|
79
|
+
export interface ClockReminder { id: string; before: WorkingDays }
|
|
80
|
+
export type ElapsedDuration = { minutes: SafeInteger } | { hours: SafeInteger } | { days: SafeInteger }
|
|
229
81
|
export interface ClockStep { id: string; because: string; at: 'due'; action: { reassign: { queue: string } } }
|
|
230
82
|
export type ClockPolicy = {
|
|
231
|
-
type: 'subject'; id: string; anchor:
|
|
83
|
+
type: 'subject'; id: string; anchor: { type: 'request-accepted' }; after: ElapsedDuration
|
|
232
84
|
} | {
|
|
233
|
-
type: '
|
|
234
|
-
atRisk?: {
|
|
235
|
-
}
|
|
236
|
-
export interface SourcePolicy {
|
|
237
|
-
id: string
|
|
238
|
-
adapter: string
|
|
239
|
-
description: string
|
|
240
|
-
requests: ReadonlyArray<SourceRequestPolicy>
|
|
85
|
+
type: 'stage'; id: string; anchor: { type: 'stage-entered' }; calendar: string; after: WorkingDays; dueTime: string;
|
|
86
|
+
atRisk?: { before: WorkingDays }; reminders?: ReadonlyArray<ClockReminder>; steps?: ReadonlyArray<ClockStep>
|
|
241
87
|
}
|
|
242
88
|
export interface Description {
|
|
243
89
|
projectId: string
|
|
244
90
|
policyVersion: string
|
|
245
91
|
queues: ReadonlyArray<QueueRecord>
|
|
246
|
-
|
|
92
|
+
reviewPolicies: ReadonlyArray<ReviewPolicy>
|
|
93
|
+
contextProviders: ReadonlyArray<ReviewContextProviderPolicy>
|
|
247
94
|
calendars: ReadonlyArray<CalendarPolicy>
|
|
248
95
|
clocks: ReadonlyArray<ClockPolicy>
|
|
249
96
|
}
|
|
@@ -260,21 +107,20 @@ export interface AbsenceInput { person: IssuerPrincipal; from: string; until: st
|
|
|
260
107
|
export interface AbsenceRecord extends AbsenceInput { absenceId: string; revision: SafeInteger }
|
|
261
108
|
export interface AbsencesQuery { cursor?: string; limit?: SafeInteger }
|
|
262
109
|
export interface AbsenceList { directoryRevision: SafeInteger; items: ReadonlyArray<AbsenceRecord>; nextCursor?: string }
|
|
263
|
-
export
|
|
110
|
+
export type StaffingDiagnostic = 'no-cover-available' | 'insufficient-distinct-approvers'
|
|
264
111
|
export interface AssignmentRequest { assignee: IssuerPrincipal; reason?: string }
|
|
265
112
|
export interface DelegateRequest { delegate: IssuerPrincipal; reason?: string }
|
|
266
|
-
export interface
|
|
267
|
-
export interface
|
|
268
|
-
export interface
|
|
269
|
-
export interface
|
|
270
|
-
export interface
|
|
113
|
+
export interface ReviewCaseloadMoveRequest { from: IssuerPrincipal; to: IssuerPrincipal; queue?: string; reason: string }
|
|
114
|
+
export interface ReviewCaseloadTask { taskId: Uuid; revision: SafeInteger }
|
|
115
|
+
export interface ReviewCaseloadPreview { previewId: Uuid; directoryRevision: SafeInteger; tasks: ReadonlyArray<ReviewCaseloadTask>; expiresAt: string }
|
|
116
|
+
export interface ReviewCaseloadApplyRequest { previewId: Uuid }
|
|
117
|
+
export interface ReviewCaseloadResult { moved: ReadonlyArray<ReviewCaseloadTask> }
|
|
271
118
|
export interface BootstrapDirectoryRequest {
|
|
272
119
|
teamId: string
|
|
273
120
|
staff: ReadonlyArray<IssuerPrincipal>
|
|
274
121
|
supervisors: ReadonlyArray<IssuerPrincipal>
|
|
275
122
|
queueId: string
|
|
276
123
|
}
|
|
277
|
-
export interface HoldingsQuery { cursor?: string; limit?: SafeInteger }
|
|
278
124
|
export interface CaseworkOutcome<T> { kind: 'complete'; value: T; traceId: string }
|
|
279
125
|
|
|
280
126
|
export type KnownCaseworkProblemCode =
|
|
@@ -297,12 +143,13 @@ export type KnownCaseworkProblemCode =
|
|
|
297
143
|
| 'request.limit-out-of-range'
|
|
298
144
|
| 'request.method-not-allowed'
|
|
299
145
|
| 'request.not-found'
|
|
300
|
-
| 'request.reason-unsupported'
|
|
301
|
-
| 'request.source-rejected'
|
|
302
146
|
| 'request.unprocessable'
|
|
303
147
|
| 'request.unsupported-media-type'
|
|
148
|
+
| 'review.distinct-approver-required'
|
|
304
149
|
| 'review.initiator-excluded'
|
|
305
150
|
| 'review.initiator-required'
|
|
151
|
+
| 'review.query-too-broad'
|
|
152
|
+
| 'review.policy-mismatch'
|
|
306
153
|
| 'review.result-expired'
|
|
307
154
|
| 'review.submission-conflict'
|
|
308
155
|
| 'review.task-not-held'
|
|
@@ -311,21 +158,16 @@ export type KnownCaseworkProblemCode =
|
|
|
311
158
|
| 'source-profile.not-applicable'
|
|
312
159
|
| 'source-profile.required'
|
|
313
160
|
| 'source.bad-gateway'
|
|
314
|
-
| 'source.
|
|
315
|
-
| 'source.
|
|
316
|
-
| 'source.reviewer-not-authorized'
|
|
317
|
-
| 'source.signature-invalid'
|
|
318
|
-
| 'work-item.already-claimed'
|
|
319
|
-
| 'work-item.not-holder'
|
|
320
|
-
| 'work-item.not-offered'
|
|
321
|
-
| 'work-item.not-visible'
|
|
322
|
-
| 'work-item.proposal-changed'
|
|
323
|
-
| 'work-item.recovery-pending'
|
|
324
|
-
| 'work-item.source-unavailable'
|
|
325
|
-
| 'work-item.superseded'
|
|
161
|
+
| 'source.version-mismatch'
|
|
162
|
+
| 'source.version-unavailable'
|
|
326
163
|
export type CaseworkProblemCode = KnownCaseworkProblemCode | (string & {})
|
|
327
164
|
export type CaseworkProtocolFailure = 'header-bounds' | 'trace-context' | 'media-type' | 'body' | 'problem' | 'status' | 'protocol'
|
|
328
165
|
|
|
166
|
+
export interface ReviewTaskGrantReadOptions {
|
|
167
|
+
taskId: Uuid
|
|
168
|
+
sourceProfile?: string | null
|
|
169
|
+
}
|
|
170
|
+
|
|
329
171
|
export class CaseworkClientError extends Error {
|
|
330
172
|
readonly kind: 'configuration' | 'invalid-request' | 'transport' | 'problem' | 'protocol'
|
|
331
173
|
/**
|
|
@@ -345,53 +187,40 @@ export class CaseworkClientError extends Error {
|
|
|
345
187
|
readonly detail?: string
|
|
346
188
|
readonly status?: SafeInteger
|
|
347
189
|
readonly traceId?: string
|
|
348
|
-
readonly originalAttemptId?: string
|
|
349
190
|
readonly validation?: {
|
|
350
191
|
readonly path: string
|
|
351
|
-
readonly reason: '
|
|
192
|
+
readonly reason: 'policy-not-allowed' | 'reference-invalid' | 'object-required' | 'maximum-bytes-exceeded' | 'maximum-depth-exceeded' | 'schema-mismatch' | 'outcome-not-declared' | 'reason-required' | 'text-invalid' | 'result-not-declared' | 'result-required' | 'field-not-declared' | 'constraint-invalid' | 'constraint-violated' | 'public-reason-required' | 'public-reason-not-declared' | 'approval-outcome-differs'
|
|
193
|
+
/** Outcome identifiers the review policy declares for the requested settlement when an outcome is refused; empty otherwise. */
|
|
194
|
+
readonly allowed: ReadonlyArray<string>
|
|
352
195
|
}
|
|
353
196
|
readonly transportKind?: string
|
|
354
197
|
readonly protocolFailure?: CaseworkProtocolFailure
|
|
355
198
|
}
|
|
356
199
|
|
|
357
|
-
export type ClockRuntimeState = 'running' | '
|
|
200
|
+
export type ClockRuntimeState = 'running' | 'completed' | 'cancelled' | 'verification-pending' | 'source-facts-missing'
|
|
358
201
|
export type ClockNextEffect =
|
|
359
202
|
| { kind: 'reminder'; id: string; at: string }
|
|
360
203
|
| { kind: 'reassign'; id: string; at: string; because: string; queueId: string }
|
|
361
|
-
export interface ClockOccurrenceView {
|
|
362
|
-
clockOccurrenceId: string
|
|
363
|
-
subject: SubjectRef
|
|
364
|
-
clockId: string
|
|
365
|
-
state: ClockRuntimeState
|
|
366
|
-
policyDigest: string
|
|
367
|
-
calculationGeneration: SafeInteger
|
|
368
|
-
recomputeGeneration: SafeInteger
|
|
369
|
-
anchorAt?: string
|
|
370
|
-
startedAt?: string
|
|
371
|
-
dueAt?: string
|
|
372
|
-
atRiskAt?: string
|
|
373
|
-
completedAt?: string
|
|
374
|
-
nextEffect?: ClockNextEffect
|
|
375
|
-
upcomingEffects?: ReadonlyArray<ClockNextEffect>
|
|
376
|
-
}
|
|
377
204
|
export interface HolidaySetDocument { holidaySet: string; revision: SafeInteger; dates: ReadonlyArray<string> }
|
|
378
205
|
export interface HolidaySetRevisionInput { document: HolidaySetDocument }
|
|
379
|
-
export interface
|
|
380
|
-
export interface
|
|
381
|
-
export interface
|
|
382
|
-
export interface
|
|
383
|
-
export interface
|
|
206
|
+
export interface ReviewClockRecomputeRequest { taskIds: ReadonlyArray<Uuid> }
|
|
207
|
+
export interface ReviewClockRecomputeTask { taskId: Uuid; revision: SafeInteger; deadlineAt?: string }
|
|
208
|
+
export interface ReviewClockRecomputePreview { previewId: Uuid; directoryRevision: SafeInteger; tasks: ReadonlyArray<ReviewClockRecomputeTask>; expiresAt: string }
|
|
209
|
+
export interface ReviewClockRecomputeApplyRequest { previewId: Uuid }
|
|
210
|
+
export interface ReviewClockRecomputeResult { tasks: ReadonlyArray<ReviewClockRecomputeTask> }
|
|
384
211
|
|
|
385
212
|
export type ContentDigest = `sha256:${string}`
|
|
386
|
-
export interface
|
|
387
|
-
export interface
|
|
213
|
+
export interface SubjectBinding { source: string; type: string; id: string; version: string; digest: ContentDigest }
|
|
214
|
+
export interface PolicyBinding { id: string; version: string; digest: ContentDigest }
|
|
215
|
+
/** Select the current admitted policy by ID, or require one complete exact pin. */
|
|
216
|
+
export type PolicySelection = { id: string; version?: never; digest?: never } | PolicyBinding
|
|
388
217
|
export interface HumanIdentity { issuer: string; subject: string }
|
|
389
218
|
export type ReviewContext =
|
|
390
|
-
| {
|
|
391
|
-
| {
|
|
219
|
+
| { mode: 'submitted'; snapshot: Readonly<Record<string, JsonValue>> }
|
|
220
|
+
| { mode: 'current-source'; binding: { reference: string } }
|
|
392
221
|
export interface ReviewCreateRequest {
|
|
393
|
-
|
|
394
|
-
subject:
|
|
222
|
+
policy: PolicySelection
|
|
223
|
+
subject: SubjectBinding
|
|
395
224
|
requesterReference: string
|
|
396
225
|
initiator?: HumanIdentity
|
|
397
226
|
context: ReviewContext
|
|
@@ -399,8 +228,8 @@ export interface ReviewCreateRequest {
|
|
|
399
228
|
}
|
|
400
229
|
export interface ReviewRequestAccepted {
|
|
401
230
|
requestId: Uuid
|
|
402
|
-
subject:
|
|
403
|
-
policy:
|
|
231
|
+
subject: SubjectBinding
|
|
232
|
+
policy: PolicyBinding
|
|
404
233
|
submissionDigest: ContentDigest
|
|
405
234
|
}
|
|
406
235
|
export type ReviewRequestLifecycle = 'reviewing' | 'approved' | 'rejected' | 'changes-requested' | 'answered' | 'cancelled' | 'superseded'
|
|
@@ -416,6 +245,7 @@ export interface ReviewResult extends ReviewRequestAccepted {
|
|
|
416
245
|
resultId: Uuid
|
|
417
246
|
status: ReviewResultStatus
|
|
418
247
|
outcome?: string
|
|
248
|
+
publicReason?: string
|
|
419
249
|
result?: JsonObject
|
|
420
250
|
completedAt: string
|
|
421
251
|
availableUntil: string
|
|
@@ -425,22 +255,27 @@ export type ReviewResultOutcome =
|
|
|
425
255
|
| { kind: 'pending' | 'concealed_or_unknown' | 'expired'; value: null; traceId: string }
|
|
426
256
|
export interface ReviewResultFeedEntry { eventId: Uuid; requestId: Uuid; resultId: Uuid; completedAt: string }
|
|
427
257
|
export interface ReviewResultFeedPage { items: ReadonlyArray<ReviewResultFeedEntry>; nextCursor?: Uuid }
|
|
428
|
-
export interface ReviewCancelRequest { subject:
|
|
258
|
+
export interface ReviewCancelRequest { subject: SubjectBinding; reason: string }
|
|
429
259
|
export type ReviewCancelResponse =
|
|
430
260
|
| { outcome: 'cancelled'; result: ReviewResult }
|
|
431
261
|
| { outcome: 'already-terminal'; result: ReviewResult }
|
|
432
262
|
export interface ReviewPageQuery { cursor?: Uuid; limit?: SafeInteger }
|
|
433
263
|
export type ReviewTaskOwnership = 'assigned-to-me' | 'unclaimed'
|
|
434
|
-
export
|
|
264
|
+
export type ReviewTaskSort = 'due' | 'subject' | 'reference'
|
|
265
|
+
export interface ReviewStaffingPageQuery { queue?: string; ownership?: ReviewTaskOwnership; reference?: string; sort?: ReviewTaskSort; cursor?: Uuid; limit?: SafeInteger }
|
|
266
|
+
/** A subject selector is absent or names every component of its immutable binding. */
|
|
267
|
+
export type ReviewStaffingQuery = ReviewStaffingPageQuery & (
|
|
268
|
+
| { subjectSource?: never; subjectType?: never; subjectId?: never; subjectVersion?: never; subjectDigest?: never }
|
|
269
|
+
| { subjectSource: string; subjectType: string; subjectId: string; subjectVersion: string; subjectDigest: ContentDigest }
|
|
270
|
+
)
|
|
435
271
|
export interface SupervisoryReviewTaskQuery extends ReviewPageQuery { queue?: string; requestId?: Uuid }
|
|
436
272
|
export interface OwnReviewDecisionQuery extends ReviewPageQuery { queue?: string }
|
|
437
|
-
export
|
|
438
|
-
export type ReviewerTaskState = 'open' | { held: { holder: IssuerPrincipal } } | 'decided'
|
|
273
|
+
export type ReviewTaskState = 'open' | { held: { holder: IssuerPrincipal } } | 'decided'
|
|
439
274
|
export type ReviewDecisionType = 'approve' | 'reject' | 'changes-requested' | 'answer'
|
|
440
275
|
export interface ReviewDecisionReceipt {
|
|
441
|
-
policy:
|
|
276
|
+
policy: PolicyBinding
|
|
442
277
|
decision: ReviewDecisionType
|
|
443
|
-
outcome
|
|
278
|
+
outcome: string
|
|
444
279
|
outcomeLabel?: string
|
|
445
280
|
decidedAt: string
|
|
446
281
|
}
|
|
@@ -452,7 +287,12 @@ export interface OwnReviewDecision {
|
|
|
452
287
|
decisionReceipt: ReviewDecisionReceipt
|
|
453
288
|
}
|
|
454
289
|
export interface OwnReviewDecisionPage { items: ReadonlyArray<OwnReviewDecision>; nextCursor?: Uuid; status: PageStatus }
|
|
455
|
-
export interface
|
|
290
|
+
export interface ReviewTask {
|
|
291
|
+
subject: SubjectBinding
|
|
292
|
+
requesterReference: string
|
|
293
|
+
deadlineAt?: string | null
|
|
294
|
+
createdAt: string
|
|
295
|
+
displayReference?: string
|
|
456
296
|
taskId: Uuid
|
|
457
297
|
requestId: Uuid
|
|
458
298
|
stageIndex: SafeInteger
|
|
@@ -460,11 +300,12 @@ export interface ReviewerTask {
|
|
|
460
300
|
queue: string
|
|
461
301
|
revision: SafeInteger
|
|
462
302
|
eligibleProfiles: ReadonlyArray<string>
|
|
463
|
-
state:
|
|
303
|
+
state: ReviewTaskState
|
|
304
|
+
staffingDiagnostic?: StaffingDiagnostic
|
|
464
305
|
decidedByCaller?: boolean
|
|
465
306
|
decisionReceipt?: ReviewDecisionReceipt
|
|
466
307
|
}
|
|
467
|
-
export interface ReviewTaskPage { items: ReadonlyArray<
|
|
308
|
+
export interface ReviewTaskPage { items: ReadonlyArray<ReviewTask>; nextCursor?: Uuid; status: PageStatus }
|
|
468
309
|
export type SupervisoryReviewTaskState = 'open' | 'held' | 'decided'
|
|
469
310
|
export interface SupervisoryReviewTask {
|
|
470
311
|
taskId: Uuid
|
|
@@ -472,21 +313,22 @@ export interface SupervisoryReviewTask {
|
|
|
472
313
|
queue: string
|
|
473
314
|
revision: SafeInteger
|
|
474
315
|
state: SupervisoryReviewTaskState
|
|
316
|
+
staffingDiagnostic?: StaffingDiagnostic
|
|
475
317
|
accountabilityEventId?: Uuid
|
|
476
318
|
}
|
|
477
319
|
export interface SupervisoryReviewTaskPage { items: ReadonlyArray<SupervisoryReviewTask>; nextCursor?: Uuid; status: PageStatus }
|
|
478
320
|
export type ReviewSourceBindingStatus = 'current' | 'binding-changed'
|
|
479
|
-
export interface ReviewSourceProjection { binding:
|
|
321
|
+
export interface ReviewSourceProjection { binding: SubjectBinding; displayReference?: string; display: Readonly<Record<string, JsonValue>> }
|
|
480
322
|
export type ReviewTaskContextData =
|
|
481
|
-
| {
|
|
482
|
-
| {
|
|
323
|
+
| { mode: 'submitted'; snapshot: Readonly<Record<string, JsonValue>> }
|
|
324
|
+
| { mode: 'current-source'; reference: string; bindingStatus: ReviewSourceBindingStatus; projection?: ReviewSourceProjection }
|
|
483
325
|
export interface ReviewTaskContext {
|
|
484
326
|
taskId: Uuid
|
|
485
327
|
requestId: Uuid
|
|
486
|
-
subject:
|
|
328
|
+
subject: SubjectBinding
|
|
487
329
|
requesterReference: string
|
|
488
|
-
policy:
|
|
489
|
-
|
|
330
|
+
policy: PolicyBinding
|
|
331
|
+
policyClosure: ReviewPolicyClosure
|
|
490
332
|
resultConstraints?: JsonObject
|
|
491
333
|
context: ReviewTaskContextData
|
|
492
334
|
}
|
|
@@ -498,7 +340,7 @@ export interface ReviewClockOccurrence {
|
|
|
498
340
|
clockId: string
|
|
499
341
|
requestId: Uuid
|
|
500
342
|
correlation: ReviewClockCorrelation
|
|
501
|
-
state: 'running' | '
|
|
343
|
+
state: 'running' | 'completed' | 'cancelled' | 'source-facts-missing'
|
|
502
344
|
policyDigest: ContentDigest
|
|
503
345
|
anchorAt: string
|
|
504
346
|
dueAt?: string
|
|
@@ -507,10 +349,11 @@ export interface ReviewClockOccurrence {
|
|
|
507
349
|
}
|
|
508
350
|
export interface ReviewTaskDraftInput { body: JsonValue }
|
|
509
351
|
export interface ReviewTaskDraft { taskId: Uuid; author: IssuerPrincipal; body: JsonValue; revision: SafeInteger; updatedAt: string }
|
|
510
|
-
export type
|
|
511
|
-
| { type: 'approve' }
|
|
512
|
-
| { type: 'reject' | 'changes-requested' | 'answer'; outcome: string; reason?: string | null; result?: JsonObject | null }
|
|
513
|
-
export interface
|
|
352
|
+
export type DecisionKind =
|
|
353
|
+
| { type: 'approve'; outcome: string; publicReason?: string | null }
|
|
354
|
+
| { type: 'reject' | 'changes-requested' | 'answer'; outcome: string; reason?: string | null; publicReason?: string | null; result?: JsonObject | null }
|
|
355
|
+
export interface Decision { taskId: Uuid; requestId: Uuid; stageId: string; reviewer: IssuerPrincipal; profileId: string; decision: DecisionKind }
|
|
356
|
+
export interface ReviewTaskDecisionRequest { decision: DecisionKind }
|
|
514
357
|
export type ReviewHistoryAudience = 'reviewers' | 'requester'
|
|
515
358
|
export interface ReviewNoteRequest { audience: ReviewHistoryAudience; note: string }
|
|
516
359
|
export interface ReviewHistoryEntry { eventId: Uuid; requestId: Uuid; taskId?: Uuid; kind: string; actorRef?: string; detail: JsonValue; occurredAt: string }
|
|
@@ -522,19 +365,29 @@ export interface ReviewAccountabilityRecord {
|
|
|
522
365
|
decisionReceipt?: ReviewDecisionReceipt
|
|
523
366
|
}
|
|
524
367
|
export interface ReviewStagePolicy { id: string; queue: string; decidingProfiles: ReadonlyArray<string>; requiredApprovals: SafeInteger; excludeInitiator?: boolean; excludePreviousStageReviewers?: boolean }
|
|
525
|
-
export interface ReviewRetentionPolicy {
|
|
526
|
-
export interface
|
|
527
|
-
|
|
368
|
+
export interface ReviewRetentionPolicy { terminalRetentionDays: SafeInteger; accountabilityRetentionDays: SafeInteger }
|
|
369
|
+
export interface ReviewContextContract { id: string; revision: ContentDigest; schemaDigest: ContentDigest }
|
|
370
|
+
export type ReviewContextPolicy = { mode: 'submitted' } | { mode: 'current-source'; provider: string; contract: ReviewContextContract }
|
|
371
|
+
export type ReviewContextCapability = 'human-display' | 'service-status' | 'task-grant-context' | 'routing-context'
|
|
372
|
+
export interface ReviewContextProviderPolicy { id: string; capabilities: ReadonlyArray<ReviewContextCapability>; sourceNamespace: string; deploymentRef: string; serviceProfiles?: Partial<Record<ReviewContextCapability, string>> }
|
|
373
|
+
export interface ReviewPolicy { id: string; version: string; purpose: 'approval' | 'answer'; context: ReviewContextPolicy; routing?: ReadonlyArray<RoutingRule>; stages: ReadonlyArray<ReviewStagePolicy>; clocks?: ReadonlyArray<string>; retention: ReviewRetentionPolicy; displaySchema: JsonValue; resultSchema?: JsonValue; outcomes?: ReadonlyArray<{ id: string; label: string; settlement: 'approved' | 'rejected' | 'changes-requested' | 'answered'; reasonRequired: boolean; publicReason: 'required' | 'optional' | 'none'; resultRequired?: boolean }> }
|
|
374
|
+
export interface ReviewPolicyClosure {
|
|
375
|
+
identity: PolicyBinding
|
|
528
376
|
purpose: 'approval' | 'answer'
|
|
529
|
-
|
|
377
|
+
context: ReviewContextPolicy
|
|
378
|
+
routing?: ReadonlyArray<RoutingRule>
|
|
379
|
+
dependencies: JsonObject
|
|
530
380
|
stages: ReadonlyArray<ReviewStagePolicy>
|
|
531
381
|
clocks?: ReadonlyArray<string>
|
|
532
382
|
retention: ReviewRetentionPolicy
|
|
533
383
|
displaySchema: JsonValue
|
|
534
384
|
resultSchema?: JsonValue
|
|
535
|
-
outcomes?: ReadonlyArray<{ id: string; label: string; settlement: 'rejected' | 'changes-requested' | 'answered'; reasonRequired: boolean; resultRequired?: boolean }>
|
|
385
|
+
outcomes?: ReadonlyArray<{ id: string; label: string; settlement: 'approved' | 'rejected' | 'changes-requested' | 'answered'; reasonRequired: boolean; publicReason: 'required' | 'optional' | 'none'; resultRequired?: boolean }>
|
|
536
386
|
}
|
|
537
387
|
|
|
388
|
+
/** Compute the canonical producer submission digest locally, without I/O. */
|
|
389
|
+
export function submissionDigest(producer: string, sourceNamespace: string, request: ReviewCreateRequest): ContentDigest
|
|
390
|
+
|
|
538
391
|
export class CaseworkClient {
|
|
539
392
|
constructor(config: CaseworkClientConfig)
|
|
540
393
|
description(token: string, profile: string): Promise<CaseworkOutcome<Description>>
|
|
@@ -543,21 +396,22 @@ export class CaseworkClient {
|
|
|
543
396
|
reviewResult(token: string, profile: string, accepted: ReviewRequestAccepted): Promise<ReviewResultOutcome>
|
|
544
397
|
reviewResults(token: string, profile: string, query?: ReviewPageQuery | null): Promise<CaseworkOutcome<ReviewResultFeedPage>>
|
|
545
398
|
cancelReviewRequest(token: string, profile: string, accepted: ReviewRequestAccepted, idempotencyKey: string, request: ReviewCancelRequest): Promise<CaseworkOutcome<ReviewCancelResponse>>
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
399
|
+
reviewPolicies(token: string, profile: string): Promise<CaseworkOutcome<ReadonlyArray<ReviewPolicyClosure>>>
|
|
400
|
+
reviewPolicy(token: string, profile: string, policyId: string): Promise<CaseworkOutcome<ReviewPolicyClosure>>
|
|
401
|
+
nextReviewTask(token: string, profile: string, query?: ReviewStaffingQuery | null, sourceProfile?: string | null): Promise<CaseworkOutcome<ReviewTask | null>>
|
|
402
|
+
reviewTasks(token: string, profile: string, query?: ReviewStaffingQuery | null, sourceProfile?: string | null): Promise<CaseworkOutcome<ReviewTaskPage>>
|
|
549
403
|
supervisoryReviewTasks(token: string, profile: string, query?: SupervisoryReviewTaskQuery | null, sourceProfile?: string | null): Promise<CaseworkOutcome<SupervisoryReviewTaskPage>>
|
|
550
404
|
ownReviewDecisions(token: string, profile: string, query?: OwnReviewDecisionQuery | null, sourceProfile?: string | null): Promise<CaseworkOutcome<OwnReviewDecisionPage>>
|
|
551
|
-
reviewTask(token: string, profile: string, taskId: Uuid, sourceProfile?: string | null): Promise<CaseworkOutcome<
|
|
405
|
+
reviewTask(token: string, profile: string, taskId: Uuid, sourceProfile?: string | null): Promise<CaseworkOutcome<ReviewTask>>
|
|
552
406
|
reviewTaskContext(token: string, profile: string, taskId: Uuid, sourceProfile?: string | null): Promise<CaseworkOutcome<ReviewTaskContext>>
|
|
553
|
-
previewReviewTaskTemplates(token: string, profile: string,
|
|
554
|
-
listReviewTaskGrants(token: string, profile: string,
|
|
555
|
-
approveReviewTaskGrant(token: string, profile: string,
|
|
407
|
+
previewReviewTaskTemplates(token: string, profile: string, options: ReviewTaskGrantReadOptions): Promise<CaseworkOutcome<TaskTemplatePreviews>>
|
|
408
|
+
listReviewTaskGrants(token: string, profile: string, options: ReviewTaskGrantReadOptions): Promise<CaseworkOutcome<TaskGrantList>>
|
|
409
|
+
approveReviewTaskGrant(token: string, profile: string, taskId: Uuid, expectedRevision: SafeInteger, idempotencyKey: string, approval: TaskApprovalRequest, sourceProfile?: string | null): Promise<CaseworkOutcome<TaskGrantView>>
|
|
556
410
|
revokeReviewTaskGrant(token: string, profile: string, taskId: Uuid, grantId: string): Promise<CaseworkOutcome<TaskGrantRevocation>>
|
|
557
|
-
claimReviewTask(token: string, profile: string, taskId: Uuid, expectedRevision: SafeInteger, idempotencyKey: string, sourceProfile?: string | null): Promise<CaseworkOutcome<
|
|
558
|
-
releaseReviewTask(token: string, profile: string, taskId: Uuid, expectedRevision: SafeInteger, idempotencyKey: string): Promise<CaseworkOutcome<
|
|
559
|
-
assignReviewTask(token: string, profile: string, taskId: Uuid, expectedRevision: SafeInteger, idempotencyKey: string, request: AssignmentRequest, sourceProfile?: string): Promise<CaseworkOutcome<
|
|
560
|
-
delegateReviewTask(token: string, profile: string, taskId: Uuid, expectedRevision: SafeInteger, idempotencyKey: string, request: DelegateRequest, sourceProfile?: string): Promise<CaseworkOutcome<
|
|
411
|
+
claimReviewTask(token: string, profile: string, taskId: Uuid, expectedRevision: SafeInteger, idempotencyKey: string, sourceProfile?: string | null): Promise<CaseworkOutcome<ReviewTask>>
|
|
412
|
+
releaseReviewTask(token: string, profile: string, taskId: Uuid, expectedRevision: SafeInteger, idempotencyKey: string): Promise<CaseworkOutcome<ReviewTask>>
|
|
413
|
+
assignReviewTask(token: string, profile: string, taskId: Uuid, expectedRevision: SafeInteger, idempotencyKey: string, request: AssignmentRequest, sourceProfile?: string): Promise<CaseworkOutcome<ReviewTask>>
|
|
414
|
+
delegateReviewTask(token: string, profile: string, taskId: Uuid, expectedRevision: SafeInteger, idempotencyKey: string, request: DelegateRequest, sourceProfile?: string): Promise<CaseworkOutcome<ReviewTask>>
|
|
561
415
|
reviewTaskDraft(token: string, profile: string, taskId: Uuid, sourceProfile?: string): Promise<CaseworkOutcome<ReviewTaskDraft | null>>
|
|
562
416
|
saveReviewTaskDraft(token: string, profile: string, taskId: Uuid, expectedRevision: SafeInteger, idempotencyKey: string, draft: ReviewTaskDraftInput, sourceProfile?: string): Promise<CaseworkOutcome<ReviewTaskDraft>>
|
|
563
417
|
deleteReviewTaskDraft(token: string, profile: string, taskId: Uuid, expectedRevision: SafeInteger, idempotencyKey: string, sourceProfile?: string): Promise<CaseworkOutcome<null>>
|
|
@@ -566,42 +420,23 @@ export class CaseworkClient {
|
|
|
566
420
|
addReviewNote(token: string, profile: string, requestId: Uuid, idempotencyKey: string, note: ReviewNoteRequest, sourceProfile?: string | null): Promise<CaseworkOutcome<ReviewHistoryEntry>>
|
|
567
421
|
reviewClocks(token: string, profile: string, requestId: Uuid, sourceProfile?: string | null): Promise<CaseworkOutcome<ReadonlyArray<ReviewClockOccurrence>>>
|
|
568
422
|
reviewAccountability(token: string, profile: string, eventId: Uuid): Promise<CaseworkOutcome<ReviewAccountabilityRecord>>
|
|
569
|
-
listWorkItems(token: string, profile: string, sourceProfile: string, query: ListWorkItemsQuery): Promise<CaseworkOutcome<WorkItemPage>>
|
|
570
|
-
nextWorkItem(token: string, profile: string, sourceProfile: string, query?: NextWorkItemQuery | null): Promise<CaseworkOutcome<WorkItemPage>>
|
|
571
|
-
getWorkItem(token: string, profile: string, sourceProfile: string, itemId: string): Promise<CaseworkOutcome<WorkItem>>
|
|
572
|
-
previewTaskTemplates(token: string, profile: string, sourceProfile: string, itemId: string): Promise<CaseworkOutcome<TaskTemplatePreviews>>
|
|
573
|
-
listTaskGrants(token: string, profile: string, sourceProfile: string, itemId: string): Promise<CaseworkOutcome<TaskGrantList>>
|
|
574
|
-
approveTaskGrant(token: string, profile: string, sourceProfile: string, itemId: string, expectedRevision: SafeInteger, idempotencyKey: string, approval: TaskApprovalRequest): Promise<CaseworkOutcome<TaskGrantView>>
|
|
575
|
-
revokeTaskGrant(token: string, profile: string, sourceProfile: string, itemId: string, grantId: string): Promise<CaseworkOutcome<TaskGrantRevocation>>
|
|
576
423
|
taskAssertion(token: string, grantId: string): Promise<CaseworkOutcome<TaskAssertionResponse>>
|
|
577
424
|
/** Exact empty-POST authority route for the shared remote exchange provider. */
|
|
578
425
|
taskAssertionEndpoint(grantId: string): string
|
|
579
426
|
taskGrantStatus(token: string, grantId: string): Promise<CaseworkOutcome<TaskGrantStatus>>
|
|
580
|
-
|
|
581
|
-
releaseWorkItem(token: string, profile: string, sourceProfile: string, action: CaseworkAction, idempotencyKey: string): Promise<CaseworkOutcome<MutationResponse>>
|
|
582
|
-
getDraft(token: string, profile: string, sourceProfile: string, itemId: string): Promise<CaseworkOutcome<DraftResponse>>
|
|
583
|
-
saveDraft(token: string, profile: string, sourceProfile: string, itemId: string, expectedRevision: SafeInteger, idempotencyKey: string, draft: SaveDraftRequest): Promise<CaseworkOutcome<DraftResponse>>
|
|
584
|
-
deleteDraft(token: string, profile: string, sourceProfile: string, itemId: string, expectedRevision: SafeInteger, idempotencyKey: string): Promise<CaseworkOutcome<null>>
|
|
585
|
-
decideWorkItem(token: string, profile: string, sourceProfile: string, action: CaseworkAction, idempotencyKey: string, decision: DecideRequest): Promise<CaseworkOutcome<MutationResponse>>
|
|
586
|
-
recoverDecision(token: string, profile: string, sourceProfile: string, itemId: string, attemptId: string, recovery: RecoverAttemptRequest): Promise<CaseworkOutcome<MutationResponse>>
|
|
587
|
-
recoverDecisionByKey(token: string, profile: string, sourceProfile: string, itemId: string, idempotencyKey: string, recovery: RecoverAttemptRequest): Promise<CaseworkOutcome<MutationResponse>>
|
|
588
|
-
workItemHistory(token: string, profile: string, sourceProfile: string, itemId: string, query?: WorkItemHistoryQuery | null): Promise<CaseworkOutcome<Page<HistoryEntry>>>
|
|
589
|
-
holdings(token: string, profile: string, sourceProfile: string, query?: HoldingsQuery | null): Promise<CaseworkOutcome<Page<HoldingSummary>>>
|
|
427
|
+
reviewTaskHoldings(token: string, profile: string, query?: ReviewStaffingQuery | null, sourceProfile?: string | null): Promise<CaseworkOutcome<ReviewTaskPage>>
|
|
590
428
|
directory(token: string, profile: string): Promise<CaseworkOutcome<DirectoryResponse>>
|
|
591
429
|
directoryTargets(token: string, profile: string, query: DirectoryTargetsQuery): Promise<CaseworkOutcome<DirectoryTargetPage>>
|
|
592
430
|
bootstrapDirectory(token: string, profile: string, expectedRevision: SafeInteger, idempotencyKey: string, request: BootstrapDirectoryRequest): Promise<CaseworkOutcome<DirectoryResponse>>
|
|
593
431
|
updateDirectoryTeam(token: string, profile: string, teamId: string, expectedRevision: SafeInteger, idempotencyKey: string, request: DirectoryTeamUpdateRequest): Promise<CaseworkOutcome<DirectoryResponse>>
|
|
594
|
-
workItemClocks(token: string, profile: string, sourceProfile: string, itemId: string): Promise<CaseworkOutcome<ReadonlyArray<ClockOccurrenceView>>>
|
|
595
432
|
holidayRevision(token: string, profile: string, holidaySet: string, revision: SafeInteger): Promise<CaseworkOutcome<HolidaySetDocument>>
|
|
596
433
|
createHolidayRevision(token: string, profile: string, idempotencyKey: string, request: HolidaySetRevisionInput): Promise<CaseworkOutcome<HolidaySetDocument>>
|
|
597
|
-
previewClockRecompute(token: string, profile: string, request:
|
|
598
|
-
applyClockRecompute(token: string, profile: string, idempotencyKey: string, request:
|
|
434
|
+
previewClockRecompute(token: string, profile: string, request: ReviewClockRecomputeRequest): Promise<CaseworkOutcome<ReviewClockRecomputePreview>>
|
|
435
|
+
applyClockRecompute(token: string, profile: string, idempotencyKey: string, request: ReviewClockRecomputeApplyRequest): Promise<CaseworkOutcome<ReviewClockRecomputeResult>>
|
|
599
436
|
absences(token: string, profile: string, query?: AbsencesQuery | null): Promise<CaseworkOutcome<AbsenceList>>
|
|
600
437
|
createAbsence(token: string, profile: string, expectedRevision: SafeInteger, idempotencyKey: string, request: AbsenceInput): Promise<CaseworkOutcome<AbsenceRecord>>
|
|
601
438
|
updateAbsence(token: string, profile: string, absenceId: string, expectedRevision: SafeInteger, idempotencyKey: string, request: AbsenceInput): Promise<CaseworkOutcome<AbsenceRecord>>
|
|
602
439
|
deleteAbsence(token: string, profile: string, absenceId: string, expectedRevision: SafeInteger, idempotencyKey: string): Promise<CaseworkOutcome<null>>
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
previewCaseloadMove(token: string, profile: string, movement: CaseloadMoveRequest, query?: CaseloadPreviewQuery | null, sourceProfile?: string | null): Promise<CaseworkOutcome<Page<WorkItem>>>
|
|
606
|
-
applyCaseloadMove(token: string, profile: string, idempotencyKey: string, request: CaseloadApplyRequest, sourceProfile?: string | null): Promise<CaseworkOutcome<ReadonlyArray<CaseloadItemResult>>>
|
|
440
|
+
previewCaseloadMove(token: string, profile: string, movement: ReviewCaseloadMoveRequest, sourceProfile?: string | null): Promise<CaseworkOutcome<ReviewCaseloadPreview>>
|
|
441
|
+
applyCaseloadMove(token: string, profile: string, idempotencyKey: string, request: ReviewCaseloadApplyRequest, sourceProfile?: string | null): Promise<CaseworkOutcome<ReviewCaseloadResult>>
|
|
607
442
|
}
|