@smartytalent/openai-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 +1146 -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
|
}
|
|
@@ -539,6 +561,28 @@
|
|
|
539
561
|
}
|
|
540
562
|
}
|
|
541
563
|
}
|
|
564
|
+
},
|
|
565
|
+
"forms": {
|
|
566
|
+
"title": "TenantRelationshipsFormsSchema",
|
|
567
|
+
"type": "object",
|
|
568
|
+
"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.",
|
|
569
|
+
"properties": {
|
|
570
|
+
"data": {
|
|
571
|
+
"type": "array",
|
|
572
|
+
"items": {
|
|
573
|
+
"title": "TenantRelationshipsFormsDataSchema",
|
|
574
|
+
"type": "object",
|
|
575
|
+
"properties": {
|
|
576
|
+
"type": {
|
|
577
|
+
"type": "string"
|
|
578
|
+
},
|
|
579
|
+
"id": {
|
|
580
|
+
"type": "string"
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
}
|
|
542
586
|
}
|
|
543
587
|
}
|
|
544
588
|
}
|
|
@@ -6501,6 +6545,7 @@
|
|
|
6501
6545
|
"sent",
|
|
6502
6546
|
"suppressed",
|
|
6503
6547
|
"archived",
|
|
6548
|
+
"trashed",
|
|
6504
6549
|
"failed",
|
|
6505
6550
|
"pending"
|
|
6506
6551
|
]
|
|
@@ -6509,6 +6554,32 @@
|
|
|
6509
6554
|
"type": "string",
|
|
6510
6555
|
"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`)."
|
|
6511
6556
|
},
|
|
6557
|
+
"filterDirection": {
|
|
6558
|
+
"type": "string",
|
|
6559
|
+
"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.",
|
|
6560
|
+
"enum": [
|
|
6561
|
+
"inbound",
|
|
6562
|
+
"outbound"
|
|
6563
|
+
]
|
|
6564
|
+
},
|
|
6565
|
+
"filterIds": {
|
|
6566
|
+
"type": "string",
|
|
6567
|
+
"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."
|
|
6568
|
+
},
|
|
6569
|
+
"filterIsSystemSpam": {
|
|
6570
|
+
"type": "boolean",
|
|
6571
|
+
"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."
|
|
6572
|
+
},
|
|
6573
|
+
"sort": {
|
|
6574
|
+
"type": "string",
|
|
6575
|
+
"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.",
|
|
6576
|
+
"enum": [
|
|
6577
|
+
"-created",
|
|
6578
|
+
"created",
|
|
6579
|
+
"-modified",
|
|
6580
|
+
"modified"
|
|
6581
|
+
]
|
|
6582
|
+
},
|
|
6512
6583
|
"filterCreatedFrom": {
|
|
6513
6584
|
"type": "string",
|
|
6514
6585
|
"description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
|
|
@@ -6584,12 +6655,14 @@
|
|
|
6584
6655
|
"draft",
|
|
6585
6656
|
"scheduled",
|
|
6586
6657
|
"sent",
|
|
6658
|
+
"received",
|
|
6587
6659
|
"suppressed",
|
|
6588
6660
|
"archived",
|
|
6661
|
+
"trashed",
|
|
6589
6662
|
"failed",
|
|
6590
6663
|
"pending"
|
|
6591
6664
|
],
|
|
6592
|
-
"description": "Lifecycle status. draft = composing, scheduled = workflow owns the send, sent = delivered to SES, suppressed = SES bounce/complaint, archived = user soft
|
|
6665
|
+
"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."
|
|
6593
6666
|
},
|
|
6594
6667
|
"direction": {
|
|
6595
6668
|
"type": "string",
|
|
@@ -6620,26 +6693,18 @@
|
|
|
6620
6693
|
"description": "BCC recipients. Each entry is an RFC 5322 address string."
|
|
6621
6694
|
},
|
|
6622
6695
|
"subject": {
|
|
6623
|
-
"
|
|
6624
|
-
|
|
6625
|
-
|
|
6626
|
-
|
|
6627
|
-
|
|
6628
|
-
"type": "object",
|
|
6629
|
-
"additionalProperties": true
|
|
6630
|
-
}
|
|
6631
|
-
]
|
|
6696
|
+
"type": "object",
|
|
6697
|
+
"additionalProperties": {
|
|
6698
|
+
"type": "string"
|
|
6699
|
+
},
|
|
6700
|
+
"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`."
|
|
6632
6701
|
},
|
|
6633
6702
|
"body": {
|
|
6634
|
-
"
|
|
6635
|
-
|
|
6636
|
-
|
|
6637
|
-
|
|
6638
|
-
|
|
6639
|
-
"type": "object",
|
|
6640
|
-
"additionalProperties": true
|
|
6641
|
-
}
|
|
6642
|
-
]
|
|
6703
|
+
"type": "object",
|
|
6704
|
+
"additionalProperties": {
|
|
6705
|
+
"type": "string"
|
|
6706
|
+
},
|
|
6707
|
+
"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."
|
|
6643
6708
|
},
|
|
6644
6709
|
"shortCode": {
|
|
6645
6710
|
"type": "string"
|
|
@@ -6662,23 +6727,65 @@
|
|
|
6662
6727
|
"type": "object",
|
|
6663
6728
|
"properties": {
|
|
6664
6729
|
"fileName": {
|
|
6665
|
-
"type": "string"
|
|
6730
|
+
"type": "string",
|
|
6731
|
+
"description": "Display name shown in the mail client and used as the attachment filename on send."
|
|
6666
6732
|
},
|
|
6667
6733
|
"url": {
|
|
6668
|
-
"type": "string"
|
|
6734
|
+
"type": "string",
|
|
6735
|
+
"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."
|
|
6669
6736
|
},
|
|
6670
6737
|
"type": {
|
|
6671
6738
|
"type": "string",
|
|
6672
|
-
"description": "Resource type this attachment belongs to: jobs
|
|
6739
|
+
"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`."
|
|
6740
|
+
},
|
|
6741
|
+
"fileId": {
|
|
6742
|
+
"type": "string",
|
|
6743
|
+
"description": "When `type == \"files\"`, the file resource ID so the frontend can resolve the latest file metadata (status, processing state) without parsing the URL."
|
|
6744
|
+
},
|
|
6745
|
+
"size": {
|
|
6746
|
+
"type": "integer",
|
|
6747
|
+
"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."
|
|
6748
|
+
},
|
|
6749
|
+
"contentType": {
|
|
6750
|
+
"type": "string",
|
|
6751
|
+
"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."
|
|
6752
|
+
},
|
|
6753
|
+
"thumbnailUrl": {
|
|
6754
|
+
"type": "string",
|
|
6755
|
+
"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."
|
|
6673
6756
|
}
|
|
6674
6757
|
}
|
|
6675
6758
|
},
|
|
6676
|
-
"description": "Attachments
|
|
6759
|
+
"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."
|
|
6677
6760
|
},
|
|
6678
6761
|
"conversationLanguageCode": {
|
|
6679
6762
|
"type": "string",
|
|
6680
6763
|
"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."
|
|
6681
6764
|
},
|
|
6765
|
+
"parentEmailId": {
|
|
6766
|
+
"type": "string",
|
|
6767
|
+
"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."
|
|
6768
|
+
},
|
|
6769
|
+
"fromUserId": {
|
|
6770
|
+
"type": "string",
|
|
6771
|
+
"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."
|
|
6772
|
+
},
|
|
6773
|
+
"fromCandidateId": {
|
|
6774
|
+
"type": "string",
|
|
6775
|
+
"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."
|
|
6776
|
+
},
|
|
6777
|
+
"isSystemSpam": {
|
|
6778
|
+
"type": "boolean",
|
|
6779
|
+
"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)."
|
|
6780
|
+
},
|
|
6781
|
+
"scheduleId": {
|
|
6782
|
+
"type": "string",
|
|
6783
|
+
"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."
|
|
6784
|
+
},
|
|
6785
|
+
"scheduledFireAt": {
|
|
6786
|
+
"type": "string",
|
|
6787
|
+
"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."
|
|
6788
|
+
},
|
|
6682
6789
|
"ttl": {
|
|
6683
6790
|
"type": "string"
|
|
6684
6791
|
},
|
|
@@ -6806,6 +6913,25 @@
|
|
|
6806
6913
|
}
|
|
6807
6914
|
}
|
|
6808
6915
|
}
|
|
6916
|
+
},
|
|
6917
|
+
"schedule": {
|
|
6918
|
+
"title": "EmailRelationshipsScheduleSchema",
|
|
6919
|
+
"type": "object",
|
|
6920
|
+
"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.",
|
|
6921
|
+
"properties": {
|
|
6922
|
+
"data": {
|
|
6923
|
+
"title": "EmailRelationshipsScheduleDataSchema",
|
|
6924
|
+
"type": "object",
|
|
6925
|
+
"properties": {
|
|
6926
|
+
"type": {
|
|
6927
|
+
"type": "string"
|
|
6928
|
+
},
|
|
6929
|
+
"id": {
|
|
6930
|
+
"type": "string"
|
|
6931
|
+
}
|
|
6932
|
+
}
|
|
6933
|
+
}
|
|
6934
|
+
}
|
|
6809
6935
|
}
|
|
6810
6936
|
}
|
|
6811
6937
|
},
|
|
@@ -6884,12 +7010,14 @@
|
|
|
6884
7010
|
"draft",
|
|
6885
7011
|
"scheduled",
|
|
6886
7012
|
"sent",
|
|
7013
|
+
"received",
|
|
6887
7014
|
"suppressed",
|
|
6888
7015
|
"archived",
|
|
7016
|
+
"trashed",
|
|
6889
7017
|
"failed",
|
|
6890
7018
|
"pending"
|
|
6891
7019
|
],
|
|
6892
|
-
"description": "Lifecycle status. draft = composing, scheduled = workflow owns the send, sent = delivered to SES, suppressed = SES bounce/complaint, archived = user soft
|
|
7020
|
+
"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."
|
|
6893
7021
|
},
|
|
6894
7022
|
"direction": {
|
|
6895
7023
|
"type": "string",
|
|
@@ -6920,26 +7048,18 @@
|
|
|
6920
7048
|
"description": "BCC recipients. Each entry is an RFC 5322 address string."
|
|
6921
7049
|
},
|
|
6922
7050
|
"subject": {
|
|
6923
|
-
"
|
|
6924
|
-
|
|
6925
|
-
|
|
6926
|
-
|
|
6927
|
-
|
|
6928
|
-
"type": "object",
|
|
6929
|
-
"additionalProperties": true
|
|
6930
|
-
}
|
|
6931
|
-
]
|
|
7051
|
+
"type": "object",
|
|
7052
|
+
"additionalProperties": {
|
|
7053
|
+
"type": "string"
|
|
7054
|
+
},
|
|
7055
|
+
"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`."
|
|
6932
7056
|
},
|
|
6933
7057
|
"body": {
|
|
6934
|
-
"
|
|
6935
|
-
|
|
6936
|
-
|
|
6937
|
-
|
|
6938
|
-
|
|
6939
|
-
"type": "object",
|
|
6940
|
-
"additionalProperties": true
|
|
6941
|
-
}
|
|
6942
|
-
]
|
|
7058
|
+
"type": "object",
|
|
7059
|
+
"additionalProperties": {
|
|
7060
|
+
"type": "string"
|
|
7061
|
+
},
|
|
7062
|
+
"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."
|
|
6943
7063
|
},
|
|
6944
7064
|
"shortCode": {
|
|
6945
7065
|
"type": "string"
|
|
@@ -6962,23 +7082,65 @@
|
|
|
6962
7082
|
"type": "object",
|
|
6963
7083
|
"properties": {
|
|
6964
7084
|
"fileName": {
|
|
6965
|
-
"type": "string"
|
|
7085
|
+
"type": "string",
|
|
7086
|
+
"description": "Display name shown in the mail client and used as the attachment filename on send."
|
|
6966
7087
|
},
|
|
6967
7088
|
"url": {
|
|
6968
|
-
"type": "string"
|
|
7089
|
+
"type": "string",
|
|
7090
|
+
"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."
|
|
6969
7091
|
},
|
|
6970
7092
|
"type": {
|
|
6971
7093
|
"type": "string",
|
|
6972
|
-
"description": "Resource type this attachment belongs to: jobs
|
|
7094
|
+
"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`."
|
|
7095
|
+
},
|
|
7096
|
+
"fileId": {
|
|
7097
|
+
"type": "string",
|
|
7098
|
+
"description": "When `type == \"files\"`, the file resource ID so the frontend can resolve the latest file metadata (status, processing state) without parsing the URL."
|
|
7099
|
+
},
|
|
7100
|
+
"size": {
|
|
7101
|
+
"type": "integer",
|
|
7102
|
+
"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."
|
|
7103
|
+
},
|
|
7104
|
+
"contentType": {
|
|
7105
|
+
"type": "string",
|
|
7106
|
+
"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."
|
|
7107
|
+
},
|
|
7108
|
+
"thumbnailUrl": {
|
|
7109
|
+
"type": "string",
|
|
7110
|
+
"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."
|
|
6973
7111
|
}
|
|
6974
7112
|
}
|
|
6975
7113
|
},
|
|
6976
|
-
"description": "Attachments
|
|
7114
|
+
"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."
|
|
6977
7115
|
},
|
|
6978
7116
|
"conversationLanguageCode": {
|
|
6979
7117
|
"type": "string",
|
|
6980
7118
|
"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."
|
|
6981
7119
|
},
|
|
7120
|
+
"parentEmailId": {
|
|
7121
|
+
"type": "string",
|
|
7122
|
+
"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."
|
|
7123
|
+
},
|
|
7124
|
+
"fromUserId": {
|
|
7125
|
+
"type": "string",
|
|
7126
|
+
"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."
|
|
7127
|
+
},
|
|
7128
|
+
"fromCandidateId": {
|
|
7129
|
+
"type": "string",
|
|
7130
|
+
"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."
|
|
7131
|
+
},
|
|
7132
|
+
"isSystemSpam": {
|
|
7133
|
+
"type": "boolean",
|
|
7134
|
+
"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)."
|
|
7135
|
+
},
|
|
7136
|
+
"scheduleId": {
|
|
7137
|
+
"type": "string",
|
|
7138
|
+
"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."
|
|
7139
|
+
},
|
|
7140
|
+
"scheduledFireAt": {
|
|
7141
|
+
"type": "string",
|
|
7142
|
+
"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."
|
|
7143
|
+
},
|
|
6982
7144
|
"ttl": {
|
|
6983
7145
|
"type": "string"
|
|
6984
7146
|
},
|
|
@@ -7020,7 +7182,16 @@
|
|
|
7020
7182
|
"description": "Delete Email",
|
|
7021
7183
|
"parameters": {
|
|
7022
7184
|
"type": "object",
|
|
7023
|
-
"properties": {
|
|
7185
|
+
"properties": {
|
|
7186
|
+
"permanentDelete": {
|
|
7187
|
+
"type": "string",
|
|
7188
|
+
"description": "Set to true for permanent deletion (row removed from DynamoDB). Defaults to false (soft delete to Trash).",
|
|
7189
|
+
"enum": [
|
|
7190
|
+
"true",
|
|
7191
|
+
"false"
|
|
7192
|
+
]
|
|
7193
|
+
}
|
|
7194
|
+
}
|
|
7024
7195
|
}
|
|
7025
7196
|
}
|
|
7026
7197
|
},
|
|
@@ -7126,6 +7297,17 @@
|
|
|
7126
7297
|
"status": {
|
|
7127
7298
|
"type": "string"
|
|
7128
7299
|
},
|
|
7300
|
+
"kind": {
|
|
7301
|
+
"type": "string",
|
|
7302
|
+
"enum": [
|
|
7303
|
+
"jobBrief",
|
|
7304
|
+
"candidateSubmission",
|
|
7305
|
+
"talentSubmission",
|
|
7306
|
+
"general"
|
|
7307
|
+
],
|
|
7308
|
+
"default": "general",
|
|
7309
|
+
"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`)."
|
|
7310
|
+
},
|
|
7129
7311
|
"short_code": {
|
|
7130
7312
|
"type": "string"
|
|
7131
7313
|
},
|
|
@@ -7252,6 +7434,17 @@
|
|
|
7252
7434
|
"status": {
|
|
7253
7435
|
"type": "string"
|
|
7254
7436
|
},
|
|
7437
|
+
"kind": {
|
|
7438
|
+
"type": "string",
|
|
7439
|
+
"enum": [
|
|
7440
|
+
"jobBrief",
|
|
7441
|
+
"candidateSubmission",
|
|
7442
|
+
"talentSubmission",
|
|
7443
|
+
"general"
|
|
7444
|
+
],
|
|
7445
|
+
"default": "general",
|
|
7446
|
+
"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`)."
|
|
7447
|
+
},
|
|
7255
7448
|
"short_code": {
|
|
7256
7449
|
"type": "string"
|
|
7257
7450
|
},
|
|
@@ -8264,10 +8457,6 @@
|
|
|
8264
8457
|
"attributes": {
|
|
8265
8458
|
"title": "ScheduleAttributesSchema",
|
|
8266
8459
|
"type": "object",
|
|
8267
|
-
"required": [
|
|
8268
|
-
"fireAt",
|
|
8269
|
-
"target"
|
|
8270
|
-
],
|
|
8271
8460
|
"properties": {
|
|
8272
8461
|
"name": {
|
|
8273
8462
|
"type": "string",
|
|
@@ -8279,8 +8468,10 @@
|
|
|
8279
8468
|
"pending",
|
|
8280
8469
|
"fired",
|
|
8281
8470
|
"cancelled",
|
|
8282
|
-
"failed"
|
|
8283
|
-
|
|
8471
|
+
"failed",
|
|
8472
|
+
"paused"
|
|
8473
|
+
],
|
|
8474
|
+
"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`."
|
|
8284
8475
|
},
|
|
8285
8476
|
"fireAt": {
|
|
8286
8477
|
"type": "string",
|
|
@@ -8427,6 +8618,24 @@
|
|
|
8427
8618
|
}
|
|
8428
8619
|
}
|
|
8429
8620
|
}
|
|
8621
|
+
},
|
|
8622
|
+
"email": {
|
|
8623
|
+
"title": "ScheduleRelationshipsEmailSchema",
|
|
8624
|
+
"type": "object",
|
|
8625
|
+
"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.",
|
|
8626
|
+
"properties": {
|
|
8627
|
+
"data": {
|
|
8628
|
+
"type": "object",
|
|
8629
|
+
"properties": {
|
|
8630
|
+
"type": {
|
|
8631
|
+
"type": "string"
|
|
8632
|
+
},
|
|
8633
|
+
"id": {
|
|
8634
|
+
"type": "string"
|
|
8635
|
+
}
|
|
8636
|
+
}
|
|
8637
|
+
}
|
|
8638
|
+
}
|
|
8430
8639
|
}
|
|
8431
8640
|
}
|
|
8432
8641
|
}
|
|
@@ -8505,10 +8714,6 @@
|
|
|
8505
8714
|
"attributes": {
|
|
8506
8715
|
"title": "ScheduleAttributesSchema",
|
|
8507
8716
|
"type": "object",
|
|
8508
|
-
"required": [
|
|
8509
|
-
"fireAt",
|
|
8510
|
-
"target"
|
|
8511
|
-
],
|
|
8512
8717
|
"properties": {
|
|
8513
8718
|
"name": {
|
|
8514
8719
|
"type": "string",
|
|
@@ -8520,8 +8725,10 @@
|
|
|
8520
8725
|
"pending",
|
|
8521
8726
|
"fired",
|
|
8522
8727
|
"cancelled",
|
|
8523
|
-
"failed"
|
|
8524
|
-
|
|
8728
|
+
"failed",
|
|
8729
|
+
"paused"
|
|
8730
|
+
],
|
|
8731
|
+
"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`."
|
|
8525
8732
|
},
|
|
8526
8733
|
"fireAt": {
|
|
8527
8734
|
"type": "string",
|
|
@@ -8668,6 +8875,24 @@
|
|
|
8668
8875
|
}
|
|
8669
8876
|
}
|
|
8670
8877
|
}
|
|
8878
|
+
},
|
|
8879
|
+
"email": {
|
|
8880
|
+
"title": "ScheduleRelationshipsEmailSchema",
|
|
8881
|
+
"type": "object",
|
|
8882
|
+
"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.",
|
|
8883
|
+
"properties": {
|
|
8884
|
+
"data": {
|
|
8885
|
+
"type": "object",
|
|
8886
|
+
"properties": {
|
|
8887
|
+
"type": {
|
|
8888
|
+
"type": "string"
|
|
8889
|
+
},
|
|
8890
|
+
"id": {
|
|
8891
|
+
"type": "string"
|
|
8892
|
+
}
|
|
8893
|
+
}
|
|
8894
|
+
}
|
|
8895
|
+
}
|
|
8671
8896
|
}
|
|
8672
8897
|
}
|
|
8673
8898
|
}
|
|
@@ -11645,45 +11870,37 @@
|
|
|
11645
11870
|
{
|
|
11646
11871
|
"type": "function",
|
|
11647
11872
|
"function": {
|
|
11648
|
-
"name": "
|
|
11649
|
-
"description": "List
|
|
11873
|
+
"name": "list_states",
|
|
11874
|
+
"description": "List States",
|
|
11650
11875
|
"parameters": {
|
|
11651
11876
|
"type": "object",
|
|
11652
11877
|
"properties": {
|
|
11653
|
-
"
|
|
11878
|
+
"filterResourceType": {
|
|
11654
11879
|
"type": "string",
|
|
11655
|
-
"description": "
|
|
11880
|
+
"description": "Only return states for this resource type.",
|
|
11656
11881
|
"enum": [
|
|
11657
|
-
"
|
|
11658
|
-
"
|
|
11659
|
-
"
|
|
11660
|
-
"
|
|
11882
|
+
"emails",
|
|
11883
|
+
"candidates",
|
|
11884
|
+
"conversations",
|
|
11885
|
+
"jobs",
|
|
11886
|
+
"talents",
|
|
11887
|
+
"personas",
|
|
11888
|
+
"reports",
|
|
11889
|
+
"tasks"
|
|
11661
11890
|
]
|
|
11662
11891
|
},
|
|
11663
|
-
"
|
|
11664
|
-
"type": "string",
|
|
11665
|
-
"description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
|
|
11666
|
-
},
|
|
11667
|
-
"filterCreatedTo": {
|
|
11668
|
-
"type": "string",
|
|
11669
|
-
"description": "Filters results to include only those created up to the specified date and time. The value must be in ISO 8601 format."
|
|
11670
|
-
},
|
|
11671
|
-
"filterModifiedFrom": {
|
|
11892
|
+
"filterResourceIds": {
|
|
11672
11893
|
"type": "string",
|
|
11673
|
-
"description": "
|
|
11894
|
+
"description": "Comma-separated list of resource ids to batch-fetch. Requires `filterResourceType`."
|
|
11674
11895
|
},
|
|
11675
|
-
"
|
|
11896
|
+
"folder": {
|
|
11676
11897
|
"type": "string",
|
|
11677
|
-
"description": "
|
|
11898
|
+
"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."
|
|
11678
11899
|
},
|
|
11679
11900
|
"pageSize": {
|
|
11680
11901
|
"type": "integer",
|
|
11681
11902
|
"description": "Specifies the number of items to retrieve per page. The maximum value is 100."
|
|
11682
11903
|
},
|
|
11683
|
-
"pageNumber": {
|
|
11684
|
-
"type": "integer",
|
|
11685
|
-
"description": "Specifies the page number to retrieve. Used for traditional pagination."
|
|
11686
|
-
},
|
|
11687
11904
|
"pageAfter": {
|
|
11688
11905
|
"type": "string",
|
|
11689
11906
|
"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."
|
|
@@ -11699,10 +11916,747 @@
|
|
|
11699
11916
|
{
|
|
11700
11917
|
"type": "function",
|
|
11701
11918
|
"function": {
|
|
11702
|
-
"name": "
|
|
11703
|
-
"description": "
|
|
11919
|
+
"name": "create_state",
|
|
11920
|
+
"description": "Upsert State",
|
|
11704
11921
|
"parameters": {
|
|
11705
|
-
"title": "
|
|
11922
|
+
"title": "CreateStateRequestBody",
|
|
11923
|
+
"type": "object",
|
|
11924
|
+
"required": [
|
|
11925
|
+
"data"
|
|
11926
|
+
],
|
|
11927
|
+
"properties": {
|
|
11928
|
+
"data": {
|
|
11929
|
+
"title": "CreateStateRequestBodyData",
|
|
11930
|
+
"type": "object",
|
|
11931
|
+
"required": [
|
|
11932
|
+
"type",
|
|
11933
|
+
"attributes"
|
|
11934
|
+
],
|
|
11935
|
+
"properties": {
|
|
11936
|
+
"type": {
|
|
11937
|
+
"type": "string",
|
|
11938
|
+
"enum": [
|
|
11939
|
+
"states"
|
|
11940
|
+
]
|
|
11941
|
+
},
|
|
11942
|
+
"attributes": {
|
|
11943
|
+
"title": "StateAttributesSchema",
|
|
11944
|
+
"type": "object",
|
|
11945
|
+
"properties": {
|
|
11946
|
+
"userId": {
|
|
11947
|
+
"type": "string",
|
|
11948
|
+
"description": "Owner of this state row. Always the authenticated user; never set by the client."
|
|
11949
|
+
},
|
|
11950
|
+
"resourceType": {
|
|
11951
|
+
"type": "string",
|
|
11952
|
+
"enum": [
|
|
11953
|
+
"emails",
|
|
11954
|
+
"candidates",
|
|
11955
|
+
"conversations",
|
|
11956
|
+
"jobs",
|
|
11957
|
+
"talents",
|
|
11958
|
+
"personas",
|
|
11959
|
+
"reports",
|
|
11960
|
+
"tasks"
|
|
11961
|
+
],
|
|
11962
|
+
"description": "The kind of resource this state describes. Lives in the composite id as `{resourceType}:{resourceId}`."
|
|
11963
|
+
},
|
|
11964
|
+
"resourceId": {
|
|
11965
|
+
"type": "string",
|
|
11966
|
+
"description": "Id of the resource this state describes (e.g. an emailId, candidateId)."
|
|
11967
|
+
},
|
|
11968
|
+
"isSeen": {
|
|
11969
|
+
"type": "boolean",
|
|
11970
|
+
"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."
|
|
11971
|
+
},
|
|
11972
|
+
"isStarred": {
|
|
11973
|
+
"type": "boolean",
|
|
11974
|
+
"description": "True if the user has starred/favourited the resource."
|
|
11975
|
+
},
|
|
11976
|
+
"isSpam": {
|
|
11977
|
+
"type": "boolean",
|
|
11978
|
+
"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."
|
|
11979
|
+
},
|
|
11980
|
+
"seenAt": {
|
|
11981
|
+
"type": "string",
|
|
11982
|
+
"description": "ISO 8601 timestamp of the user's most recent open. Absent means never seen."
|
|
11983
|
+
},
|
|
11984
|
+
"starredAt": {
|
|
11985
|
+
"type": "string",
|
|
11986
|
+
"description": "ISO 8601 timestamp of when the user starred the resource. Absent means not starred; used as the sort key for the `Starred` folder."
|
|
11987
|
+
},
|
|
11988
|
+
"spamAt": {
|
|
11989
|
+
"type": "string",
|
|
11990
|
+
"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."
|
|
11991
|
+
},
|
|
11992
|
+
"resourceCreatedAt": {
|
|
11993
|
+
"type": "string",
|
|
11994
|
+
"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."
|
|
11995
|
+
},
|
|
11996
|
+
"flags": {
|
|
11997
|
+
"type": "object",
|
|
11998
|
+
"additionalProperties": true,
|
|
11999
|
+
"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."
|
|
12000
|
+
},
|
|
12001
|
+
"timestamps": {
|
|
12002
|
+
"title": "ResourceTimestampsSchema",
|
|
12003
|
+
"type": "object",
|
|
12004
|
+
"properties": {
|
|
12005
|
+
"created": {
|
|
12006
|
+
"type": "string",
|
|
12007
|
+
"format": "date-time"
|
|
12008
|
+
},
|
|
12009
|
+
"modified": {
|
|
12010
|
+
"type": "string",
|
|
12011
|
+
"format": "date-time"
|
|
12012
|
+
}
|
|
12013
|
+
}
|
|
12014
|
+
}
|
|
12015
|
+
}
|
|
12016
|
+
}
|
|
12017
|
+
}
|
|
12018
|
+
}
|
|
12019
|
+
}
|
|
12020
|
+
}
|
|
12021
|
+
}
|
|
12022
|
+
},
|
|
12023
|
+
{
|
|
12024
|
+
"type": "function",
|
|
12025
|
+
"function": {
|
|
12026
|
+
"name": "states_options",
|
|
12027
|
+
"description": "States Options",
|
|
12028
|
+
"parameters": {
|
|
12029
|
+
"type": "object",
|
|
12030
|
+
"properties": {}
|
|
12031
|
+
}
|
|
12032
|
+
}
|
|
12033
|
+
},
|
|
12034
|
+
{
|
|
12035
|
+
"type": "function",
|
|
12036
|
+
"function": {
|
|
12037
|
+
"name": "show_state",
|
|
12038
|
+
"description": "Show State",
|
|
12039
|
+
"parameters": {
|
|
12040
|
+
"type": "object",
|
|
12041
|
+
"properties": {}
|
|
12042
|
+
}
|
|
12043
|
+
}
|
|
12044
|
+
},
|
|
12045
|
+
{
|
|
12046
|
+
"type": "function",
|
|
12047
|
+
"function": {
|
|
12048
|
+
"name": "update_state",
|
|
12049
|
+
"description": "Update State",
|
|
12050
|
+
"parameters": {
|
|
12051
|
+
"title": "UpdateStateRequestBody",
|
|
12052
|
+
"type": "object",
|
|
12053
|
+
"required": [
|
|
12054
|
+
"data"
|
|
12055
|
+
],
|
|
12056
|
+
"properties": {
|
|
12057
|
+
"data": {
|
|
12058
|
+
"title": "UpdateStateRequestBodyData",
|
|
12059
|
+
"type": "object",
|
|
12060
|
+
"required": [
|
|
12061
|
+
"type",
|
|
12062
|
+
"id",
|
|
12063
|
+
"attributes"
|
|
12064
|
+
],
|
|
12065
|
+
"properties": {
|
|
12066
|
+
"type": {
|
|
12067
|
+
"type": "string",
|
|
12068
|
+
"enum": [
|
|
12069
|
+
"states"
|
|
12070
|
+
]
|
|
12071
|
+
},
|
|
12072
|
+
"id": {
|
|
12073
|
+
"type": "string"
|
|
12074
|
+
},
|
|
12075
|
+
"attributes": {
|
|
12076
|
+
"title": "StateAttributesSchema",
|
|
12077
|
+
"type": "object",
|
|
12078
|
+
"properties": {
|
|
12079
|
+
"userId": {
|
|
12080
|
+
"type": "string",
|
|
12081
|
+
"description": "Owner of this state row. Always the authenticated user; never set by the client."
|
|
12082
|
+
},
|
|
12083
|
+
"resourceType": {
|
|
12084
|
+
"type": "string",
|
|
12085
|
+
"enum": [
|
|
12086
|
+
"emails",
|
|
12087
|
+
"candidates",
|
|
12088
|
+
"conversations",
|
|
12089
|
+
"jobs",
|
|
12090
|
+
"talents",
|
|
12091
|
+
"personas",
|
|
12092
|
+
"reports",
|
|
12093
|
+
"tasks"
|
|
12094
|
+
],
|
|
12095
|
+
"description": "The kind of resource this state describes. Lives in the composite id as `{resourceType}:{resourceId}`."
|
|
12096
|
+
},
|
|
12097
|
+
"resourceId": {
|
|
12098
|
+
"type": "string",
|
|
12099
|
+
"description": "Id of the resource this state describes (e.g. an emailId, candidateId)."
|
|
12100
|
+
},
|
|
12101
|
+
"isSeen": {
|
|
12102
|
+
"type": "boolean",
|
|
12103
|
+
"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."
|
|
12104
|
+
},
|
|
12105
|
+
"isStarred": {
|
|
12106
|
+
"type": "boolean",
|
|
12107
|
+
"description": "True if the user has starred/favourited the resource."
|
|
12108
|
+
},
|
|
12109
|
+
"isSpam": {
|
|
12110
|
+
"type": "boolean",
|
|
12111
|
+
"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."
|
|
12112
|
+
},
|
|
12113
|
+
"seenAt": {
|
|
12114
|
+
"type": "string",
|
|
12115
|
+
"description": "ISO 8601 timestamp of the user's most recent open. Absent means never seen."
|
|
12116
|
+
},
|
|
12117
|
+
"starredAt": {
|
|
12118
|
+
"type": "string",
|
|
12119
|
+
"description": "ISO 8601 timestamp of when the user starred the resource. Absent means not starred; used as the sort key for the `Starred` folder."
|
|
12120
|
+
},
|
|
12121
|
+
"spamAt": {
|
|
12122
|
+
"type": "string",
|
|
12123
|
+
"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."
|
|
12124
|
+
},
|
|
12125
|
+
"resourceCreatedAt": {
|
|
12126
|
+
"type": "string",
|
|
12127
|
+
"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."
|
|
12128
|
+
},
|
|
12129
|
+
"flags": {
|
|
12130
|
+
"type": "object",
|
|
12131
|
+
"additionalProperties": true,
|
|
12132
|
+
"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."
|
|
12133
|
+
},
|
|
12134
|
+
"timestamps": {
|
|
12135
|
+
"title": "ResourceTimestampsSchema",
|
|
12136
|
+
"type": "object",
|
|
12137
|
+
"properties": {
|
|
12138
|
+
"created": {
|
|
12139
|
+
"type": "string",
|
|
12140
|
+
"format": "date-time"
|
|
12141
|
+
},
|
|
12142
|
+
"modified": {
|
|
12143
|
+
"type": "string",
|
|
12144
|
+
"format": "date-time"
|
|
12145
|
+
}
|
|
12146
|
+
}
|
|
12147
|
+
}
|
|
12148
|
+
}
|
|
12149
|
+
}
|
|
12150
|
+
}
|
|
12151
|
+
}
|
|
12152
|
+
}
|
|
12153
|
+
}
|
|
12154
|
+
}
|
|
12155
|
+
},
|
|
12156
|
+
{
|
|
12157
|
+
"type": "function",
|
|
12158
|
+
"function": {
|
|
12159
|
+
"name": "delete_state",
|
|
12160
|
+
"description": "Delete State",
|
|
12161
|
+
"parameters": {
|
|
12162
|
+
"type": "object",
|
|
12163
|
+
"properties": {}
|
|
12164
|
+
}
|
|
12165
|
+
}
|
|
12166
|
+
},
|
|
12167
|
+
{
|
|
12168
|
+
"type": "function",
|
|
12169
|
+
"function": {
|
|
12170
|
+
"name": "state_options",
|
|
12171
|
+
"description": "State Options",
|
|
12172
|
+
"parameters": {
|
|
12173
|
+
"type": "object",
|
|
12174
|
+
"properties": {}
|
|
12175
|
+
}
|
|
12176
|
+
}
|
|
12177
|
+
},
|
|
12178
|
+
{
|
|
12179
|
+
"type": "function",
|
|
12180
|
+
"function": {
|
|
12181
|
+
"name": "list_aggregates",
|
|
12182
|
+
"description": "List Aggregates",
|
|
12183
|
+
"parameters": {
|
|
12184
|
+
"type": "object",
|
|
12185
|
+
"properties": {
|
|
12186
|
+
"filterResourceType": {
|
|
12187
|
+
"type": "string",
|
|
12188
|
+
"description": "Only return aggregates for this resource type (e.g. emails).",
|
|
12189
|
+
"enum": [
|
|
12190
|
+
"emails",
|
|
12191
|
+
"candidates",
|
|
12192
|
+
"conversations",
|
|
12193
|
+
"jobs",
|
|
12194
|
+
"talents",
|
|
12195
|
+
"personas",
|
|
12196
|
+
"reports",
|
|
12197
|
+
"tasks"
|
|
12198
|
+
]
|
|
12199
|
+
},
|
|
12200
|
+
"filterDimension": {
|
|
12201
|
+
"type": "string",
|
|
12202
|
+
"description": "Only return aggregates for this dimension (e.g. byFolder, byStatus). Triggers the `meta.by{Dimension}` overlay in the response."
|
|
12203
|
+
},
|
|
12204
|
+
"filterCategory": {
|
|
12205
|
+
"type": "string",
|
|
12206
|
+
"description": "Only return aggregates for this category within the dimension (e.g. received, sent)."
|
|
12207
|
+
},
|
|
12208
|
+
"filterKind": {
|
|
12209
|
+
"type": "string",
|
|
12210
|
+
"description": "Only return aggregates for this projection kind.",
|
|
12211
|
+
"enum": [
|
|
12212
|
+
"total",
|
|
12213
|
+
"seen",
|
|
12214
|
+
"unseen"
|
|
12215
|
+
]
|
|
12216
|
+
},
|
|
12217
|
+
"pageSize": {
|
|
12218
|
+
"type": "integer",
|
|
12219
|
+
"description": "Specifies the number of items to retrieve per page. The maximum value is 100."
|
|
12220
|
+
},
|
|
12221
|
+
"pageAfter": {
|
|
12222
|
+
"type": "string",
|
|
12223
|
+
"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."
|
|
12224
|
+
},
|
|
12225
|
+
"pageBefore": {
|
|
12226
|
+
"type": "string",
|
|
12227
|
+
"description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
|
|
12228
|
+
}
|
|
12229
|
+
}
|
|
12230
|
+
}
|
|
12231
|
+
}
|
|
12232
|
+
},
|
|
12233
|
+
{
|
|
12234
|
+
"type": "function",
|
|
12235
|
+
"function": {
|
|
12236
|
+
"name": "aggregates_options",
|
|
12237
|
+
"description": "Aggregates Options",
|
|
12238
|
+
"parameters": {
|
|
12239
|
+
"type": "object",
|
|
12240
|
+
"properties": {}
|
|
12241
|
+
}
|
|
12242
|
+
}
|
|
12243
|
+
},
|
|
12244
|
+
{
|
|
12245
|
+
"type": "function",
|
|
12246
|
+
"function": {
|
|
12247
|
+
"name": "show_aggregate",
|
|
12248
|
+
"description": "Show Aggregate",
|
|
12249
|
+
"parameters": {
|
|
12250
|
+
"type": "object",
|
|
12251
|
+
"properties": {}
|
|
12252
|
+
}
|
|
12253
|
+
}
|
|
12254
|
+
},
|
|
12255
|
+
{
|
|
12256
|
+
"type": "function",
|
|
12257
|
+
"function": {
|
|
12258
|
+
"name": "update_aggregate",
|
|
12259
|
+
"description": "Update Aggregate (admin)",
|
|
12260
|
+
"parameters": {
|
|
12261
|
+
"title": "UpdateAggregateRequestBody",
|
|
12262
|
+
"type": "object",
|
|
12263
|
+
"required": [
|
|
12264
|
+
"data"
|
|
12265
|
+
],
|
|
12266
|
+
"properties": {
|
|
12267
|
+
"data": {
|
|
12268
|
+
"title": "UpdateAggregateRequestBodyData",
|
|
12269
|
+
"type": "object",
|
|
12270
|
+
"required": [
|
|
12271
|
+
"type",
|
|
12272
|
+
"id",
|
|
12273
|
+
"attributes"
|
|
12274
|
+
],
|
|
12275
|
+
"properties": {
|
|
12276
|
+
"type": {
|
|
12277
|
+
"type": "string",
|
|
12278
|
+
"enum": [
|
|
12279
|
+
"aggregates"
|
|
12280
|
+
]
|
|
12281
|
+
},
|
|
12282
|
+
"id": {
|
|
12283
|
+
"type": "string"
|
|
12284
|
+
},
|
|
12285
|
+
"attributes": {
|
|
12286
|
+
"title": "AggregateAttributesSchema",
|
|
12287
|
+
"type": "object",
|
|
12288
|
+
"properties": {
|
|
12289
|
+
"resourceType": {
|
|
12290
|
+
"type": "string",
|
|
12291
|
+
"description": "The resource being counted (e.g. `emails`, `candidates`). Matches the `resourceType` enum used by the state service."
|
|
12292
|
+
},
|
|
12293
|
+
"dimension": {
|
|
12294
|
+
"type": "string",
|
|
12295
|
+
"description": "The categorisation axis (e.g. `byFolder` for emails, `byStatus` for candidates). Each owning service publishes its own dimensions."
|
|
12296
|
+
},
|
|
12297
|
+
"category": {
|
|
12298
|
+
"type": "string",
|
|
12299
|
+
"description": "A specific value within the dimension (e.g. `received`, `sent`, `draft` when dimension=byFolder). Lives in the composite id between dimension and kind."
|
|
12300
|
+
},
|
|
12301
|
+
"kind": {
|
|
12302
|
+
"type": "string",
|
|
12303
|
+
"enum": [
|
|
12304
|
+
"total",
|
|
12305
|
+
"unseen",
|
|
12306
|
+
"seen"
|
|
12307
|
+
],
|
|
12308
|
+
"description": "Which projection of the category this row holds. `total` counts every resource; `seen` counts states with isSeen=true; `unseen` is total minus seen."
|
|
12309
|
+
},
|
|
12310
|
+
"value": {
|
|
12311
|
+
"type": "integer",
|
|
12312
|
+
"description": "Current counter value. Updated via atomic ADD on event consumption; admin PATCH allows manual correction for drift recovery."
|
|
12313
|
+
},
|
|
12314
|
+
"timestamps": {
|
|
12315
|
+
"title": "ResourceTimestampsSchema",
|
|
12316
|
+
"type": "object",
|
|
12317
|
+
"properties": {
|
|
12318
|
+
"created": {
|
|
12319
|
+
"type": "string",
|
|
12320
|
+
"format": "date-time"
|
|
12321
|
+
},
|
|
12322
|
+
"modified": {
|
|
12323
|
+
"type": "string",
|
|
12324
|
+
"format": "date-time"
|
|
12325
|
+
}
|
|
12326
|
+
}
|
|
12327
|
+
}
|
|
12328
|
+
}
|
|
12329
|
+
}
|
|
12330
|
+
}
|
|
12331
|
+
}
|
|
12332
|
+
}
|
|
12333
|
+
}
|
|
12334
|
+
}
|
|
12335
|
+
},
|
|
12336
|
+
{
|
|
12337
|
+
"type": "function",
|
|
12338
|
+
"function": {
|
|
12339
|
+
"name": "aggregate_options",
|
|
12340
|
+
"description": "Aggregate Options",
|
|
12341
|
+
"parameters": {
|
|
12342
|
+
"type": "object",
|
|
12343
|
+
"properties": {}
|
|
12344
|
+
}
|
|
12345
|
+
}
|
|
12346
|
+
},
|
|
12347
|
+
{
|
|
12348
|
+
"type": "function",
|
|
12349
|
+
"function": {
|
|
12350
|
+
"name": "list_labels",
|
|
12351
|
+
"description": "List Labels",
|
|
12352
|
+
"parameters": {
|
|
12353
|
+
"type": "object",
|
|
12354
|
+
"properties": {
|
|
12355
|
+
"filterStatus": {
|
|
12356
|
+
"type": "string",
|
|
12357
|
+
"description": "filterStatus parameter",
|
|
12358
|
+
"enum": [
|
|
12359
|
+
"active",
|
|
12360
|
+
"archived"
|
|
12361
|
+
]
|
|
12362
|
+
},
|
|
12363
|
+
"pageSize": {
|
|
12364
|
+
"type": "integer",
|
|
12365
|
+
"description": "Specifies the number of items to retrieve per page. The maximum value is 100."
|
|
12366
|
+
}
|
|
12367
|
+
}
|
|
12368
|
+
}
|
|
12369
|
+
}
|
|
12370
|
+
},
|
|
12371
|
+
{
|
|
12372
|
+
"type": "function",
|
|
12373
|
+
"function": {
|
|
12374
|
+
"name": "create_label",
|
|
12375
|
+
"description": "Create Label",
|
|
12376
|
+
"parameters": {
|
|
12377
|
+
"title": "CreateLabelRequestBody",
|
|
12378
|
+
"type": "object",
|
|
12379
|
+
"required": [
|
|
12380
|
+
"data"
|
|
12381
|
+
],
|
|
12382
|
+
"properties": {
|
|
12383
|
+
"data": {
|
|
12384
|
+
"title": "CreateLabelRequestBodyData",
|
|
12385
|
+
"type": "object",
|
|
12386
|
+
"required": [
|
|
12387
|
+
"type",
|
|
12388
|
+
"attributes"
|
|
12389
|
+
],
|
|
12390
|
+
"properties": {
|
|
12391
|
+
"type": {
|
|
12392
|
+
"type": "string",
|
|
12393
|
+
"enum": [
|
|
12394
|
+
"labels"
|
|
12395
|
+
]
|
|
12396
|
+
},
|
|
12397
|
+
"attributes": {
|
|
12398
|
+
"title": "LabelAttributesSchema",
|
|
12399
|
+
"type": "object",
|
|
12400
|
+
"properties": {
|
|
12401
|
+
"name": {
|
|
12402
|
+
"type": "string",
|
|
12403
|
+
"description": "Display name. Unique within a scope by convention but not enforced."
|
|
12404
|
+
},
|
|
12405
|
+
"color": {
|
|
12406
|
+
"type": "string",
|
|
12407
|
+
"description": "Hex or CSS-named color the UI uses to render the label pill."
|
|
12408
|
+
},
|
|
12409
|
+
"description": {
|
|
12410
|
+
"type": "string"
|
|
12411
|
+
},
|
|
12412
|
+
"scope": {
|
|
12413
|
+
"type": "string",
|
|
12414
|
+
"enum": [
|
|
12415
|
+
"tenant",
|
|
12416
|
+
"user"
|
|
12417
|
+
],
|
|
12418
|
+
"description": "tenant = visible to every user in the tenant; user = visible only to the owner."
|
|
12419
|
+
},
|
|
12420
|
+
"ownerId": {
|
|
12421
|
+
"type": "string",
|
|
12422
|
+
"description": "Set server-side from the caller. Tenant-scope: tenantId. User-scope: the authenticated user's full userId."
|
|
12423
|
+
},
|
|
12424
|
+
"resourceTypes": {
|
|
12425
|
+
"type": "array",
|
|
12426
|
+
"items": {
|
|
12427
|
+
"type": "string"
|
|
12428
|
+
},
|
|
12429
|
+
"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."
|
|
12430
|
+
},
|
|
12431
|
+
"status": {
|
|
12432
|
+
"type": "string",
|
|
12433
|
+
"enum": [
|
|
12434
|
+
"active",
|
|
12435
|
+
"archived"
|
|
12436
|
+
],
|
|
12437
|
+
"description": "Archived labels stay readable (for historical assignments) but disappear from the default list."
|
|
12438
|
+
},
|
|
12439
|
+
"timestamps": {
|
|
12440
|
+
"title": "ResourceTimestampsSchema",
|
|
12441
|
+
"type": "object",
|
|
12442
|
+
"properties": {
|
|
12443
|
+
"created": {
|
|
12444
|
+
"type": "string",
|
|
12445
|
+
"format": "date-time"
|
|
12446
|
+
},
|
|
12447
|
+
"modified": {
|
|
12448
|
+
"type": "string",
|
|
12449
|
+
"format": "date-time"
|
|
12450
|
+
}
|
|
12451
|
+
}
|
|
12452
|
+
}
|
|
12453
|
+
}
|
|
12454
|
+
}
|
|
12455
|
+
}
|
|
12456
|
+
}
|
|
12457
|
+
}
|
|
12458
|
+
}
|
|
12459
|
+
}
|
|
12460
|
+
},
|
|
12461
|
+
{
|
|
12462
|
+
"type": "function",
|
|
12463
|
+
"function": {
|
|
12464
|
+
"name": "labels_options",
|
|
12465
|
+
"description": "Labels Options",
|
|
12466
|
+
"parameters": {
|
|
12467
|
+
"type": "object",
|
|
12468
|
+
"properties": {}
|
|
12469
|
+
}
|
|
12470
|
+
}
|
|
12471
|
+
},
|
|
12472
|
+
{
|
|
12473
|
+
"type": "function",
|
|
12474
|
+
"function": {
|
|
12475
|
+
"name": "show_label",
|
|
12476
|
+
"description": "Show Label",
|
|
12477
|
+
"parameters": {
|
|
12478
|
+
"type": "object",
|
|
12479
|
+
"properties": {}
|
|
12480
|
+
}
|
|
12481
|
+
}
|
|
12482
|
+
},
|
|
12483
|
+
{
|
|
12484
|
+
"type": "function",
|
|
12485
|
+
"function": {
|
|
12486
|
+
"name": "update_label",
|
|
12487
|
+
"description": "Update Label",
|
|
12488
|
+
"parameters": {
|
|
12489
|
+
"title": "UpdateLabelRequestBody",
|
|
12490
|
+
"type": "object",
|
|
12491
|
+
"required": [
|
|
12492
|
+
"data"
|
|
12493
|
+
],
|
|
12494
|
+
"properties": {
|
|
12495
|
+
"data": {
|
|
12496
|
+
"title": "UpdateLabelRequestBodyData",
|
|
12497
|
+
"type": "object",
|
|
12498
|
+
"required": [
|
|
12499
|
+
"type",
|
|
12500
|
+
"id",
|
|
12501
|
+
"attributes"
|
|
12502
|
+
],
|
|
12503
|
+
"properties": {
|
|
12504
|
+
"type": {
|
|
12505
|
+
"type": "string",
|
|
12506
|
+
"enum": [
|
|
12507
|
+
"labels"
|
|
12508
|
+
]
|
|
12509
|
+
},
|
|
12510
|
+
"id": {
|
|
12511
|
+
"type": "string"
|
|
12512
|
+
},
|
|
12513
|
+
"attributes": {
|
|
12514
|
+
"title": "LabelAttributesSchema",
|
|
12515
|
+
"type": "object",
|
|
12516
|
+
"properties": {
|
|
12517
|
+
"name": {
|
|
12518
|
+
"type": "string",
|
|
12519
|
+
"description": "Display name. Unique within a scope by convention but not enforced."
|
|
12520
|
+
},
|
|
12521
|
+
"color": {
|
|
12522
|
+
"type": "string",
|
|
12523
|
+
"description": "Hex or CSS-named color the UI uses to render the label pill."
|
|
12524
|
+
},
|
|
12525
|
+
"description": {
|
|
12526
|
+
"type": "string"
|
|
12527
|
+
},
|
|
12528
|
+
"scope": {
|
|
12529
|
+
"type": "string",
|
|
12530
|
+
"enum": [
|
|
12531
|
+
"tenant",
|
|
12532
|
+
"user"
|
|
12533
|
+
],
|
|
12534
|
+
"description": "tenant = visible to every user in the tenant; user = visible only to the owner."
|
|
12535
|
+
},
|
|
12536
|
+
"ownerId": {
|
|
12537
|
+
"type": "string",
|
|
12538
|
+
"description": "Set server-side from the caller. Tenant-scope: tenantId. User-scope: the authenticated user's full userId."
|
|
12539
|
+
},
|
|
12540
|
+
"resourceTypes": {
|
|
12541
|
+
"type": "array",
|
|
12542
|
+
"items": {
|
|
12543
|
+
"type": "string"
|
|
12544
|
+
},
|
|
12545
|
+
"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."
|
|
12546
|
+
},
|
|
12547
|
+
"status": {
|
|
12548
|
+
"type": "string",
|
|
12549
|
+
"enum": [
|
|
12550
|
+
"active",
|
|
12551
|
+
"archived"
|
|
12552
|
+
],
|
|
12553
|
+
"description": "Archived labels stay readable (for historical assignments) but disappear from the default list."
|
|
12554
|
+
},
|
|
12555
|
+
"timestamps": {
|
|
12556
|
+
"title": "ResourceTimestampsSchema",
|
|
12557
|
+
"type": "object",
|
|
12558
|
+
"properties": {
|
|
12559
|
+
"created": {
|
|
12560
|
+
"type": "string",
|
|
12561
|
+
"format": "date-time"
|
|
12562
|
+
},
|
|
12563
|
+
"modified": {
|
|
12564
|
+
"type": "string",
|
|
12565
|
+
"format": "date-time"
|
|
12566
|
+
}
|
|
12567
|
+
}
|
|
12568
|
+
}
|
|
12569
|
+
}
|
|
12570
|
+
}
|
|
12571
|
+
}
|
|
12572
|
+
}
|
|
12573
|
+
}
|
|
12574
|
+
}
|
|
12575
|
+
}
|
|
12576
|
+
},
|
|
12577
|
+
{
|
|
12578
|
+
"type": "function",
|
|
12579
|
+
"function": {
|
|
12580
|
+
"name": "delete_label",
|
|
12581
|
+
"description": "Delete Label",
|
|
12582
|
+
"parameters": {
|
|
12583
|
+
"type": "object",
|
|
12584
|
+
"properties": {}
|
|
12585
|
+
}
|
|
12586
|
+
}
|
|
12587
|
+
},
|
|
12588
|
+
{
|
|
12589
|
+
"type": "function",
|
|
12590
|
+
"function": {
|
|
12591
|
+
"name": "label_options",
|
|
12592
|
+
"description": "Label Options",
|
|
12593
|
+
"parameters": {
|
|
12594
|
+
"type": "object",
|
|
12595
|
+
"properties": {}
|
|
12596
|
+
}
|
|
12597
|
+
}
|
|
12598
|
+
},
|
|
12599
|
+
{
|
|
12600
|
+
"type": "function",
|
|
12601
|
+
"function": {
|
|
12602
|
+
"name": "list_meetings",
|
|
12603
|
+
"description": "List Meetings",
|
|
12604
|
+
"parameters": {
|
|
12605
|
+
"type": "object",
|
|
12606
|
+
"properties": {
|
|
12607
|
+
"filterStatus": {
|
|
12608
|
+
"type": "string",
|
|
12609
|
+
"description": "Returns meetings with the current status (active, scheduled, ended, archived). If not provided, the default value will be set to 'active'.",
|
|
12610
|
+
"enum": [
|
|
12611
|
+
"active",
|
|
12612
|
+
"scheduled",
|
|
12613
|
+
"ended",
|
|
12614
|
+
"archived"
|
|
12615
|
+
]
|
|
12616
|
+
},
|
|
12617
|
+
"filterCreatedFrom": {
|
|
12618
|
+
"type": "string",
|
|
12619
|
+
"description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
|
|
12620
|
+
},
|
|
12621
|
+
"filterCreatedTo": {
|
|
12622
|
+
"type": "string",
|
|
12623
|
+
"description": "Filters results to include only those created up to the specified date and time. The value must be in ISO 8601 format."
|
|
12624
|
+
},
|
|
12625
|
+
"filterModifiedFrom": {
|
|
12626
|
+
"type": "string",
|
|
12627
|
+
"description": "Filters results to include only those modified from the specified date and time. The value must be in ISO 8601 format."
|
|
12628
|
+
},
|
|
12629
|
+
"filterModifiedTo": {
|
|
12630
|
+
"type": "string",
|
|
12631
|
+
"description": "Filters results to include only those modified up to the specified date and time. The value must be in ISO 8601 format."
|
|
12632
|
+
},
|
|
12633
|
+
"pageSize": {
|
|
12634
|
+
"type": "integer",
|
|
12635
|
+
"description": "Specifies the number of items to retrieve per page. The maximum value is 100."
|
|
12636
|
+
},
|
|
12637
|
+
"pageNumber": {
|
|
12638
|
+
"type": "integer",
|
|
12639
|
+
"description": "Specifies the page number to retrieve. Used for traditional pagination."
|
|
12640
|
+
},
|
|
12641
|
+
"pageAfter": {
|
|
12642
|
+
"type": "string",
|
|
12643
|
+
"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."
|
|
12644
|
+
},
|
|
12645
|
+
"pageBefore": {
|
|
12646
|
+
"type": "string",
|
|
12647
|
+
"description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
|
|
12648
|
+
}
|
|
12649
|
+
}
|
|
12650
|
+
}
|
|
12651
|
+
}
|
|
12652
|
+
},
|
|
12653
|
+
{
|
|
12654
|
+
"type": "function",
|
|
12655
|
+
"function": {
|
|
12656
|
+
"name": "create_meeting",
|
|
12657
|
+
"description": "Create Meeting",
|
|
12658
|
+
"parameters": {
|
|
12659
|
+
"title": "CreateMeetingRequestBody",
|
|
11706
12660
|
"type": "object",
|
|
11707
12661
|
"required": [
|
|
11708
12662
|
"data"
|
|
@@ -14532,12 +15486,62 @@
|
|
|
14532
15486
|
"description": "The type of search to perform"
|
|
14533
15487
|
},
|
|
14534
15488
|
"query": {
|
|
14535
|
-
"
|
|
14536
|
-
"
|
|
15489
|
+
"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.",
|
|
15490
|
+
"oneOf": [
|
|
15491
|
+
{
|
|
15492
|
+
"$ref": "#/components/schemas/FinderQueryTalentsSchema"
|
|
15493
|
+
},
|
|
15494
|
+
{
|
|
15495
|
+
"$ref": "#/components/schemas/FinderQueryCandidatesSchema"
|
|
15496
|
+
},
|
|
15497
|
+
{
|
|
15498
|
+
"$ref": "#/components/schemas/FinderQueryJobsSchema"
|
|
15499
|
+
},
|
|
15500
|
+
{
|
|
15501
|
+
"$ref": "#/components/schemas/FinderQueryEmailsSchema"
|
|
15502
|
+
}
|
|
15503
|
+
]
|
|
14537
15504
|
},
|
|
14538
15505
|
"results": {
|
|
15506
|
+
"title": "FinderResultsSchema",
|
|
14539
15507
|
"type": "object",
|
|
14540
|
-
"description": "
|
|
15508
|
+
"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.",
|
|
15509
|
+
"properties": {
|
|
15510
|
+
"total": {
|
|
15511
|
+
"type": "integer",
|
|
15512
|
+
"description": "Count of matching documents before pagination."
|
|
15513
|
+
},
|
|
15514
|
+
"hits": {
|
|
15515
|
+
"type": "array",
|
|
15516
|
+
"items": {
|
|
15517
|
+
"title": "FinderResultHitSchema",
|
|
15518
|
+
"type": "object",
|
|
15519
|
+
"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`.",
|
|
15520
|
+
"properties": {
|
|
15521
|
+
"id": {
|
|
15522
|
+
"type": "string",
|
|
15523
|
+
"description": "The underlying resource id (emailId / talentId / candidateId / jobId)."
|
|
15524
|
+
},
|
|
15525
|
+
"tenantId": {
|
|
15526
|
+
"type": "string"
|
|
15527
|
+
},
|
|
15528
|
+
"status": {
|
|
15529
|
+
"type": "string"
|
|
15530
|
+
},
|
|
15531
|
+
"source": {
|
|
15532
|
+
"type": "string"
|
|
15533
|
+
},
|
|
15534
|
+
"created": {
|
|
15535
|
+
"type": "string"
|
|
15536
|
+
},
|
|
15537
|
+
"shortCode": {
|
|
15538
|
+
"type": "string"
|
|
15539
|
+
}
|
|
15540
|
+
},
|
|
15541
|
+
"additionalProperties": true
|
|
15542
|
+
}
|
|
15543
|
+
}
|
|
15544
|
+
}
|
|
14541
15545
|
},
|
|
14542
15546
|
"status": {
|
|
14543
15547
|
"type": "string",
|
|
@@ -14759,12 +15763,62 @@
|
|
|
14759
15763
|
"description": "The type of search to perform"
|
|
14760
15764
|
},
|
|
14761
15765
|
"query": {
|
|
14762
|
-
"
|
|
14763
|
-
"
|
|
15766
|
+
"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.",
|
|
15767
|
+
"oneOf": [
|
|
15768
|
+
{
|
|
15769
|
+
"$ref": "#/components/schemas/FinderQueryTalentsSchema"
|
|
15770
|
+
},
|
|
15771
|
+
{
|
|
15772
|
+
"$ref": "#/components/schemas/FinderQueryCandidatesSchema"
|
|
15773
|
+
},
|
|
15774
|
+
{
|
|
15775
|
+
"$ref": "#/components/schemas/FinderQueryJobsSchema"
|
|
15776
|
+
},
|
|
15777
|
+
{
|
|
15778
|
+
"$ref": "#/components/schemas/FinderQueryEmailsSchema"
|
|
15779
|
+
}
|
|
15780
|
+
]
|
|
14764
15781
|
},
|
|
14765
15782
|
"results": {
|
|
15783
|
+
"title": "FinderResultsSchema",
|
|
14766
15784
|
"type": "object",
|
|
14767
|
-
"description": "
|
|
15785
|
+
"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.",
|
|
15786
|
+
"properties": {
|
|
15787
|
+
"total": {
|
|
15788
|
+
"type": "integer",
|
|
15789
|
+
"description": "Count of matching documents before pagination."
|
|
15790
|
+
},
|
|
15791
|
+
"hits": {
|
|
15792
|
+
"type": "array",
|
|
15793
|
+
"items": {
|
|
15794
|
+
"title": "FinderResultHitSchema",
|
|
15795
|
+
"type": "object",
|
|
15796
|
+
"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`.",
|
|
15797
|
+
"properties": {
|
|
15798
|
+
"id": {
|
|
15799
|
+
"type": "string",
|
|
15800
|
+
"description": "The underlying resource id (emailId / talentId / candidateId / jobId)."
|
|
15801
|
+
},
|
|
15802
|
+
"tenantId": {
|
|
15803
|
+
"type": "string"
|
|
15804
|
+
},
|
|
15805
|
+
"status": {
|
|
15806
|
+
"type": "string"
|
|
15807
|
+
},
|
|
15808
|
+
"source": {
|
|
15809
|
+
"type": "string"
|
|
15810
|
+
},
|
|
15811
|
+
"created": {
|
|
15812
|
+
"type": "string"
|
|
15813
|
+
},
|
|
15814
|
+
"shortCode": {
|
|
15815
|
+
"type": "string"
|
|
15816
|
+
}
|
|
15817
|
+
},
|
|
15818
|
+
"additionalProperties": true
|
|
15819
|
+
}
|
|
15820
|
+
}
|
|
15821
|
+
}
|
|
14768
15822
|
},
|
|
14769
15823
|
"status": {
|
|
14770
15824
|
"type": "string",
|