@smartytalent/mcp-tools 0.1.33-dev.2 → 0.1.33-dev.21
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/dist/tools.json +1184 -92
- package/package.json +1 -1
package/dist/tools.json
CHANGED
|
@@ -276,6 +276,28 @@
|
|
|
276
276
|
}
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
|
+
},
|
|
280
|
+
"forms": {
|
|
281
|
+
"title": "TenantRelationshipsFormsSchema",
|
|
282
|
+
"type": "object",
|
|
283
|
+
"description": "Tenant-wide default forms per kind. Up to one form per FormKind value (jobBrief, candidateSubmission, talentSubmission, general). Designates which form's schema is canonical for each intake channel - the inbound email agent reads this to find the form whose fields it should populate when creating a brief.",
|
|
284
|
+
"properties": {
|
|
285
|
+
"data": {
|
|
286
|
+
"type": "array",
|
|
287
|
+
"items": {
|
|
288
|
+
"title": "TenantRelationshipsFormsDataSchema",
|
|
289
|
+
"type": "object",
|
|
290
|
+
"properties": {
|
|
291
|
+
"type": {
|
|
292
|
+
"type": "string"
|
|
293
|
+
},
|
|
294
|
+
"id": {
|
|
295
|
+
"type": "string"
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
279
301
|
}
|
|
280
302
|
}
|
|
281
303
|
}
|
|
@@ -545,6 +567,28 @@
|
|
|
545
567
|
}
|
|
546
568
|
}
|
|
547
569
|
}
|
|
570
|
+
},
|
|
571
|
+
"forms": {
|
|
572
|
+
"title": "TenantRelationshipsFormsSchema",
|
|
573
|
+
"type": "object",
|
|
574
|
+
"description": "Tenant-wide default forms per kind. Up to one form per FormKind value (jobBrief, candidateSubmission, talentSubmission, general). Designates which form's schema is canonical for each intake channel - the inbound email agent reads this to find the form whose fields it should populate when creating a brief.",
|
|
575
|
+
"properties": {
|
|
576
|
+
"data": {
|
|
577
|
+
"type": "array",
|
|
578
|
+
"items": {
|
|
579
|
+
"title": "TenantRelationshipsFormsDataSchema",
|
|
580
|
+
"type": "object",
|
|
581
|
+
"properties": {
|
|
582
|
+
"type": {
|
|
583
|
+
"type": "string"
|
|
584
|
+
},
|
|
585
|
+
"id": {
|
|
586
|
+
"type": "string"
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
}
|
|
548
592
|
}
|
|
549
593
|
}
|
|
550
594
|
}
|
|
@@ -6721,6 +6765,7 @@
|
|
|
6721
6765
|
"sent",
|
|
6722
6766
|
"suppressed",
|
|
6723
6767
|
"archived",
|
|
6768
|
+
"trashed",
|
|
6724
6769
|
"failed",
|
|
6725
6770
|
"pending"
|
|
6726
6771
|
]
|
|
@@ -6729,6 +6774,32 @@
|
|
|
6729
6774
|
"type": "string",
|
|
6730
6775
|
"description": "Return only emails belonging to this conversation. Resolved via the ConversationIdIndex GSI (top-level denormalisation of relationships.conversations[0].data.id). Pass the full conversation id (e.g. `980434e7...-2`)."
|
|
6731
6776
|
},
|
|
6777
|
+
"filterDirection": {
|
|
6778
|
+
"type": "string",
|
|
6779
|
+
"description": "Return only emails with this direction. `inbound` = received from an external sender (Inbox), `outbound` = composed by the tenant (Sent). Resolved via the DirectionIndex GSI. Mutually exclusive with `filterStatus` and `filterConversationId` at the pagination layer.",
|
|
6780
|
+
"enum": [
|
|
6781
|
+
"inbound",
|
|
6782
|
+
"outbound"
|
|
6783
|
+
]
|
|
6784
|
+
},
|
|
6785
|
+
"filterIds": {
|
|
6786
|
+
"type": "string",
|
|
6787
|
+
"description": "Batch-fetch emails by id. Pass a comma-separated list (e.g. `abc-1,def-2,ghi-3`). Resolves each id's shard from its suffix and issues a BatchGetItem. Used by the inbox UI to hydrate emails referenced by state rows (folder=unseen / starred / spam) without N showEmail calls. Cap: 500 ids per request; beyond that, page the state list and batch again. Bypasses pagination - the returned `data` is the full batch result with no `nextPage` cursor."
|
|
6788
|
+
},
|
|
6789
|
+
"filterIsSystemSpam": {
|
|
6790
|
+
"type": "boolean",
|
|
6791
|
+
"description": "Return only emails the system (broker / classifier) flagged as spam. Used by the Spam folder's `isSystemSpam=true` leg - the other leg comes from `/v1/states?folder=spam`. Backed by a filter-expression scan across shards for v1; promote to a sparse `SystemSpamIndex` if load warrants. Mutually exclusive with the other index-backed filters at the pagination layer."
|
|
6792
|
+
},
|
|
6793
|
+
"sort": {
|
|
6794
|
+
"type": "string",
|
|
6795
|
+
"description": "Order results by a time field. Leading `-` means descending\n(newest-first). Accepted values:\n `-created` newest-first by creation time (CreatedIndex)\n `created` oldest-first by creation time\n `-modified` most-recently-modified first (ModifiedIndex)\n `modified` least-recently-modified first\nTakes effect only when no equality filter (filterStatus,\nfilterConversationId, filterDirection) dictates a different\nindex; equality filters win. Compatible with date-range filters\n(filterCreatedFrom/To, filterModifiedFrom/To) which already use\nthe same indexes; sort just picks the direction.",
|
|
6796
|
+
"enum": [
|
|
6797
|
+
"-created",
|
|
6798
|
+
"created",
|
|
6799
|
+
"-modified",
|
|
6800
|
+
"modified"
|
|
6801
|
+
]
|
|
6802
|
+
},
|
|
6732
6803
|
"filterCreatedFrom": {
|
|
6733
6804
|
"type": "string",
|
|
6734
6805
|
"description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
|
|
@@ -6806,12 +6877,14 @@
|
|
|
6806
6877
|
"draft",
|
|
6807
6878
|
"scheduled",
|
|
6808
6879
|
"sent",
|
|
6880
|
+
"received",
|
|
6809
6881
|
"suppressed",
|
|
6810
6882
|
"archived",
|
|
6883
|
+
"trashed",
|
|
6811
6884
|
"failed",
|
|
6812
6885
|
"pending"
|
|
6813
6886
|
],
|
|
6814
|
-
"description": "Lifecycle status. draft = composing, scheduled = workflow owns the send, sent = delivered to SES, suppressed = SES bounce/complaint, archived = user soft
|
|
6887
|
+
"description": "Lifecycle status. draft = composing, scheduled = workflow owns the send, sent = outbound delivered to SES, received = inbound accepted by broker (replaces the legacy `sent` value used for inbound), suppressed = SES bounce/complaint, archived = user explicitly archived (kept indefinitely, hidden from inbox view), trashed = user moved to Trash bin (default soft DELETE; recoverable, candidate for periodic permanent purge), failed = internal error, pending = transitional."
|
|
6815
6888
|
},
|
|
6816
6889
|
"direction": {
|
|
6817
6890
|
"type": "string",
|
|
@@ -6842,26 +6915,18 @@
|
|
|
6842
6915
|
"description": "BCC recipients. Each entry is an RFC 5322 address string."
|
|
6843
6916
|
},
|
|
6844
6917
|
"subject": {
|
|
6845
|
-
"
|
|
6846
|
-
|
|
6847
|
-
|
|
6848
|
-
|
|
6849
|
-
|
|
6850
|
-
"type": "object",
|
|
6851
|
-
"additionalProperties": true
|
|
6852
|
-
}
|
|
6853
|
-
]
|
|
6918
|
+
"type": "object",
|
|
6919
|
+
"additionalProperties": {
|
|
6920
|
+
"type": "string"
|
|
6921
|
+
},
|
|
6922
|
+
"description": "Multilingual subject keyed by IETF BCP 47 locale code (e.g. `en-US`, `pl-PL`). The DAL writes per-locale entries from the AI analyze + translate steps; the UI picks the right key based on `conversationLanguageCode`."
|
|
6854
6923
|
},
|
|
6855
6924
|
"body": {
|
|
6856
|
-
"
|
|
6857
|
-
|
|
6858
|
-
|
|
6859
|
-
|
|
6860
|
-
|
|
6861
|
-
"type": "object",
|
|
6862
|
-
"additionalProperties": true
|
|
6863
|
-
}
|
|
6864
|
-
]
|
|
6925
|
+
"type": "object",
|
|
6926
|
+
"additionalProperties": {
|
|
6927
|
+
"type": "string"
|
|
6928
|
+
},
|
|
6929
|
+
"description": "Multilingual HTML body keyed by IETF BCP 47 locale code. Same shape as `subject`. Body values are HTML strings; plain-text fallback is derived on send."
|
|
6865
6930
|
},
|
|
6866
6931
|
"shortCode": {
|
|
6867
6932
|
"type": "string"
|
|
@@ -6884,23 +6949,65 @@
|
|
|
6884
6949
|
"type": "object",
|
|
6885
6950
|
"properties": {
|
|
6886
6951
|
"fileName": {
|
|
6887
|
-
"type": "string"
|
|
6952
|
+
"type": "string",
|
|
6953
|
+
"description": "Display name shown in the mail client and used as the attachment filename on send."
|
|
6888
6954
|
},
|
|
6889
6955
|
"url": {
|
|
6890
|
-
"type": "string"
|
|
6956
|
+
"type": "string",
|
|
6957
|
+
"description": "S3 URL of the stored file. For user-uploaded attachments this is the path returned by POST /v1/files; for system-generated attachments (job/persona/report PDFs) it is the resource's own S3 path."
|
|
6891
6958
|
},
|
|
6892
6959
|
"type": {
|
|
6893
6960
|
"type": "string",
|
|
6894
|
-
"description": "Resource type this attachment belongs to: jobs
|
|
6961
|
+
"description": "Resource type this attachment belongs to. User-uploaded attachments use `files`; system-generated attachments use the owning resource type: `jobs`, `personas`, `talents`, `candidates`, `reports`, `ads`."
|
|
6962
|
+
},
|
|
6963
|
+
"fileId": {
|
|
6964
|
+
"type": "string",
|
|
6965
|
+
"description": "When `type == \"files\"`, the file resource ID so the frontend can resolve the latest file metadata (status, processing state) without parsing the URL."
|
|
6966
|
+
},
|
|
6967
|
+
"size": {
|
|
6968
|
+
"type": "integer",
|
|
6969
|
+
"description": "File size in bytes. Frontend displays it in the compose preview and mail list. Set by the upload flow from the Content-Length of the S3 object; absent on legacy rows."
|
|
6970
|
+
},
|
|
6971
|
+
"contentType": {
|
|
6972
|
+
"type": "string",
|
|
6973
|
+
"description": "MIME type (e.g. `application/pdf`, `image/png`). Drives icon selection in the UI and the Content-Type header in the outbound MIME part. Absent on legacy rows; frontend should fall back to extension inference."
|
|
6974
|
+
},
|
|
6975
|
+
"thumbnailUrl": {
|
|
6976
|
+
"type": "string",
|
|
6977
|
+
"description": "Optional S3 URL of a PNG preview (first-page render for PDFs/DOCX). Populated by the file service's conversion pipeline when a preview is available. Absent for non-previewable types."
|
|
6895
6978
|
}
|
|
6896
6979
|
}
|
|
6897
6980
|
},
|
|
6898
|
-
"description": "Attachments
|
|
6981
|
+
"description": "Attachments on the email. For user-uploaded attachments: frontend creates a File via POST /v1/files (which returns a presigned PUT URL), uploads to S3, then references the File here with `type: \"files\"` and the returned `url`/`fileId`. For system-generated attachments (job/persona/report PDFs) the eventbus / outbound path populates these automatically."
|
|
6899
6982
|
},
|
|
6900
6983
|
"conversationLanguageCode": {
|
|
6901
6984
|
"type": "string",
|
|
6902
6985
|
"description": "Denormalised copy of the related conversation's languageCode (e.g. `pl-PL`, `en-US`). Avoids an N+1 fetch when the list/detail view needs to pick the right locale for the multilingual subject/body dicts. Source of truth is the conversation row; read-only from the email's perspective."
|
|
6903
6986
|
},
|
|
6987
|
+
"parentEmailId": {
|
|
6988
|
+
"type": "string",
|
|
6989
|
+
"description": "Application-layer pointer to the email this one replies to. Used by the UI to render an 'in reply to' link in thread views. Set by the compose flow (frontend passes the parent on Reply) and by the broker when an inbound email matches an outbound via RFC 5322 In-Reply-To. Separate from meta.reference which carries the raw SMTP header chain."
|
|
6990
|
+
},
|
|
6991
|
+
"fromUserId": {
|
|
6992
|
+
"type": "string",
|
|
6993
|
+
"description": "Denormalised user id of the sender for outbound emails (the boe workflow user, or the human composer). Frontend joins this against its local user cache to render avatar + display name without a per-row API call. Null on inbound mail."
|
|
6994
|
+
},
|
|
6995
|
+
"fromCandidateId": {
|
|
6996
|
+
"type": "string",
|
|
6997
|
+
"description": "Denormalised candidate id of the sender for inbound replies from a candidate in an active conversation. Frontend joins this against its local candidate cache to render initials and the candidate name. Null on outbound mail and on anonymous inbound that didn't match a candidate."
|
|
6998
|
+
},
|
|
6999
|
+
"isSystemSpam": {
|
|
7000
|
+
"type": "boolean",
|
|
7001
|
+
"description": "System-level spam verdict on this email. Set by the broker (or a future classifier) at inbound time; never reflects a single user's opinion. Distinct from `status=suppressed`, which is SES reporting we cannot deliver on OUTBOUND. Frontend's Spam folder unions (my states where isSpam=true) with (emails where isSystemSpam=true)."
|
|
7002
|
+
},
|
|
7003
|
+
"scheduleId": {
|
|
7004
|
+
"type": "string",
|
|
7005
|
+
"description": "Foreign key to the Schedule resource driving this email's send. Populated by the wait:process workflow action right after it creates the Schedule. Null when no delayed send is pending (drafts, already-sent rows, inbound mail). To cancel the scheduled send, call DELETE /v1/schedules/{scheduleId} - the email eventbus handler listens for SCHEDULE_CANCELLED and reverts the row back to draft automatically."
|
|
7006
|
+
},
|
|
7007
|
+
"scheduledFireAt": {
|
|
7008
|
+
"type": "string",
|
|
7009
|
+
"description": "Denormalised copy of the owning Schedule's `fireAt` timestamp (ISO 8601). The scheduled-send banner reads this directly so the UI never has to round-trip to /v1/schedules just to render 'Send scheduled for X'. Source of truth is the Schedule; this field stays stable because Schedule.fireAt is immutable post-create."
|
|
7010
|
+
},
|
|
6904
7011
|
"ttl": {
|
|
6905
7012
|
"type": "string"
|
|
6906
7013
|
},
|
|
@@ -7028,6 +7135,25 @@
|
|
|
7028
7135
|
}
|
|
7029
7136
|
}
|
|
7030
7137
|
}
|
|
7138
|
+
},
|
|
7139
|
+
"schedule": {
|
|
7140
|
+
"title": "EmailRelationshipsScheduleSchema",
|
|
7141
|
+
"type": "object",
|
|
7142
|
+
"description": "The Schedule arming this email's delayed send. Denormalised mirror of scheduleId so clients can `?include=schedule` in a single request. Populated by the email eventbus handler reacting to SCHEDULE_CREATED. Null while the email is draft / already-sent / inbound.",
|
|
7143
|
+
"properties": {
|
|
7144
|
+
"data": {
|
|
7145
|
+
"title": "EmailRelationshipsScheduleDataSchema",
|
|
7146
|
+
"type": "object",
|
|
7147
|
+
"properties": {
|
|
7148
|
+
"type": {
|
|
7149
|
+
"type": "string"
|
|
7150
|
+
},
|
|
7151
|
+
"id": {
|
|
7152
|
+
"type": "string"
|
|
7153
|
+
}
|
|
7154
|
+
}
|
|
7155
|
+
}
|
|
7156
|
+
}
|
|
7031
7157
|
}
|
|
7032
7158
|
}
|
|
7033
7159
|
},
|
|
@@ -7112,12 +7238,14 @@
|
|
|
7112
7238
|
"draft",
|
|
7113
7239
|
"scheduled",
|
|
7114
7240
|
"sent",
|
|
7241
|
+
"received",
|
|
7115
7242
|
"suppressed",
|
|
7116
7243
|
"archived",
|
|
7244
|
+
"trashed",
|
|
7117
7245
|
"failed",
|
|
7118
7246
|
"pending"
|
|
7119
7247
|
],
|
|
7120
|
-
"description": "Lifecycle status. draft = composing, scheduled = workflow owns the send, sent = delivered to SES, suppressed = SES bounce/complaint, archived = user soft
|
|
7248
|
+
"description": "Lifecycle status. draft = composing, scheduled = workflow owns the send, sent = outbound delivered to SES, received = inbound accepted by broker (replaces the legacy `sent` value used for inbound), suppressed = SES bounce/complaint, archived = user explicitly archived (kept indefinitely, hidden from inbox view), trashed = user moved to Trash bin (default soft DELETE; recoverable, candidate for periodic permanent purge), failed = internal error, pending = transitional."
|
|
7121
7249
|
},
|
|
7122
7250
|
"direction": {
|
|
7123
7251
|
"type": "string",
|
|
@@ -7148,26 +7276,18 @@
|
|
|
7148
7276
|
"description": "BCC recipients. Each entry is an RFC 5322 address string."
|
|
7149
7277
|
},
|
|
7150
7278
|
"subject": {
|
|
7151
|
-
"
|
|
7152
|
-
|
|
7153
|
-
|
|
7154
|
-
|
|
7155
|
-
|
|
7156
|
-
"type": "object",
|
|
7157
|
-
"additionalProperties": true
|
|
7158
|
-
}
|
|
7159
|
-
]
|
|
7279
|
+
"type": "object",
|
|
7280
|
+
"additionalProperties": {
|
|
7281
|
+
"type": "string"
|
|
7282
|
+
},
|
|
7283
|
+
"description": "Multilingual subject keyed by IETF BCP 47 locale code (e.g. `en-US`, `pl-PL`). The DAL writes per-locale entries from the AI analyze + translate steps; the UI picks the right key based on `conversationLanguageCode`."
|
|
7160
7284
|
},
|
|
7161
7285
|
"body": {
|
|
7162
|
-
"
|
|
7163
|
-
|
|
7164
|
-
|
|
7165
|
-
|
|
7166
|
-
|
|
7167
|
-
"type": "object",
|
|
7168
|
-
"additionalProperties": true
|
|
7169
|
-
}
|
|
7170
|
-
]
|
|
7286
|
+
"type": "object",
|
|
7287
|
+
"additionalProperties": {
|
|
7288
|
+
"type": "string"
|
|
7289
|
+
},
|
|
7290
|
+
"description": "Multilingual HTML body keyed by IETF BCP 47 locale code. Same shape as `subject`. Body values are HTML strings; plain-text fallback is derived on send."
|
|
7171
7291
|
},
|
|
7172
7292
|
"shortCode": {
|
|
7173
7293
|
"type": "string"
|
|
@@ -7190,23 +7310,65 @@
|
|
|
7190
7310
|
"type": "object",
|
|
7191
7311
|
"properties": {
|
|
7192
7312
|
"fileName": {
|
|
7193
|
-
"type": "string"
|
|
7313
|
+
"type": "string",
|
|
7314
|
+
"description": "Display name shown in the mail client and used as the attachment filename on send."
|
|
7194
7315
|
},
|
|
7195
7316
|
"url": {
|
|
7196
|
-
"type": "string"
|
|
7317
|
+
"type": "string",
|
|
7318
|
+
"description": "S3 URL of the stored file. For user-uploaded attachments this is the path returned by POST /v1/files; for system-generated attachments (job/persona/report PDFs) it is the resource's own S3 path."
|
|
7197
7319
|
},
|
|
7198
7320
|
"type": {
|
|
7199
7321
|
"type": "string",
|
|
7200
|
-
"description": "Resource type this attachment belongs to: jobs
|
|
7322
|
+
"description": "Resource type this attachment belongs to. User-uploaded attachments use `files`; system-generated attachments use the owning resource type: `jobs`, `personas`, `talents`, `candidates`, `reports`, `ads`."
|
|
7323
|
+
},
|
|
7324
|
+
"fileId": {
|
|
7325
|
+
"type": "string",
|
|
7326
|
+
"description": "When `type == \"files\"`, the file resource ID so the frontend can resolve the latest file metadata (status, processing state) without parsing the URL."
|
|
7327
|
+
},
|
|
7328
|
+
"size": {
|
|
7329
|
+
"type": "integer",
|
|
7330
|
+
"description": "File size in bytes. Frontend displays it in the compose preview and mail list. Set by the upload flow from the Content-Length of the S3 object; absent on legacy rows."
|
|
7331
|
+
},
|
|
7332
|
+
"contentType": {
|
|
7333
|
+
"type": "string",
|
|
7334
|
+
"description": "MIME type (e.g. `application/pdf`, `image/png`). Drives icon selection in the UI and the Content-Type header in the outbound MIME part. Absent on legacy rows; frontend should fall back to extension inference."
|
|
7335
|
+
},
|
|
7336
|
+
"thumbnailUrl": {
|
|
7337
|
+
"type": "string",
|
|
7338
|
+
"description": "Optional S3 URL of a PNG preview (first-page render for PDFs/DOCX). Populated by the file service's conversion pipeline when a preview is available. Absent for non-previewable types."
|
|
7201
7339
|
}
|
|
7202
7340
|
}
|
|
7203
7341
|
},
|
|
7204
|
-
"description": "Attachments
|
|
7342
|
+
"description": "Attachments on the email. For user-uploaded attachments: frontend creates a File via POST /v1/files (which returns a presigned PUT URL), uploads to S3, then references the File here with `type: \"files\"` and the returned `url`/`fileId`. For system-generated attachments (job/persona/report PDFs) the eventbus / outbound path populates these automatically."
|
|
7205
7343
|
},
|
|
7206
7344
|
"conversationLanguageCode": {
|
|
7207
7345
|
"type": "string",
|
|
7208
7346
|
"description": "Denormalised copy of the related conversation's languageCode (e.g. `pl-PL`, `en-US`). Avoids an N+1 fetch when the list/detail view needs to pick the right locale for the multilingual subject/body dicts. Source of truth is the conversation row; read-only from the email's perspective."
|
|
7209
7347
|
},
|
|
7348
|
+
"parentEmailId": {
|
|
7349
|
+
"type": "string",
|
|
7350
|
+
"description": "Application-layer pointer to the email this one replies to. Used by the UI to render an 'in reply to' link in thread views. Set by the compose flow (frontend passes the parent on Reply) and by the broker when an inbound email matches an outbound via RFC 5322 In-Reply-To. Separate from meta.reference which carries the raw SMTP header chain."
|
|
7351
|
+
},
|
|
7352
|
+
"fromUserId": {
|
|
7353
|
+
"type": "string",
|
|
7354
|
+
"description": "Denormalised user id of the sender for outbound emails (the boe workflow user, or the human composer). Frontend joins this against its local user cache to render avatar + display name without a per-row API call. Null on inbound mail."
|
|
7355
|
+
},
|
|
7356
|
+
"fromCandidateId": {
|
|
7357
|
+
"type": "string",
|
|
7358
|
+
"description": "Denormalised candidate id of the sender for inbound replies from a candidate in an active conversation. Frontend joins this against its local candidate cache to render initials and the candidate name. Null on outbound mail and on anonymous inbound that didn't match a candidate."
|
|
7359
|
+
},
|
|
7360
|
+
"isSystemSpam": {
|
|
7361
|
+
"type": "boolean",
|
|
7362
|
+
"description": "System-level spam verdict on this email. Set by the broker (or a future classifier) at inbound time; never reflects a single user's opinion. Distinct from `status=suppressed`, which is SES reporting we cannot deliver on OUTBOUND. Frontend's Spam folder unions (my states where isSpam=true) with (emails where isSystemSpam=true)."
|
|
7363
|
+
},
|
|
7364
|
+
"scheduleId": {
|
|
7365
|
+
"type": "string",
|
|
7366
|
+
"description": "Foreign key to the Schedule resource driving this email's send. Populated by the wait:process workflow action right after it creates the Schedule. Null when no delayed send is pending (drafts, already-sent rows, inbound mail). To cancel the scheduled send, call DELETE /v1/schedules/{scheduleId} - the email eventbus handler listens for SCHEDULE_CANCELLED and reverts the row back to draft automatically."
|
|
7367
|
+
},
|
|
7368
|
+
"scheduledFireAt": {
|
|
7369
|
+
"type": "string",
|
|
7370
|
+
"description": "Denormalised copy of the owning Schedule's `fireAt` timestamp (ISO 8601). The scheduled-send banner reads this directly so the UI never has to round-trip to /v1/schedules just to render 'Send scheduled for X'. Source of truth is the Schedule; this field stays stable because Schedule.fireAt is immutable post-create."
|
|
7371
|
+
},
|
|
7210
7372
|
"ttl": {
|
|
7211
7373
|
"type": "string"
|
|
7212
7374
|
},
|
|
@@ -7250,7 +7412,16 @@
|
|
|
7250
7412
|
"description": "Delete Email",
|
|
7251
7413
|
"inputSchema": {
|
|
7252
7414
|
"type": "object",
|
|
7253
|
-
"properties": {
|
|
7415
|
+
"properties": {
|
|
7416
|
+
"permanentDelete": {
|
|
7417
|
+
"type": "string",
|
|
7418
|
+
"description": "Set to true for permanent deletion (row removed from DynamoDB). Defaults to false (soft delete to Trash).",
|
|
7419
|
+
"enum": [
|
|
7420
|
+
"true",
|
|
7421
|
+
"false"
|
|
7422
|
+
]
|
|
7423
|
+
}
|
|
7424
|
+
}
|
|
7254
7425
|
},
|
|
7255
7426
|
"_meta": {
|
|
7256
7427
|
"method": "DELETE",
|
|
@@ -7362,6 +7533,17 @@
|
|
|
7362
7533
|
"status": {
|
|
7363
7534
|
"type": "string"
|
|
7364
7535
|
},
|
|
7536
|
+
"kind": {
|
|
7537
|
+
"type": "string",
|
|
7538
|
+
"enum": [
|
|
7539
|
+
"jobBrief",
|
|
7540
|
+
"candidateSubmission",
|
|
7541
|
+
"talentSubmission",
|
|
7542
|
+
"general"
|
|
7543
|
+
],
|
|
7544
|
+
"default": "general",
|
|
7545
|
+
"description": "Role marker. Identifies which downstream resource this form's\nsubmission becomes:\n - jobBrief: produces a Brief about a Job (email/api intake;\n consumed by the create-job-from-brief workflow).\n - candidateSubmission: produces a Submission about a\n Candidate (apply form intake).\n - talentSubmission: produces a Submission about a Talent.\n - general: catch-all / undecided.\nTenant pins one form per kind as its default via\n`tenant.relationships.forms`. Mirrors the role-marker pattern\nused on Feedback (`stage`)."
|
|
7546
|
+
},
|
|
7365
7547
|
"short_code": {
|
|
7366
7548
|
"type": "string"
|
|
7367
7549
|
},
|
|
@@ -7494,6 +7676,17 @@
|
|
|
7494
7676
|
"status": {
|
|
7495
7677
|
"type": "string"
|
|
7496
7678
|
},
|
|
7679
|
+
"kind": {
|
|
7680
|
+
"type": "string",
|
|
7681
|
+
"enum": [
|
|
7682
|
+
"jobBrief",
|
|
7683
|
+
"candidateSubmission",
|
|
7684
|
+
"talentSubmission",
|
|
7685
|
+
"general"
|
|
7686
|
+
],
|
|
7687
|
+
"default": "general",
|
|
7688
|
+
"description": "Role marker. Identifies which downstream resource this form's\nsubmission becomes:\n - jobBrief: produces a Brief about a Job (email/api intake;\n consumed by the create-job-from-brief workflow).\n - candidateSubmission: produces a Submission about a\n Candidate (apply form intake).\n - talentSubmission: produces a Submission about a Talent.\n - general: catch-all / undecided.\nTenant pins one form per kind as its default via\n`tenant.relationships.forms`. Mirrors the role-marker pattern\nused on Feedback (`stage`)."
|
|
7689
|
+
},
|
|
7497
7690
|
"short_code": {
|
|
7498
7691
|
"type": "string"
|
|
7499
7692
|
},
|
|
@@ -8528,10 +8721,6 @@
|
|
|
8528
8721
|
"attributes": {
|
|
8529
8722
|
"title": "ScheduleAttributesSchema",
|
|
8530
8723
|
"type": "object",
|
|
8531
|
-
"required": [
|
|
8532
|
-
"fireAt",
|
|
8533
|
-
"target"
|
|
8534
|
-
],
|
|
8535
8724
|
"properties": {
|
|
8536
8725
|
"name": {
|
|
8537
8726
|
"type": "string",
|
|
@@ -8543,8 +8732,10 @@
|
|
|
8543
8732
|
"pending",
|
|
8544
8733
|
"fired",
|
|
8545
8734
|
"cancelled",
|
|
8546
|
-
"failed"
|
|
8547
|
-
|
|
8735
|
+
"failed",
|
|
8736
|
+
"paused"
|
|
8737
|
+
],
|
|
8738
|
+
"description": "Lifecycle. `pending` is armed and will fire. `fired`/`failed` are terminal. `cancelled` is terminal (hard cancel via DELETE). `paused` is pause-for-edit: EventBridge entry is removed but the row stays re-activatable by PATCH back to `pending` with a new `fireAt`."
|
|
8548
8739
|
},
|
|
8549
8740
|
"fireAt": {
|
|
8550
8741
|
"type": "string",
|
|
@@ -8691,6 +8882,24 @@
|
|
|
8691
8882
|
}
|
|
8692
8883
|
}
|
|
8693
8884
|
}
|
|
8885
|
+
},
|
|
8886
|
+
"email": {
|
|
8887
|
+
"title": "ScheduleRelationshipsEmailSchema",
|
|
8888
|
+
"type": "object",
|
|
8889
|
+
"description": "The email this schedule was armed for. Set by wait:process so the email service can denormalise scheduleId back onto the email row when SCHEDULE_CREATED fires.",
|
|
8890
|
+
"properties": {
|
|
8891
|
+
"data": {
|
|
8892
|
+
"type": "object",
|
|
8893
|
+
"properties": {
|
|
8894
|
+
"type": {
|
|
8895
|
+
"type": "string"
|
|
8896
|
+
},
|
|
8897
|
+
"id": {
|
|
8898
|
+
"type": "string"
|
|
8899
|
+
}
|
|
8900
|
+
}
|
|
8901
|
+
}
|
|
8902
|
+
}
|
|
8694
8903
|
}
|
|
8695
8904
|
}
|
|
8696
8905
|
}
|
|
@@ -8775,10 +8984,6 @@
|
|
|
8775
8984
|
"attributes": {
|
|
8776
8985
|
"title": "ScheduleAttributesSchema",
|
|
8777
8986
|
"type": "object",
|
|
8778
|
-
"required": [
|
|
8779
|
-
"fireAt",
|
|
8780
|
-
"target"
|
|
8781
|
-
],
|
|
8782
8987
|
"properties": {
|
|
8783
8988
|
"name": {
|
|
8784
8989
|
"type": "string",
|
|
@@ -8790,8 +8995,10 @@
|
|
|
8790
8995
|
"pending",
|
|
8791
8996
|
"fired",
|
|
8792
8997
|
"cancelled",
|
|
8793
|
-
"failed"
|
|
8794
|
-
|
|
8998
|
+
"failed",
|
|
8999
|
+
"paused"
|
|
9000
|
+
],
|
|
9001
|
+
"description": "Lifecycle. `pending` is armed and will fire. `fired`/`failed` are terminal. `cancelled` is terminal (hard cancel via DELETE). `paused` is pause-for-edit: EventBridge entry is removed but the row stays re-activatable by PATCH back to `pending` with a new `fireAt`."
|
|
8795
9002
|
},
|
|
8796
9003
|
"fireAt": {
|
|
8797
9004
|
"type": "string",
|
|
@@ -8938,6 +9145,24 @@
|
|
|
8938
9145
|
}
|
|
8939
9146
|
}
|
|
8940
9147
|
}
|
|
9148
|
+
},
|
|
9149
|
+
"email": {
|
|
9150
|
+
"title": "ScheduleRelationshipsEmailSchema",
|
|
9151
|
+
"type": "object",
|
|
9152
|
+
"description": "The email this schedule was armed for. Set by wait:process so the email service can denormalise scheduleId back onto the email row when SCHEDULE_CREATED fires.",
|
|
9153
|
+
"properties": {
|
|
9154
|
+
"data": {
|
|
9155
|
+
"type": "object",
|
|
9156
|
+
"properties": {
|
|
9157
|
+
"type": {
|
|
9158
|
+
"type": "string"
|
|
9159
|
+
},
|
|
9160
|
+
"id": {
|
|
9161
|
+
"type": "string"
|
|
9162
|
+
}
|
|
9163
|
+
}
|
|
9164
|
+
}
|
|
9165
|
+
}
|
|
8941
9166
|
}
|
|
8942
9167
|
}
|
|
8943
9168
|
}
|
|
@@ -12027,45 +12252,37 @@
|
|
|
12027
12252
|
}
|
|
12028
12253
|
},
|
|
12029
12254
|
{
|
|
12030
|
-
"name": "
|
|
12031
|
-
"description": "List
|
|
12255
|
+
"name": "list_states",
|
|
12256
|
+
"description": "List States",
|
|
12032
12257
|
"inputSchema": {
|
|
12033
12258
|
"type": "object",
|
|
12034
12259
|
"properties": {
|
|
12035
|
-
"
|
|
12260
|
+
"filterResourceType": {
|
|
12036
12261
|
"type": "string",
|
|
12037
|
-
"description": "
|
|
12262
|
+
"description": "Only return states for this resource type.",
|
|
12038
12263
|
"enum": [
|
|
12039
|
-
"
|
|
12040
|
-
"
|
|
12041
|
-
"
|
|
12042
|
-
"
|
|
12264
|
+
"emails",
|
|
12265
|
+
"candidates",
|
|
12266
|
+
"conversations",
|
|
12267
|
+
"jobs",
|
|
12268
|
+
"talents",
|
|
12269
|
+
"personas",
|
|
12270
|
+
"reports",
|
|
12271
|
+
"tasks"
|
|
12043
12272
|
]
|
|
12044
12273
|
},
|
|
12045
|
-
"
|
|
12046
|
-
"type": "string",
|
|
12047
|
-
"description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
|
|
12048
|
-
},
|
|
12049
|
-
"filterCreatedTo": {
|
|
12050
|
-
"type": "string",
|
|
12051
|
-
"description": "Filters results to include only those created up to the specified date and time. The value must be in ISO 8601 format."
|
|
12052
|
-
},
|
|
12053
|
-
"filterModifiedFrom": {
|
|
12274
|
+
"filterResourceIds": {
|
|
12054
12275
|
"type": "string",
|
|
12055
|
-
"description": "
|
|
12276
|
+
"description": "Comma-separated list of resource ids to batch-fetch. Requires `filterResourceType`."
|
|
12056
12277
|
},
|
|
12057
|
-
"
|
|
12278
|
+
"folder": {
|
|
12058
12279
|
"type": "string",
|
|
12059
|
-
"description": "
|
|
12280
|
+
"description": "Folder-style filter. Tagged-union: the fixed folders are an enum,\nand the label folder is a `label:<labelId>` template. Orthogonal\nto filterResourceType and filterResourceIds which scope within\nthe folder.\n\nFixed folders:\n `all` - default, no folder filter\n `unseen` - only unread rows (sparse UnseenIndex)\n `starred` - only starred rows (sparse StarredIndex)\n `spam` - only user-spam-marked rows (sparse SpamIndex)\n\nLabel folder:\n `label:<labelId>` - rows whose `flags.labels` contains labelId\n\nTypeScript callers should narrow this to\n`'all' | 'unseen' | 'starred' | 'spam' | \\`label:${string}\\``\nin their client wrapper; OpenAPI cannot express template-literal\nunions natively."
|
|
12060
12281
|
},
|
|
12061
12282
|
"pageSize": {
|
|
12062
12283
|
"type": "integer",
|
|
12063
12284
|
"description": "Specifies the number of items to retrieve per page. The maximum value is 100."
|
|
12064
12285
|
},
|
|
12065
|
-
"pageNumber": {
|
|
12066
|
-
"type": "integer",
|
|
12067
|
-
"description": "Specifies the page number to retrieve. Used for traditional pagination."
|
|
12068
|
-
},
|
|
12069
12286
|
"pageAfter": {
|
|
12070
12287
|
"type": "string",
|
|
12071
12288
|
"description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
|
|
@@ -12078,12 +12295,787 @@
|
|
|
12078
12295
|
},
|
|
12079
12296
|
"_meta": {
|
|
12080
12297
|
"method": "GET",
|
|
12081
|
-
"path": "/v1/
|
|
12082
|
-
"operationId": "
|
|
12298
|
+
"path": "/v1/states",
|
|
12299
|
+
"operationId": "listStates"
|
|
12083
12300
|
}
|
|
12084
12301
|
},
|
|
12085
12302
|
{
|
|
12086
|
-
"name": "
|
|
12303
|
+
"name": "create_state",
|
|
12304
|
+
"description": "Upsert State",
|
|
12305
|
+
"inputSchema": {
|
|
12306
|
+
"title": "CreateStateRequestBody",
|
|
12307
|
+
"type": "object",
|
|
12308
|
+
"required": [
|
|
12309
|
+
"data"
|
|
12310
|
+
],
|
|
12311
|
+
"properties": {
|
|
12312
|
+
"data": {
|
|
12313
|
+
"title": "CreateStateRequestBodyData",
|
|
12314
|
+
"type": "object",
|
|
12315
|
+
"required": [
|
|
12316
|
+
"type",
|
|
12317
|
+
"attributes"
|
|
12318
|
+
],
|
|
12319
|
+
"properties": {
|
|
12320
|
+
"type": {
|
|
12321
|
+
"type": "string",
|
|
12322
|
+
"enum": [
|
|
12323
|
+
"states"
|
|
12324
|
+
]
|
|
12325
|
+
},
|
|
12326
|
+
"attributes": {
|
|
12327
|
+
"title": "StateAttributesSchema",
|
|
12328
|
+
"type": "object",
|
|
12329
|
+
"properties": {
|
|
12330
|
+
"userId": {
|
|
12331
|
+
"type": "string",
|
|
12332
|
+
"description": "Owner of this state row. Always the authenticated user; never set by the client."
|
|
12333
|
+
},
|
|
12334
|
+
"resourceType": {
|
|
12335
|
+
"type": "string",
|
|
12336
|
+
"enum": [
|
|
12337
|
+
"emails",
|
|
12338
|
+
"candidates",
|
|
12339
|
+
"conversations",
|
|
12340
|
+
"jobs",
|
|
12341
|
+
"talents",
|
|
12342
|
+
"personas",
|
|
12343
|
+
"reports",
|
|
12344
|
+
"tasks"
|
|
12345
|
+
],
|
|
12346
|
+
"description": "The kind of resource this state describes. Lives in the composite id as `{resourceType}:{resourceId}`."
|
|
12347
|
+
},
|
|
12348
|
+
"resourceId": {
|
|
12349
|
+
"type": "string",
|
|
12350
|
+
"description": "Id of the resource this state describes (e.g. an emailId, candidateId)."
|
|
12351
|
+
},
|
|
12352
|
+
"isSeen": {
|
|
12353
|
+
"type": "boolean",
|
|
12354
|
+
"description": "True if the user has opened the resource at least once. Derived from the presence of `seenAt`; clients can write either `isSeen` or `seenAt` on upsert."
|
|
12355
|
+
},
|
|
12356
|
+
"isStarred": {
|
|
12357
|
+
"type": "boolean",
|
|
12358
|
+
"description": "True if the user has starred/favourited the resource."
|
|
12359
|
+
},
|
|
12360
|
+
"isSpam": {
|
|
12361
|
+
"type": "boolean",
|
|
12362
|
+
"description": "True if the user marked this resource as spam. Distinct from the email service's `suppressed` status, which is SES-driven on outbound delivery; this is an inbound, per-user action."
|
|
12363
|
+
},
|
|
12364
|
+
"seenAt": {
|
|
12365
|
+
"type": "string",
|
|
12366
|
+
"description": "ISO 8601 timestamp of the user's most recent open. Absent means never seen."
|
|
12367
|
+
},
|
|
12368
|
+
"starredAt": {
|
|
12369
|
+
"type": "string",
|
|
12370
|
+
"description": "ISO 8601 timestamp of when the user starred the resource. Absent means not starred; used as the sort key for the `Starred` folder."
|
|
12371
|
+
},
|
|
12372
|
+
"spamAt": {
|
|
12373
|
+
"type": "string",
|
|
12374
|
+
"description": "ISO 8601 timestamp of when the user marked the resource as spam. Absent means not spam; used as the sort key for the `Spam` folder."
|
|
12375
|
+
},
|
|
12376
|
+
"resourceCreatedAt": {
|
|
12377
|
+
"type": "string",
|
|
12378
|
+
"description": "Denormalised copy of the underlying resource's own `created` timestamp. Used as the sparse unread-index sort key so the unread feed surfaces oldest resources first, not oldest state rows."
|
|
12379
|
+
},
|
|
12380
|
+
"flags": {
|
|
12381
|
+
"type": "object",
|
|
12382
|
+
"additionalProperties": true,
|
|
12383
|
+
"description": "Open-ended per-resource flags (e.g. `{muted: true}` on conversations, `{pinned: true}` on candidates). First-class state goes on the top-level attributes; ad-hoc state lives here."
|
|
12384
|
+
},
|
|
12385
|
+
"timestamps": {
|
|
12386
|
+
"title": "ResourceTimestampsSchema",
|
|
12387
|
+
"type": "object",
|
|
12388
|
+
"properties": {
|
|
12389
|
+
"created": {
|
|
12390
|
+
"type": "string",
|
|
12391
|
+
"format": "date-time"
|
|
12392
|
+
},
|
|
12393
|
+
"modified": {
|
|
12394
|
+
"type": "string",
|
|
12395
|
+
"format": "date-time"
|
|
12396
|
+
}
|
|
12397
|
+
}
|
|
12398
|
+
}
|
|
12399
|
+
}
|
|
12400
|
+
}
|
|
12401
|
+
}
|
|
12402
|
+
}
|
|
12403
|
+
}
|
|
12404
|
+
},
|
|
12405
|
+
"_meta": {
|
|
12406
|
+
"method": "POST",
|
|
12407
|
+
"path": "/v1/states",
|
|
12408
|
+
"operationId": "createState"
|
|
12409
|
+
}
|
|
12410
|
+
},
|
|
12411
|
+
{
|
|
12412
|
+
"name": "states_options",
|
|
12413
|
+
"description": "States Options",
|
|
12414
|
+
"inputSchema": {
|
|
12415
|
+
"type": "object",
|
|
12416
|
+
"properties": {}
|
|
12417
|
+
},
|
|
12418
|
+
"_meta": {
|
|
12419
|
+
"method": "OPTIONS",
|
|
12420
|
+
"path": "/v1/states",
|
|
12421
|
+
"operationId": "statesOptions"
|
|
12422
|
+
}
|
|
12423
|
+
},
|
|
12424
|
+
{
|
|
12425
|
+
"name": "show_state",
|
|
12426
|
+
"description": "Show State",
|
|
12427
|
+
"inputSchema": {
|
|
12428
|
+
"type": "object",
|
|
12429
|
+
"properties": {}
|
|
12430
|
+
},
|
|
12431
|
+
"_meta": {
|
|
12432
|
+
"method": "GET",
|
|
12433
|
+
"path": "/v1/states/{stateId}",
|
|
12434
|
+
"operationId": "showState"
|
|
12435
|
+
}
|
|
12436
|
+
},
|
|
12437
|
+
{
|
|
12438
|
+
"name": "update_state",
|
|
12439
|
+
"description": "Update State",
|
|
12440
|
+
"inputSchema": {
|
|
12441
|
+
"title": "UpdateStateRequestBody",
|
|
12442
|
+
"type": "object",
|
|
12443
|
+
"required": [
|
|
12444
|
+
"data"
|
|
12445
|
+
],
|
|
12446
|
+
"properties": {
|
|
12447
|
+
"data": {
|
|
12448
|
+
"title": "UpdateStateRequestBodyData",
|
|
12449
|
+
"type": "object",
|
|
12450
|
+
"required": [
|
|
12451
|
+
"type",
|
|
12452
|
+
"id",
|
|
12453
|
+
"attributes"
|
|
12454
|
+
],
|
|
12455
|
+
"properties": {
|
|
12456
|
+
"type": {
|
|
12457
|
+
"type": "string",
|
|
12458
|
+
"enum": [
|
|
12459
|
+
"states"
|
|
12460
|
+
]
|
|
12461
|
+
},
|
|
12462
|
+
"id": {
|
|
12463
|
+
"type": "string"
|
|
12464
|
+
},
|
|
12465
|
+
"attributes": {
|
|
12466
|
+
"title": "StateAttributesSchema",
|
|
12467
|
+
"type": "object",
|
|
12468
|
+
"properties": {
|
|
12469
|
+
"userId": {
|
|
12470
|
+
"type": "string",
|
|
12471
|
+
"description": "Owner of this state row. Always the authenticated user; never set by the client."
|
|
12472
|
+
},
|
|
12473
|
+
"resourceType": {
|
|
12474
|
+
"type": "string",
|
|
12475
|
+
"enum": [
|
|
12476
|
+
"emails",
|
|
12477
|
+
"candidates",
|
|
12478
|
+
"conversations",
|
|
12479
|
+
"jobs",
|
|
12480
|
+
"talents",
|
|
12481
|
+
"personas",
|
|
12482
|
+
"reports",
|
|
12483
|
+
"tasks"
|
|
12484
|
+
],
|
|
12485
|
+
"description": "The kind of resource this state describes. Lives in the composite id as `{resourceType}:{resourceId}`."
|
|
12486
|
+
},
|
|
12487
|
+
"resourceId": {
|
|
12488
|
+
"type": "string",
|
|
12489
|
+
"description": "Id of the resource this state describes (e.g. an emailId, candidateId)."
|
|
12490
|
+
},
|
|
12491
|
+
"isSeen": {
|
|
12492
|
+
"type": "boolean",
|
|
12493
|
+
"description": "True if the user has opened the resource at least once. Derived from the presence of `seenAt`; clients can write either `isSeen` or `seenAt` on upsert."
|
|
12494
|
+
},
|
|
12495
|
+
"isStarred": {
|
|
12496
|
+
"type": "boolean",
|
|
12497
|
+
"description": "True if the user has starred/favourited the resource."
|
|
12498
|
+
},
|
|
12499
|
+
"isSpam": {
|
|
12500
|
+
"type": "boolean",
|
|
12501
|
+
"description": "True if the user marked this resource as spam. Distinct from the email service's `suppressed` status, which is SES-driven on outbound delivery; this is an inbound, per-user action."
|
|
12502
|
+
},
|
|
12503
|
+
"seenAt": {
|
|
12504
|
+
"type": "string",
|
|
12505
|
+
"description": "ISO 8601 timestamp of the user's most recent open. Absent means never seen."
|
|
12506
|
+
},
|
|
12507
|
+
"starredAt": {
|
|
12508
|
+
"type": "string",
|
|
12509
|
+
"description": "ISO 8601 timestamp of when the user starred the resource. Absent means not starred; used as the sort key for the `Starred` folder."
|
|
12510
|
+
},
|
|
12511
|
+
"spamAt": {
|
|
12512
|
+
"type": "string",
|
|
12513
|
+
"description": "ISO 8601 timestamp of when the user marked the resource as spam. Absent means not spam; used as the sort key for the `Spam` folder."
|
|
12514
|
+
},
|
|
12515
|
+
"resourceCreatedAt": {
|
|
12516
|
+
"type": "string",
|
|
12517
|
+
"description": "Denormalised copy of the underlying resource's own `created` timestamp. Used as the sparse unread-index sort key so the unread feed surfaces oldest resources first, not oldest state rows."
|
|
12518
|
+
},
|
|
12519
|
+
"flags": {
|
|
12520
|
+
"type": "object",
|
|
12521
|
+
"additionalProperties": true,
|
|
12522
|
+
"description": "Open-ended per-resource flags (e.g. `{muted: true}` on conversations, `{pinned: true}` on candidates). First-class state goes on the top-level attributes; ad-hoc state lives here."
|
|
12523
|
+
},
|
|
12524
|
+
"timestamps": {
|
|
12525
|
+
"title": "ResourceTimestampsSchema",
|
|
12526
|
+
"type": "object",
|
|
12527
|
+
"properties": {
|
|
12528
|
+
"created": {
|
|
12529
|
+
"type": "string",
|
|
12530
|
+
"format": "date-time"
|
|
12531
|
+
},
|
|
12532
|
+
"modified": {
|
|
12533
|
+
"type": "string",
|
|
12534
|
+
"format": "date-time"
|
|
12535
|
+
}
|
|
12536
|
+
}
|
|
12537
|
+
}
|
|
12538
|
+
}
|
|
12539
|
+
}
|
|
12540
|
+
}
|
|
12541
|
+
}
|
|
12542
|
+
}
|
|
12543
|
+
},
|
|
12544
|
+
"_meta": {
|
|
12545
|
+
"method": "PATCH",
|
|
12546
|
+
"path": "/v1/states/{stateId}",
|
|
12547
|
+
"operationId": "updateState"
|
|
12548
|
+
}
|
|
12549
|
+
},
|
|
12550
|
+
{
|
|
12551
|
+
"name": "delete_state",
|
|
12552
|
+
"description": "Delete State",
|
|
12553
|
+
"inputSchema": {
|
|
12554
|
+
"type": "object",
|
|
12555
|
+
"properties": {}
|
|
12556
|
+
},
|
|
12557
|
+
"_meta": {
|
|
12558
|
+
"method": "DELETE",
|
|
12559
|
+
"path": "/v1/states/{stateId}",
|
|
12560
|
+
"operationId": "deleteState"
|
|
12561
|
+
}
|
|
12562
|
+
},
|
|
12563
|
+
{
|
|
12564
|
+
"name": "state_options",
|
|
12565
|
+
"description": "State Options",
|
|
12566
|
+
"inputSchema": {
|
|
12567
|
+
"type": "object",
|
|
12568
|
+
"properties": {}
|
|
12569
|
+
},
|
|
12570
|
+
"_meta": {
|
|
12571
|
+
"method": "OPTIONS",
|
|
12572
|
+
"path": "/v1/states/{stateId}",
|
|
12573
|
+
"operationId": "stateOptions"
|
|
12574
|
+
}
|
|
12575
|
+
},
|
|
12576
|
+
{
|
|
12577
|
+
"name": "list_aggregates",
|
|
12578
|
+
"description": "List Aggregates",
|
|
12579
|
+
"inputSchema": {
|
|
12580
|
+
"type": "object",
|
|
12581
|
+
"properties": {
|
|
12582
|
+
"filterResourceType": {
|
|
12583
|
+
"type": "string",
|
|
12584
|
+
"description": "Only return aggregates for this resource type (e.g. emails).",
|
|
12585
|
+
"enum": [
|
|
12586
|
+
"emails",
|
|
12587
|
+
"candidates",
|
|
12588
|
+
"conversations",
|
|
12589
|
+
"jobs",
|
|
12590
|
+
"talents",
|
|
12591
|
+
"personas",
|
|
12592
|
+
"reports",
|
|
12593
|
+
"tasks"
|
|
12594
|
+
]
|
|
12595
|
+
},
|
|
12596
|
+
"filterDimension": {
|
|
12597
|
+
"type": "string",
|
|
12598
|
+
"description": "Only return aggregates for this dimension (e.g. byFolder, byStatus). Triggers the `meta.by{Dimension}` overlay in the response."
|
|
12599
|
+
},
|
|
12600
|
+
"filterCategory": {
|
|
12601
|
+
"type": "string",
|
|
12602
|
+
"description": "Only return aggregates for this category within the dimension (e.g. received, sent)."
|
|
12603
|
+
},
|
|
12604
|
+
"filterKind": {
|
|
12605
|
+
"type": "string",
|
|
12606
|
+
"description": "Only return aggregates for this projection kind.",
|
|
12607
|
+
"enum": [
|
|
12608
|
+
"total",
|
|
12609
|
+
"seen",
|
|
12610
|
+
"unseen"
|
|
12611
|
+
]
|
|
12612
|
+
},
|
|
12613
|
+
"pageSize": {
|
|
12614
|
+
"type": "integer",
|
|
12615
|
+
"description": "Specifies the number of items to retrieve per page. The maximum value is 100."
|
|
12616
|
+
},
|
|
12617
|
+
"pageAfter": {
|
|
12618
|
+
"type": "string",
|
|
12619
|
+
"description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
|
|
12620
|
+
},
|
|
12621
|
+
"pageBefore": {
|
|
12622
|
+
"type": "string",
|
|
12623
|
+
"description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
|
|
12624
|
+
}
|
|
12625
|
+
}
|
|
12626
|
+
},
|
|
12627
|
+
"_meta": {
|
|
12628
|
+
"method": "GET",
|
|
12629
|
+
"path": "/v1/aggregates",
|
|
12630
|
+
"operationId": "listAggregates"
|
|
12631
|
+
}
|
|
12632
|
+
},
|
|
12633
|
+
{
|
|
12634
|
+
"name": "aggregates_options",
|
|
12635
|
+
"description": "Aggregates Options",
|
|
12636
|
+
"inputSchema": {
|
|
12637
|
+
"type": "object",
|
|
12638
|
+
"properties": {}
|
|
12639
|
+
},
|
|
12640
|
+
"_meta": {
|
|
12641
|
+
"method": "OPTIONS",
|
|
12642
|
+
"path": "/v1/aggregates",
|
|
12643
|
+
"operationId": "aggregatesOptions"
|
|
12644
|
+
}
|
|
12645
|
+
},
|
|
12646
|
+
{
|
|
12647
|
+
"name": "show_aggregate",
|
|
12648
|
+
"description": "Show Aggregate",
|
|
12649
|
+
"inputSchema": {
|
|
12650
|
+
"type": "object",
|
|
12651
|
+
"properties": {}
|
|
12652
|
+
},
|
|
12653
|
+
"_meta": {
|
|
12654
|
+
"method": "GET",
|
|
12655
|
+
"path": "/v1/aggregates/{aggregateId}",
|
|
12656
|
+
"operationId": "showAggregate"
|
|
12657
|
+
}
|
|
12658
|
+
},
|
|
12659
|
+
{
|
|
12660
|
+
"name": "update_aggregate",
|
|
12661
|
+
"description": "Update Aggregate (admin)",
|
|
12662
|
+
"inputSchema": {
|
|
12663
|
+
"title": "UpdateAggregateRequestBody",
|
|
12664
|
+
"type": "object",
|
|
12665
|
+
"required": [
|
|
12666
|
+
"data"
|
|
12667
|
+
],
|
|
12668
|
+
"properties": {
|
|
12669
|
+
"data": {
|
|
12670
|
+
"title": "UpdateAggregateRequestBodyData",
|
|
12671
|
+
"type": "object",
|
|
12672
|
+
"required": [
|
|
12673
|
+
"type",
|
|
12674
|
+
"id",
|
|
12675
|
+
"attributes"
|
|
12676
|
+
],
|
|
12677
|
+
"properties": {
|
|
12678
|
+
"type": {
|
|
12679
|
+
"type": "string",
|
|
12680
|
+
"enum": [
|
|
12681
|
+
"aggregates"
|
|
12682
|
+
]
|
|
12683
|
+
},
|
|
12684
|
+
"id": {
|
|
12685
|
+
"type": "string"
|
|
12686
|
+
},
|
|
12687
|
+
"attributes": {
|
|
12688
|
+
"title": "AggregateAttributesSchema",
|
|
12689
|
+
"type": "object",
|
|
12690
|
+
"properties": {
|
|
12691
|
+
"resourceType": {
|
|
12692
|
+
"type": "string",
|
|
12693
|
+
"description": "The resource being counted (e.g. `emails`, `candidates`). Matches the `resourceType` enum used by the state service."
|
|
12694
|
+
},
|
|
12695
|
+
"dimension": {
|
|
12696
|
+
"type": "string",
|
|
12697
|
+
"description": "The categorisation axis (e.g. `byFolder` for emails, `byStatus` for candidates). Each owning service publishes its own dimensions."
|
|
12698
|
+
},
|
|
12699
|
+
"category": {
|
|
12700
|
+
"type": "string",
|
|
12701
|
+
"description": "A specific value within the dimension (e.g. `received`, `sent`, `draft` when dimension=byFolder). Lives in the composite id between dimension and kind."
|
|
12702
|
+
},
|
|
12703
|
+
"kind": {
|
|
12704
|
+
"type": "string",
|
|
12705
|
+
"enum": [
|
|
12706
|
+
"total",
|
|
12707
|
+
"unseen",
|
|
12708
|
+
"seen"
|
|
12709
|
+
],
|
|
12710
|
+
"description": "Which projection of the category this row holds. `total` counts every resource; `seen` counts states with isSeen=true; `unseen` is total minus seen."
|
|
12711
|
+
},
|
|
12712
|
+
"value": {
|
|
12713
|
+
"type": "integer",
|
|
12714
|
+
"description": "Current counter value. Updated via atomic ADD on event consumption; admin PATCH allows manual correction for drift recovery."
|
|
12715
|
+
},
|
|
12716
|
+
"timestamps": {
|
|
12717
|
+
"title": "ResourceTimestampsSchema",
|
|
12718
|
+
"type": "object",
|
|
12719
|
+
"properties": {
|
|
12720
|
+
"created": {
|
|
12721
|
+
"type": "string",
|
|
12722
|
+
"format": "date-time"
|
|
12723
|
+
},
|
|
12724
|
+
"modified": {
|
|
12725
|
+
"type": "string",
|
|
12726
|
+
"format": "date-time"
|
|
12727
|
+
}
|
|
12728
|
+
}
|
|
12729
|
+
}
|
|
12730
|
+
}
|
|
12731
|
+
}
|
|
12732
|
+
}
|
|
12733
|
+
}
|
|
12734
|
+
}
|
|
12735
|
+
},
|
|
12736
|
+
"_meta": {
|
|
12737
|
+
"method": "PATCH",
|
|
12738
|
+
"path": "/v1/aggregates/{aggregateId}",
|
|
12739
|
+
"operationId": "updateAggregate"
|
|
12740
|
+
}
|
|
12741
|
+
},
|
|
12742
|
+
{
|
|
12743
|
+
"name": "aggregate_options",
|
|
12744
|
+
"description": "Aggregate Options",
|
|
12745
|
+
"inputSchema": {
|
|
12746
|
+
"type": "object",
|
|
12747
|
+
"properties": {}
|
|
12748
|
+
},
|
|
12749
|
+
"_meta": {
|
|
12750
|
+
"method": "OPTIONS",
|
|
12751
|
+
"path": "/v1/aggregates/{aggregateId}",
|
|
12752
|
+
"operationId": "aggregateOptions"
|
|
12753
|
+
}
|
|
12754
|
+
},
|
|
12755
|
+
{
|
|
12756
|
+
"name": "list_labels",
|
|
12757
|
+
"description": "List Labels",
|
|
12758
|
+
"inputSchema": {
|
|
12759
|
+
"type": "object",
|
|
12760
|
+
"properties": {
|
|
12761
|
+
"filterStatus": {
|
|
12762
|
+
"type": "string",
|
|
12763
|
+
"description": "filterStatus parameter",
|
|
12764
|
+
"enum": [
|
|
12765
|
+
"active",
|
|
12766
|
+
"archived"
|
|
12767
|
+
]
|
|
12768
|
+
},
|
|
12769
|
+
"pageSize": {
|
|
12770
|
+
"type": "integer",
|
|
12771
|
+
"description": "Specifies the number of items to retrieve per page. The maximum value is 100."
|
|
12772
|
+
}
|
|
12773
|
+
}
|
|
12774
|
+
},
|
|
12775
|
+
"_meta": {
|
|
12776
|
+
"method": "GET",
|
|
12777
|
+
"path": "/v1/labels",
|
|
12778
|
+
"operationId": "listLabels"
|
|
12779
|
+
}
|
|
12780
|
+
},
|
|
12781
|
+
{
|
|
12782
|
+
"name": "create_label",
|
|
12783
|
+
"description": "Create Label",
|
|
12784
|
+
"inputSchema": {
|
|
12785
|
+
"title": "CreateLabelRequestBody",
|
|
12786
|
+
"type": "object",
|
|
12787
|
+
"required": [
|
|
12788
|
+
"data"
|
|
12789
|
+
],
|
|
12790
|
+
"properties": {
|
|
12791
|
+
"data": {
|
|
12792
|
+
"title": "CreateLabelRequestBodyData",
|
|
12793
|
+
"type": "object",
|
|
12794
|
+
"required": [
|
|
12795
|
+
"type",
|
|
12796
|
+
"attributes"
|
|
12797
|
+
],
|
|
12798
|
+
"properties": {
|
|
12799
|
+
"type": {
|
|
12800
|
+
"type": "string",
|
|
12801
|
+
"enum": [
|
|
12802
|
+
"labels"
|
|
12803
|
+
]
|
|
12804
|
+
},
|
|
12805
|
+
"attributes": {
|
|
12806
|
+
"title": "LabelAttributesSchema",
|
|
12807
|
+
"type": "object",
|
|
12808
|
+
"properties": {
|
|
12809
|
+
"name": {
|
|
12810
|
+
"type": "string",
|
|
12811
|
+
"description": "Display name. Unique within a scope by convention but not enforced."
|
|
12812
|
+
},
|
|
12813
|
+
"color": {
|
|
12814
|
+
"type": "string",
|
|
12815
|
+
"description": "Hex or CSS-named color the UI uses to render the label pill."
|
|
12816
|
+
},
|
|
12817
|
+
"description": {
|
|
12818
|
+
"type": "string"
|
|
12819
|
+
},
|
|
12820
|
+
"scope": {
|
|
12821
|
+
"type": "string",
|
|
12822
|
+
"enum": [
|
|
12823
|
+
"tenant",
|
|
12824
|
+
"user"
|
|
12825
|
+
],
|
|
12826
|
+
"description": "tenant = visible to every user in the tenant; user = visible only to the owner."
|
|
12827
|
+
},
|
|
12828
|
+
"ownerId": {
|
|
12829
|
+
"type": "string",
|
|
12830
|
+
"description": "Set server-side from the caller. Tenant-scope: tenantId. User-scope: the authenticated user's full userId."
|
|
12831
|
+
},
|
|
12832
|
+
"resourceTypes": {
|
|
12833
|
+
"type": "array",
|
|
12834
|
+
"items": {
|
|
12835
|
+
"type": "string"
|
|
12836
|
+
},
|
|
12837
|
+
"description": "Optional UI hint: if set, the frontend only exposes this label in the picker for these resource types (emails, candidates, ...). Not enforced server-side."
|
|
12838
|
+
},
|
|
12839
|
+
"status": {
|
|
12840
|
+
"type": "string",
|
|
12841
|
+
"enum": [
|
|
12842
|
+
"active",
|
|
12843
|
+
"archived"
|
|
12844
|
+
],
|
|
12845
|
+
"description": "Archived labels stay readable (for historical assignments) but disappear from the default list."
|
|
12846
|
+
},
|
|
12847
|
+
"timestamps": {
|
|
12848
|
+
"title": "ResourceTimestampsSchema",
|
|
12849
|
+
"type": "object",
|
|
12850
|
+
"properties": {
|
|
12851
|
+
"created": {
|
|
12852
|
+
"type": "string",
|
|
12853
|
+
"format": "date-time"
|
|
12854
|
+
},
|
|
12855
|
+
"modified": {
|
|
12856
|
+
"type": "string",
|
|
12857
|
+
"format": "date-time"
|
|
12858
|
+
}
|
|
12859
|
+
}
|
|
12860
|
+
}
|
|
12861
|
+
}
|
|
12862
|
+
}
|
|
12863
|
+
}
|
|
12864
|
+
}
|
|
12865
|
+
}
|
|
12866
|
+
},
|
|
12867
|
+
"_meta": {
|
|
12868
|
+
"method": "POST",
|
|
12869
|
+
"path": "/v1/labels",
|
|
12870
|
+
"operationId": "createLabel"
|
|
12871
|
+
}
|
|
12872
|
+
},
|
|
12873
|
+
{
|
|
12874
|
+
"name": "labels_options",
|
|
12875
|
+
"description": "Labels Options",
|
|
12876
|
+
"inputSchema": {
|
|
12877
|
+
"type": "object",
|
|
12878
|
+
"properties": {}
|
|
12879
|
+
},
|
|
12880
|
+
"_meta": {
|
|
12881
|
+
"method": "OPTIONS",
|
|
12882
|
+
"path": "/v1/labels",
|
|
12883
|
+
"operationId": "labelsOptions"
|
|
12884
|
+
}
|
|
12885
|
+
},
|
|
12886
|
+
{
|
|
12887
|
+
"name": "show_label",
|
|
12888
|
+
"description": "Show Label",
|
|
12889
|
+
"inputSchema": {
|
|
12890
|
+
"type": "object",
|
|
12891
|
+
"properties": {}
|
|
12892
|
+
},
|
|
12893
|
+
"_meta": {
|
|
12894
|
+
"method": "GET",
|
|
12895
|
+
"path": "/v1/labels/{labelId}",
|
|
12896
|
+
"operationId": "showLabel"
|
|
12897
|
+
}
|
|
12898
|
+
},
|
|
12899
|
+
{
|
|
12900
|
+
"name": "update_label",
|
|
12901
|
+
"description": "Update Label",
|
|
12902
|
+
"inputSchema": {
|
|
12903
|
+
"title": "UpdateLabelRequestBody",
|
|
12904
|
+
"type": "object",
|
|
12905
|
+
"required": [
|
|
12906
|
+
"data"
|
|
12907
|
+
],
|
|
12908
|
+
"properties": {
|
|
12909
|
+
"data": {
|
|
12910
|
+
"title": "UpdateLabelRequestBodyData",
|
|
12911
|
+
"type": "object",
|
|
12912
|
+
"required": [
|
|
12913
|
+
"type",
|
|
12914
|
+
"id",
|
|
12915
|
+
"attributes"
|
|
12916
|
+
],
|
|
12917
|
+
"properties": {
|
|
12918
|
+
"type": {
|
|
12919
|
+
"type": "string",
|
|
12920
|
+
"enum": [
|
|
12921
|
+
"labels"
|
|
12922
|
+
]
|
|
12923
|
+
},
|
|
12924
|
+
"id": {
|
|
12925
|
+
"type": "string"
|
|
12926
|
+
},
|
|
12927
|
+
"attributes": {
|
|
12928
|
+
"title": "LabelAttributesSchema",
|
|
12929
|
+
"type": "object",
|
|
12930
|
+
"properties": {
|
|
12931
|
+
"name": {
|
|
12932
|
+
"type": "string",
|
|
12933
|
+
"description": "Display name. Unique within a scope by convention but not enforced."
|
|
12934
|
+
},
|
|
12935
|
+
"color": {
|
|
12936
|
+
"type": "string",
|
|
12937
|
+
"description": "Hex or CSS-named color the UI uses to render the label pill."
|
|
12938
|
+
},
|
|
12939
|
+
"description": {
|
|
12940
|
+
"type": "string"
|
|
12941
|
+
},
|
|
12942
|
+
"scope": {
|
|
12943
|
+
"type": "string",
|
|
12944
|
+
"enum": [
|
|
12945
|
+
"tenant",
|
|
12946
|
+
"user"
|
|
12947
|
+
],
|
|
12948
|
+
"description": "tenant = visible to every user in the tenant; user = visible only to the owner."
|
|
12949
|
+
},
|
|
12950
|
+
"ownerId": {
|
|
12951
|
+
"type": "string",
|
|
12952
|
+
"description": "Set server-side from the caller. Tenant-scope: tenantId. User-scope: the authenticated user's full userId."
|
|
12953
|
+
},
|
|
12954
|
+
"resourceTypes": {
|
|
12955
|
+
"type": "array",
|
|
12956
|
+
"items": {
|
|
12957
|
+
"type": "string"
|
|
12958
|
+
},
|
|
12959
|
+
"description": "Optional UI hint: if set, the frontend only exposes this label in the picker for these resource types (emails, candidates, ...). Not enforced server-side."
|
|
12960
|
+
},
|
|
12961
|
+
"status": {
|
|
12962
|
+
"type": "string",
|
|
12963
|
+
"enum": [
|
|
12964
|
+
"active",
|
|
12965
|
+
"archived"
|
|
12966
|
+
],
|
|
12967
|
+
"description": "Archived labels stay readable (for historical assignments) but disappear from the default list."
|
|
12968
|
+
},
|
|
12969
|
+
"timestamps": {
|
|
12970
|
+
"title": "ResourceTimestampsSchema",
|
|
12971
|
+
"type": "object",
|
|
12972
|
+
"properties": {
|
|
12973
|
+
"created": {
|
|
12974
|
+
"type": "string",
|
|
12975
|
+
"format": "date-time"
|
|
12976
|
+
},
|
|
12977
|
+
"modified": {
|
|
12978
|
+
"type": "string",
|
|
12979
|
+
"format": "date-time"
|
|
12980
|
+
}
|
|
12981
|
+
}
|
|
12982
|
+
}
|
|
12983
|
+
}
|
|
12984
|
+
}
|
|
12985
|
+
}
|
|
12986
|
+
}
|
|
12987
|
+
}
|
|
12988
|
+
},
|
|
12989
|
+
"_meta": {
|
|
12990
|
+
"method": "PATCH",
|
|
12991
|
+
"path": "/v1/labels/{labelId}",
|
|
12992
|
+
"operationId": "updateLabel"
|
|
12993
|
+
}
|
|
12994
|
+
},
|
|
12995
|
+
{
|
|
12996
|
+
"name": "delete_label",
|
|
12997
|
+
"description": "Delete Label",
|
|
12998
|
+
"inputSchema": {
|
|
12999
|
+
"type": "object",
|
|
13000
|
+
"properties": {}
|
|
13001
|
+
},
|
|
13002
|
+
"_meta": {
|
|
13003
|
+
"method": "DELETE",
|
|
13004
|
+
"path": "/v1/labels/{labelId}",
|
|
13005
|
+
"operationId": "deleteLabel"
|
|
13006
|
+
}
|
|
13007
|
+
},
|
|
13008
|
+
{
|
|
13009
|
+
"name": "label_options",
|
|
13010
|
+
"description": "Label Options",
|
|
13011
|
+
"inputSchema": {
|
|
13012
|
+
"type": "object",
|
|
13013
|
+
"properties": {}
|
|
13014
|
+
},
|
|
13015
|
+
"_meta": {
|
|
13016
|
+
"method": "OPTIONS",
|
|
13017
|
+
"path": "/v1/labels/{labelId}",
|
|
13018
|
+
"operationId": "labelOptions"
|
|
13019
|
+
}
|
|
13020
|
+
},
|
|
13021
|
+
{
|
|
13022
|
+
"name": "list_meetings",
|
|
13023
|
+
"description": "List Meetings",
|
|
13024
|
+
"inputSchema": {
|
|
13025
|
+
"type": "object",
|
|
13026
|
+
"properties": {
|
|
13027
|
+
"filterStatus": {
|
|
13028
|
+
"type": "string",
|
|
13029
|
+
"description": "Returns meetings with the current status (active, scheduled, ended, archived). If not provided, the default value will be set to 'active'.",
|
|
13030
|
+
"enum": [
|
|
13031
|
+
"active",
|
|
13032
|
+
"scheduled",
|
|
13033
|
+
"ended",
|
|
13034
|
+
"archived"
|
|
13035
|
+
]
|
|
13036
|
+
},
|
|
13037
|
+
"filterCreatedFrom": {
|
|
13038
|
+
"type": "string",
|
|
13039
|
+
"description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
|
|
13040
|
+
},
|
|
13041
|
+
"filterCreatedTo": {
|
|
13042
|
+
"type": "string",
|
|
13043
|
+
"description": "Filters results to include only those created up to the specified date and time. The value must be in ISO 8601 format."
|
|
13044
|
+
},
|
|
13045
|
+
"filterModifiedFrom": {
|
|
13046
|
+
"type": "string",
|
|
13047
|
+
"description": "Filters results to include only those modified from the specified date and time. The value must be in ISO 8601 format."
|
|
13048
|
+
},
|
|
13049
|
+
"filterModifiedTo": {
|
|
13050
|
+
"type": "string",
|
|
13051
|
+
"description": "Filters results to include only those modified up to the specified date and time. The value must be in ISO 8601 format."
|
|
13052
|
+
},
|
|
13053
|
+
"pageSize": {
|
|
13054
|
+
"type": "integer",
|
|
13055
|
+
"description": "Specifies the number of items to retrieve per page. The maximum value is 100."
|
|
13056
|
+
},
|
|
13057
|
+
"pageNumber": {
|
|
13058
|
+
"type": "integer",
|
|
13059
|
+
"description": "Specifies the page number to retrieve. Used for traditional pagination."
|
|
13060
|
+
},
|
|
13061
|
+
"pageAfter": {
|
|
13062
|
+
"type": "string",
|
|
13063
|
+
"description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
|
|
13064
|
+
},
|
|
13065
|
+
"pageBefore": {
|
|
13066
|
+
"type": "string",
|
|
13067
|
+
"description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
|
|
13068
|
+
}
|
|
13069
|
+
}
|
|
13070
|
+
},
|
|
13071
|
+
"_meta": {
|
|
13072
|
+
"method": "GET",
|
|
13073
|
+
"path": "/v1/meetings",
|
|
13074
|
+
"operationId": "listMeetings"
|
|
13075
|
+
}
|
|
13076
|
+
},
|
|
13077
|
+
{
|
|
13078
|
+
"name": "create_meeting",
|
|
12087
13079
|
"description": "Create Meeting",
|
|
12088
13080
|
"inputSchema": {
|
|
12089
13081
|
"title": "CreateMeetingRequestBody",
|
|
@@ -15068,12 +16060,62 @@
|
|
|
15068
16060
|
"description": "The type of search to perform"
|
|
15069
16061
|
},
|
|
15070
16062
|
"query": {
|
|
15071
|
-
"
|
|
15072
|
-
"
|
|
16063
|
+
"description": "Search query parameters sent to OpenSearch. Shape varies by finder `type`. OpenAPI can't express the full type/query correlation as a strict discriminated union (the discriminator lives on the sibling `type` field, not on `query` itself), so this is encoded as `oneOf` over per-type query schemas. Clients should pick the shape matching the `type` they are posting.",
|
|
16064
|
+
"oneOf": [
|
|
16065
|
+
{
|
|
16066
|
+
"$ref": "#/components/schemas/FinderQueryTalentsSchema"
|
|
16067
|
+
},
|
|
16068
|
+
{
|
|
16069
|
+
"$ref": "#/components/schemas/FinderQueryCandidatesSchema"
|
|
16070
|
+
},
|
|
16071
|
+
{
|
|
16072
|
+
"$ref": "#/components/schemas/FinderQueryJobsSchema"
|
|
16073
|
+
},
|
|
16074
|
+
{
|
|
16075
|
+
"$ref": "#/components/schemas/FinderQueryEmailsSchema"
|
|
16076
|
+
}
|
|
16077
|
+
]
|
|
15073
16078
|
},
|
|
15074
16079
|
"results": {
|
|
16080
|
+
"title": "FinderResultsSchema",
|
|
15075
16081
|
"type": "object",
|
|
15076
|
-
"description": "
|
|
16082
|
+
"description": "OpenSearch-shaped results attached to the finder record after the search runs. Hits array items carry whatever subset of the index schema was projected.",
|
|
16083
|
+
"properties": {
|
|
16084
|
+
"total": {
|
|
16085
|
+
"type": "integer",
|
|
16086
|
+
"description": "Count of matching documents before pagination."
|
|
16087
|
+
},
|
|
16088
|
+
"hits": {
|
|
16089
|
+
"type": "array",
|
|
16090
|
+
"items": {
|
|
16091
|
+
"title": "FinderResultHitSchema",
|
|
16092
|
+
"type": "object",
|
|
16093
|
+
"description": "Single hit from the OpenSearch query. The `id` equals the underlying resource id (emailId, talentId, candidateId, jobId, ...) so the frontend can navigate directly to that resource. Additional fields vary by finder `type`.",
|
|
16094
|
+
"properties": {
|
|
16095
|
+
"id": {
|
|
16096
|
+
"type": "string",
|
|
16097
|
+
"description": "The underlying resource id (emailId / talentId / candidateId / jobId)."
|
|
16098
|
+
},
|
|
16099
|
+
"tenantId": {
|
|
16100
|
+
"type": "string"
|
|
16101
|
+
},
|
|
16102
|
+
"status": {
|
|
16103
|
+
"type": "string"
|
|
16104
|
+
},
|
|
16105
|
+
"source": {
|
|
16106
|
+
"type": "string"
|
|
16107
|
+
},
|
|
16108
|
+
"created": {
|
|
16109
|
+
"type": "string"
|
|
16110
|
+
},
|
|
16111
|
+
"shortCode": {
|
|
16112
|
+
"type": "string"
|
|
16113
|
+
}
|
|
16114
|
+
},
|
|
16115
|
+
"additionalProperties": true
|
|
16116
|
+
}
|
|
16117
|
+
}
|
|
16118
|
+
}
|
|
15077
16119
|
},
|
|
15078
16120
|
"status": {
|
|
15079
16121
|
"type": "string",
|
|
@@ -15301,12 +16343,62 @@
|
|
|
15301
16343
|
"description": "The type of search to perform"
|
|
15302
16344
|
},
|
|
15303
16345
|
"query": {
|
|
15304
|
-
"
|
|
15305
|
-
"
|
|
16346
|
+
"description": "Search query parameters sent to OpenSearch. Shape varies by finder `type`. OpenAPI can't express the full type/query correlation as a strict discriminated union (the discriminator lives on the sibling `type` field, not on `query` itself), so this is encoded as `oneOf` over per-type query schemas. Clients should pick the shape matching the `type` they are posting.",
|
|
16347
|
+
"oneOf": [
|
|
16348
|
+
{
|
|
16349
|
+
"$ref": "#/components/schemas/FinderQueryTalentsSchema"
|
|
16350
|
+
},
|
|
16351
|
+
{
|
|
16352
|
+
"$ref": "#/components/schemas/FinderQueryCandidatesSchema"
|
|
16353
|
+
},
|
|
16354
|
+
{
|
|
16355
|
+
"$ref": "#/components/schemas/FinderQueryJobsSchema"
|
|
16356
|
+
},
|
|
16357
|
+
{
|
|
16358
|
+
"$ref": "#/components/schemas/FinderQueryEmailsSchema"
|
|
16359
|
+
}
|
|
16360
|
+
]
|
|
15306
16361
|
},
|
|
15307
16362
|
"results": {
|
|
16363
|
+
"title": "FinderResultsSchema",
|
|
15308
16364
|
"type": "object",
|
|
15309
|
-
"description": "
|
|
16365
|
+
"description": "OpenSearch-shaped results attached to the finder record after the search runs. Hits array items carry whatever subset of the index schema was projected.",
|
|
16366
|
+
"properties": {
|
|
16367
|
+
"total": {
|
|
16368
|
+
"type": "integer",
|
|
16369
|
+
"description": "Count of matching documents before pagination."
|
|
16370
|
+
},
|
|
16371
|
+
"hits": {
|
|
16372
|
+
"type": "array",
|
|
16373
|
+
"items": {
|
|
16374
|
+
"title": "FinderResultHitSchema",
|
|
16375
|
+
"type": "object",
|
|
16376
|
+
"description": "Single hit from the OpenSearch query. The `id` equals the underlying resource id (emailId, talentId, candidateId, jobId, ...) so the frontend can navigate directly to that resource. Additional fields vary by finder `type`.",
|
|
16377
|
+
"properties": {
|
|
16378
|
+
"id": {
|
|
16379
|
+
"type": "string",
|
|
16380
|
+
"description": "The underlying resource id (emailId / talentId / candidateId / jobId)."
|
|
16381
|
+
},
|
|
16382
|
+
"tenantId": {
|
|
16383
|
+
"type": "string"
|
|
16384
|
+
},
|
|
16385
|
+
"status": {
|
|
16386
|
+
"type": "string"
|
|
16387
|
+
},
|
|
16388
|
+
"source": {
|
|
16389
|
+
"type": "string"
|
|
16390
|
+
},
|
|
16391
|
+
"created": {
|
|
16392
|
+
"type": "string"
|
|
16393
|
+
},
|
|
16394
|
+
"shortCode": {
|
|
16395
|
+
"type": "string"
|
|
16396
|
+
}
|
|
16397
|
+
},
|
|
16398
|
+
"additionalProperties": true
|
|
16399
|
+
}
|
|
16400
|
+
}
|
|
16401
|
+
}
|
|
15310
16402
|
},
|
|
15311
16403
|
"status": {
|
|
15312
16404
|
"type": "string",
|