@lessly/sdk-app 30.2.1 → 30.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics/index.d.cts +1 -1
- package/dist/analytics/index.d.ts +1 -1
- package/dist/brain/index.d.cts +1 -1
- package/dist/brain/index.d.ts +1 -1
- package/dist/{client.gen-QlwjPsPF.d.cts → client.gen-BsUBUFNz.d.cts} +1506 -1
- package/dist/{client.gen-QlwjPsPF.d.ts → client.gen-BsUBUFNz.d.ts} +1506 -1
- package/dist/consent/index.d.cts +1 -1
- package/dist/consent/index.d.ts +1 -1
- package/dist/deployment/index.d.cts +1 -1
- package/dist/deployment/index.d.ts +1 -1
- package/dist/index.cjs +430 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +430 -0
- package/dist/index.js.map +1 -1
- package/dist/mail/index.d.cts +2 -2
- package/dist/mail/index.d.ts +2 -2
- package/dist/organization/index.d.cts +1 -1
- package/dist/organization/index.d.ts +1 -1
- package/dist/playground/index.d.cts +1 -1
- package/dist/playground/index.d.ts +1 -1
- package/dist/realtime/index.d.cts +1 -1
- package/dist/realtime/index.d.ts +1 -1
- package/dist/support/index.cjs +106 -0
- package/dist/support/index.cjs.map +1 -0
- package/dist/support/index.d.cts +84 -0
- package/dist/support/index.d.ts +84 -0
- package/dist/support/index.js +85 -0
- package/dist/support/index.js.map +1 -0
- package/dist/tracking/index.d.cts +1 -1
- package/dist/tracking/index.d.ts +1 -1
- package/dist/users/index.d.cts +1 -1
- package/dist/users/index.d.ts +1 -1
- package/dist/waitlist/index.d.cts +1 -1
- package/dist/waitlist/index.d.ts +1 -1
- package/package.json +7 -2
- package/src/gen/bindings.gen.ts +430 -0
- package/src/gen/client.gen.ts +76 -0
- package/src/gen/manifest.gen.ts +1 -1
- package/src/gen/support/index.ts +3 -0
- package/src/gen/support/queryOptions.gen.ts +131 -0
- package/src/gen/types.gen.ts +1510 -0
package/src/gen/types.gen.ts
CHANGED
|
@@ -14657,6 +14657,1516 @@ updatedAt: string
|
|
|
14657
14657
|
description: (string | null)
|
|
14658
14658
|
}
|
|
14659
14659
|
|
|
14660
|
+
export interface SupportAgentCreateInput {
|
|
14661
|
+
/**
|
|
14662
|
+
* Job title shown under the name, e.g. "Support engineer"
|
|
14663
|
+
*/
|
|
14664
|
+
title?: string
|
|
14665
|
+
/**
|
|
14666
|
+
* Absolute URL of the agent avatar image
|
|
14667
|
+
*/
|
|
14668
|
+
avatarUrl?: string
|
|
14669
|
+
/**
|
|
14670
|
+
* Name the end user sees next to this agent replies
|
|
14671
|
+
*/
|
|
14672
|
+
displayName: string
|
|
14673
|
+
/**
|
|
14674
|
+
* Lessly identity to bind this profile to, stored verbatim as an opaque string. It is never resolved, validated against the platform or enriched. Omit it for a bot or a backend profile. At most one agent per product may claim a given Lessly user
|
|
14675
|
+
*/
|
|
14676
|
+
lesslyUserId?: string
|
|
14677
|
+
}
|
|
14678
|
+
|
|
14679
|
+
export interface SupportAgentCreateOutput {
|
|
14680
|
+
/**
|
|
14681
|
+
* Agent id
|
|
14682
|
+
*/
|
|
14683
|
+
id: string
|
|
14684
|
+
/**
|
|
14685
|
+
* Job title shown under the name, or null if unset
|
|
14686
|
+
*/
|
|
14687
|
+
title: (string | null)
|
|
14688
|
+
/**
|
|
14689
|
+
* A deactivated agent keeps its history but can no longer be put on a thread
|
|
14690
|
+
*/
|
|
14691
|
+
isActive: boolean
|
|
14692
|
+
/**
|
|
14693
|
+
* Avatar image URL, or null if unset
|
|
14694
|
+
*/
|
|
14695
|
+
avatarUrl: (string | null)
|
|
14696
|
+
/**
|
|
14697
|
+
* ISO-8601 creation timestamp
|
|
14698
|
+
*/
|
|
14699
|
+
createdAt: string
|
|
14700
|
+
/**
|
|
14701
|
+
* ISO-8601 last-modification timestamp
|
|
14702
|
+
*/
|
|
14703
|
+
updatedAt: string
|
|
14704
|
+
/**
|
|
14705
|
+
* Name shown next to the agent replies
|
|
14706
|
+
*/
|
|
14707
|
+
displayName: string
|
|
14708
|
+
/**
|
|
14709
|
+
* Bound Lessly identity, stored verbatim and resolved by nobody. Null for an unbound profile — a bot or the client's own backend, which replies just like anyone else
|
|
14710
|
+
*/
|
|
14711
|
+
lesslyUserId: (string | null)
|
|
14712
|
+
}
|
|
14713
|
+
|
|
14714
|
+
export interface SupportAgentGetInput {
|
|
14715
|
+
/**
|
|
14716
|
+
* Agent id
|
|
14717
|
+
*/
|
|
14718
|
+
id: string
|
|
14719
|
+
}
|
|
14720
|
+
|
|
14721
|
+
export interface SupportAgentGetOutput {
|
|
14722
|
+
/**
|
|
14723
|
+
* Agent id
|
|
14724
|
+
*/
|
|
14725
|
+
id: string
|
|
14726
|
+
/**
|
|
14727
|
+
* Job title shown under the name, or null if unset
|
|
14728
|
+
*/
|
|
14729
|
+
title: (string | null)
|
|
14730
|
+
/**
|
|
14731
|
+
* A deactivated agent keeps its history but can no longer be put on a thread
|
|
14732
|
+
*/
|
|
14733
|
+
isActive: boolean
|
|
14734
|
+
/**
|
|
14735
|
+
* Avatar image URL, or null if unset
|
|
14736
|
+
*/
|
|
14737
|
+
avatarUrl: (string | null)
|
|
14738
|
+
/**
|
|
14739
|
+
* ISO-8601 creation timestamp
|
|
14740
|
+
*/
|
|
14741
|
+
createdAt: string
|
|
14742
|
+
/**
|
|
14743
|
+
* ISO-8601 last-modification timestamp
|
|
14744
|
+
*/
|
|
14745
|
+
updatedAt: string
|
|
14746
|
+
/**
|
|
14747
|
+
* Name shown next to the agent replies
|
|
14748
|
+
*/
|
|
14749
|
+
displayName: string
|
|
14750
|
+
/**
|
|
14751
|
+
* Bound Lessly identity, stored verbatim and resolved by nobody. Null for an unbound profile — a bot or the client's own backend, which replies just like anyone else
|
|
14752
|
+
*/
|
|
14753
|
+
lesslyUserId: (string | null)
|
|
14754
|
+
}
|
|
14755
|
+
|
|
14756
|
+
export interface SupportAgentListInput {
|
|
14757
|
+
/**
|
|
14758
|
+
* Also return deactivated agents (default false)
|
|
14759
|
+
*/
|
|
14760
|
+
includeInactive?: boolean
|
|
14761
|
+
}
|
|
14762
|
+
|
|
14763
|
+
export interface SupportAgentListOutput {
|
|
14764
|
+
/**
|
|
14765
|
+
* The product support agents, by display name
|
|
14766
|
+
*/
|
|
14767
|
+
agents: {
|
|
14768
|
+
/**
|
|
14769
|
+
* Agent id
|
|
14770
|
+
*/
|
|
14771
|
+
id: string
|
|
14772
|
+
/**
|
|
14773
|
+
* Job title shown under the name, or null if unset
|
|
14774
|
+
*/
|
|
14775
|
+
title: (string | null)
|
|
14776
|
+
/**
|
|
14777
|
+
* A deactivated agent keeps its history but can no longer be put on a thread
|
|
14778
|
+
*/
|
|
14779
|
+
isActive: boolean
|
|
14780
|
+
/**
|
|
14781
|
+
* Avatar image URL, or null if unset
|
|
14782
|
+
*/
|
|
14783
|
+
avatarUrl: (string | null)
|
|
14784
|
+
/**
|
|
14785
|
+
* ISO-8601 creation timestamp
|
|
14786
|
+
*/
|
|
14787
|
+
createdAt: string
|
|
14788
|
+
/**
|
|
14789
|
+
* ISO-8601 last-modification timestamp
|
|
14790
|
+
*/
|
|
14791
|
+
updatedAt: string
|
|
14792
|
+
/**
|
|
14793
|
+
* Name shown next to the agent replies
|
|
14794
|
+
*/
|
|
14795
|
+
displayName: string
|
|
14796
|
+
/**
|
|
14797
|
+
* Bound Lessly identity, stored verbatim and resolved by nobody. Null for an unbound profile — a bot or the client's own backend, which replies just like anyone else
|
|
14798
|
+
*/
|
|
14799
|
+
lesslyUserId: (string | null)
|
|
14800
|
+
}[]
|
|
14801
|
+
}
|
|
14802
|
+
|
|
14803
|
+
export interface SupportAgentUpdateInput {
|
|
14804
|
+
/**
|
|
14805
|
+
* Agent id
|
|
14806
|
+
*/
|
|
14807
|
+
id: string
|
|
14808
|
+
/**
|
|
14809
|
+
* New job title, or null to clear it
|
|
14810
|
+
*/
|
|
14811
|
+
title?: (string | null)
|
|
14812
|
+
/**
|
|
14813
|
+
* Deactivate or reactivate. A deactivated agent keeps every message it wrote and every thread it already sits on, but cannot be assigned to another one
|
|
14814
|
+
*/
|
|
14815
|
+
isActive?: boolean
|
|
14816
|
+
/**
|
|
14817
|
+
* New avatar URL, or null to clear it
|
|
14818
|
+
*/
|
|
14819
|
+
avatarUrl?: (string | null)
|
|
14820
|
+
/**
|
|
14821
|
+
* Name the end user sees next to this agent replies
|
|
14822
|
+
*/
|
|
14823
|
+
displayName?: string
|
|
14824
|
+
/**
|
|
14825
|
+
* Lessly identity to bind, or null to unbind. Stored verbatim, resolved by nobody
|
|
14826
|
+
*/
|
|
14827
|
+
lesslyUserId?: (string | null)
|
|
14828
|
+
}
|
|
14829
|
+
|
|
14830
|
+
export interface SupportAgentUpdateOutput {
|
|
14831
|
+
/**
|
|
14832
|
+
* Agent id
|
|
14833
|
+
*/
|
|
14834
|
+
id: string
|
|
14835
|
+
/**
|
|
14836
|
+
* Job title shown under the name, or null if unset
|
|
14837
|
+
*/
|
|
14838
|
+
title: (string | null)
|
|
14839
|
+
/**
|
|
14840
|
+
* A deactivated agent keeps its history but can no longer be put on a thread
|
|
14841
|
+
*/
|
|
14842
|
+
isActive: boolean
|
|
14843
|
+
/**
|
|
14844
|
+
* Avatar image URL, or null if unset
|
|
14845
|
+
*/
|
|
14846
|
+
avatarUrl: (string | null)
|
|
14847
|
+
/**
|
|
14848
|
+
* ISO-8601 creation timestamp
|
|
14849
|
+
*/
|
|
14850
|
+
createdAt: string
|
|
14851
|
+
/**
|
|
14852
|
+
* ISO-8601 last-modification timestamp
|
|
14853
|
+
*/
|
|
14854
|
+
updatedAt: string
|
|
14855
|
+
/**
|
|
14856
|
+
* Name shown next to the agent replies
|
|
14857
|
+
*/
|
|
14858
|
+
displayName: string
|
|
14859
|
+
/**
|
|
14860
|
+
* Bound Lessly identity, stored verbatim and resolved by nobody. Null for an unbound profile — a bot or the client's own backend, which replies just like anyone else
|
|
14861
|
+
*/
|
|
14862
|
+
lesslyUserId: (string | null)
|
|
14863
|
+
}
|
|
14864
|
+
|
|
14865
|
+
export interface SupportAttachmentCreateInput {
|
|
14866
|
+
/**
|
|
14867
|
+
* Display name of the file, e.g. "invoice.pdf". Only the base name is used for the storage key; any directory part is discarded
|
|
14868
|
+
*/
|
|
14869
|
+
fileName: string
|
|
14870
|
+
/**
|
|
14871
|
+
* Thread the file belongs to. An attachment is created against a thread first and claimed by one of its messages later, when that message is posted
|
|
14872
|
+
*/
|
|
14873
|
+
threadId: string
|
|
14874
|
+
/**
|
|
14875
|
+
* Size of the file in bytes, at most 26214400. Declared up front so an oversized upload is refused before a URL is issued; finalize checks the real size again
|
|
14876
|
+
*/
|
|
14877
|
+
sizeBytes: number
|
|
14878
|
+
/**
|
|
14879
|
+
* MIME type of the file. The upload URL is signed for exactly this type, so the PUT must send the same Content-Type header or storage rejects it
|
|
14880
|
+
*/
|
|
14881
|
+
contentType: string
|
|
14882
|
+
}
|
|
14883
|
+
|
|
14884
|
+
export interface SupportAttachmentCreateOutput {
|
|
14885
|
+
/**
|
|
14886
|
+
* Attachment id
|
|
14887
|
+
*/
|
|
14888
|
+
id: string
|
|
14889
|
+
/**
|
|
14890
|
+
* pending: the row exists and an upload URL was issued, but no bytes have been confirmed. uploaded: finalize saw the object in storage. Only uploaded attachments can be attached to a message or downloaded
|
|
14891
|
+
*/
|
|
14892
|
+
status: ("pending" | "uploaded")
|
|
14893
|
+
/**
|
|
14894
|
+
* Display name of the file
|
|
14895
|
+
*/
|
|
14896
|
+
fileName: string
|
|
14897
|
+
/**
|
|
14898
|
+
* Thread this attachment belongs to
|
|
14899
|
+
*/
|
|
14900
|
+
threadId: string
|
|
14901
|
+
/**
|
|
14902
|
+
* ISO-8601 creation timestamp
|
|
14903
|
+
*/
|
|
14904
|
+
createdAt: string
|
|
14905
|
+
/**
|
|
14906
|
+
* The message that carries this attachment, or null while nothing claims it yet
|
|
14907
|
+
*/
|
|
14908
|
+
messageId: (string | null)
|
|
14909
|
+
/**
|
|
14910
|
+
* Size in bytes: what the caller declared while the attachment is pending, what storage reported once it is uploaded
|
|
14911
|
+
*/
|
|
14912
|
+
sizeBytes: number
|
|
14913
|
+
/**
|
|
14914
|
+
* Short-lived signed URL. PUT the file bytes here with the same Content-Type, then call support_attachment_finalize. The URL is a bearer credential for this one object
|
|
14915
|
+
*/
|
|
14916
|
+
uploadUrl: string
|
|
14917
|
+
/**
|
|
14918
|
+
* ISO-8601 timestamp of the confirmed upload, or null while pending
|
|
14919
|
+
*/
|
|
14920
|
+
uploadedAt: (string | null)
|
|
14921
|
+
/**
|
|
14922
|
+
* MIME type declared when the attachment was created
|
|
14923
|
+
*/
|
|
14924
|
+
contentType: string
|
|
14925
|
+
/**
|
|
14926
|
+
* ISO-8601 moment the upload URL stops working
|
|
14927
|
+
*/
|
|
14928
|
+
uploadExpiresAt: string
|
|
14929
|
+
}
|
|
14930
|
+
|
|
14931
|
+
export interface SupportAttachmentFinalizeInput {
|
|
14932
|
+
/**
|
|
14933
|
+
* The attachment whose upload should be confirmed, as returned by the create call
|
|
14934
|
+
*/
|
|
14935
|
+
attachmentId: string
|
|
14936
|
+
}
|
|
14937
|
+
|
|
14938
|
+
export interface SupportAttachmentFinalizeOutput {
|
|
14939
|
+
/**
|
|
14940
|
+
* Attachment id
|
|
14941
|
+
*/
|
|
14942
|
+
id: string
|
|
14943
|
+
/**
|
|
14944
|
+
* pending: the row exists and an upload URL was issued, but no bytes have been confirmed. uploaded: finalize saw the object in storage. Only uploaded attachments can be attached to a message or downloaded
|
|
14945
|
+
*/
|
|
14946
|
+
status: ("pending" | "uploaded")
|
|
14947
|
+
/**
|
|
14948
|
+
* Display name of the file
|
|
14949
|
+
*/
|
|
14950
|
+
fileName: string
|
|
14951
|
+
/**
|
|
14952
|
+
* Thread this attachment belongs to
|
|
14953
|
+
*/
|
|
14954
|
+
threadId: string
|
|
14955
|
+
/**
|
|
14956
|
+
* ISO-8601 creation timestamp
|
|
14957
|
+
*/
|
|
14958
|
+
createdAt: string
|
|
14959
|
+
/**
|
|
14960
|
+
* The message that carries this attachment, or null while nothing claims it yet
|
|
14961
|
+
*/
|
|
14962
|
+
messageId: (string | null)
|
|
14963
|
+
/**
|
|
14964
|
+
* Size in bytes: what the caller declared while the attachment is pending, what storage reported once it is uploaded
|
|
14965
|
+
*/
|
|
14966
|
+
sizeBytes: number
|
|
14967
|
+
/**
|
|
14968
|
+
* ISO-8601 timestamp of the confirmed upload, or null while pending
|
|
14969
|
+
*/
|
|
14970
|
+
uploadedAt: (string | null)
|
|
14971
|
+
/**
|
|
14972
|
+
* MIME type declared when the attachment was created
|
|
14973
|
+
*/
|
|
14974
|
+
contentType: string
|
|
14975
|
+
/**
|
|
14976
|
+
* Short-lived signed URL to read the uploaded file
|
|
14977
|
+
*/
|
|
14978
|
+
downloadUrl: string
|
|
14979
|
+
}
|
|
14980
|
+
|
|
14981
|
+
export interface SupportLabelCreateInput {
|
|
14982
|
+
/**
|
|
14983
|
+
* Label name as the customer wants to see it. Unique within the product
|
|
14984
|
+
*/
|
|
14985
|
+
name: string
|
|
14986
|
+
/**
|
|
14987
|
+
* Optional display colour as a six-digit hex string, e.g. #2563eb
|
|
14988
|
+
*/
|
|
14989
|
+
color?: string
|
|
14990
|
+
}
|
|
14991
|
+
|
|
14992
|
+
export interface SupportLabelCreateOutput {
|
|
14993
|
+
/**
|
|
14994
|
+
* Label id
|
|
14995
|
+
*/
|
|
14996
|
+
id: string
|
|
14997
|
+
/**
|
|
14998
|
+
* Label name, unique within the product
|
|
14999
|
+
*/
|
|
15000
|
+
name: string
|
|
15001
|
+
/**
|
|
15002
|
+
* Display colour as a hex string, or null if uncoloured
|
|
15003
|
+
*/
|
|
15004
|
+
color: (string | null)
|
|
15005
|
+
/**
|
|
15006
|
+
* ISO-8601 creation timestamp
|
|
15007
|
+
*/
|
|
15008
|
+
createdAt: string
|
|
15009
|
+
}
|
|
15010
|
+
|
|
15011
|
+
export interface SupportLabelListInput {
|
|
15012
|
+
|
|
15013
|
+
}
|
|
15014
|
+
|
|
15015
|
+
export interface SupportLabelListOutput {
|
|
15016
|
+
/**
|
|
15017
|
+
* The product label dictionary, by name
|
|
15018
|
+
*/
|
|
15019
|
+
labels: {
|
|
15020
|
+
/**
|
|
15021
|
+
* Label id
|
|
15022
|
+
*/
|
|
15023
|
+
id: string
|
|
15024
|
+
/**
|
|
15025
|
+
* Label name, unique within the product
|
|
15026
|
+
*/
|
|
15027
|
+
name: string
|
|
15028
|
+
/**
|
|
15029
|
+
* Display colour as a hex string, or null if uncoloured
|
|
15030
|
+
*/
|
|
15031
|
+
color: (string | null)
|
|
15032
|
+
/**
|
|
15033
|
+
* ISO-8601 creation timestamp
|
|
15034
|
+
*/
|
|
15035
|
+
createdAt: string
|
|
15036
|
+
}[]
|
|
15037
|
+
}
|
|
15038
|
+
|
|
15039
|
+
export interface SupportMessageCreateInput {
|
|
15040
|
+
/**
|
|
15041
|
+
* The message text, stored verbatim
|
|
15042
|
+
*/
|
|
15043
|
+
body: string
|
|
15044
|
+
/**
|
|
15045
|
+
* Id of the thread this message belongs to
|
|
15046
|
+
*/
|
|
15047
|
+
threadId: string
|
|
15048
|
+
/**
|
|
15049
|
+
* inbound: written by the external end user. outbound: written by support, going out to them
|
|
15050
|
+
*/
|
|
15051
|
+
direction: ("inbound" | "outbound")
|
|
15052
|
+
/**
|
|
15053
|
+
* Defaults to public when omitted. Internal notes are never shown to the end user
|
|
15054
|
+
*/
|
|
15055
|
+
visibility?: ("public" | "internal")
|
|
15056
|
+
/**
|
|
15057
|
+
* Files this message carries, created with support_attachment_create and confirmed with support_attachment_finalize beforehand. Each must be an uploaded attachment of the same thread that no other message already carries; otherwise the whole message is refused. At most 10 per message
|
|
15058
|
+
*
|
|
15059
|
+
* @maxItems 10
|
|
15060
|
+
*/
|
|
15061
|
+
attachmentIds?: []|[string]|[string, string]|[string, string, string]|[string, string, string, string]|[string, string, string, string, string]|[string, string, string, string, string, string]|[string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string]
|
|
15062
|
+
/**
|
|
15063
|
+
* The support agent of this product who wrote the message. Set this exactly when the message comes from inside the support contour; leave authorExternalId empty. An agent of another product is reported as not found
|
|
15064
|
+
*/
|
|
15065
|
+
authorAgentId?: string
|
|
15066
|
+
/**
|
|
15067
|
+
* Opaque identifier of the external end user in the client's own user base, stored verbatim. Set this exactly when the message comes from outside; leave authorAgentId empty
|
|
15068
|
+
*/
|
|
15069
|
+
authorExternalId?: string
|
|
15070
|
+
}
|
|
15071
|
+
|
|
15072
|
+
export interface SupportMessageCreateOutput {
|
|
15073
|
+
/**
|
|
15074
|
+
* Message id
|
|
15075
|
+
*/
|
|
15076
|
+
id: string
|
|
15077
|
+
/**
|
|
15078
|
+
* The message text, byte-identical to what was stored
|
|
15079
|
+
*/
|
|
15080
|
+
body: string
|
|
15081
|
+
/**
|
|
15082
|
+
* Thread this message belongs to
|
|
15083
|
+
*/
|
|
15084
|
+
threadId: string
|
|
15085
|
+
/**
|
|
15086
|
+
* ISO-8601 creation timestamp
|
|
15087
|
+
*/
|
|
15088
|
+
createdAt: string
|
|
15089
|
+
/**
|
|
15090
|
+
* inbound: written by the external end user. outbound: written by support, going out to them
|
|
15091
|
+
*/
|
|
15092
|
+
direction: ("inbound" | "outbound")
|
|
15093
|
+
/**
|
|
15094
|
+
* public: part of the conversation the external end user sees. internal: a note between agents that never leaves the support contour
|
|
15095
|
+
*/
|
|
15096
|
+
visibility: ("public" | "internal")
|
|
15097
|
+
/**
|
|
15098
|
+
* Files this message carries, each with a freshly signed download URL. Empty when there are none. Attachments whose upload was never confirmed are never listed here
|
|
15099
|
+
*/
|
|
15100
|
+
attachments: {
|
|
15101
|
+
/**
|
|
15102
|
+
* Attachment id
|
|
15103
|
+
*/
|
|
15104
|
+
id: string
|
|
15105
|
+
/**
|
|
15106
|
+
* Display name of the file
|
|
15107
|
+
*/
|
|
15108
|
+
fileName: string
|
|
15109
|
+
/**
|
|
15110
|
+
* ISO-8601 timestamp of when the attachment was created
|
|
15111
|
+
*/
|
|
15112
|
+
createdAt: string
|
|
15113
|
+
/**
|
|
15114
|
+
* Size in bytes as reported by storage
|
|
15115
|
+
*/
|
|
15116
|
+
sizeBytes: number
|
|
15117
|
+
/**
|
|
15118
|
+
* MIME type of the file
|
|
15119
|
+
*/
|
|
15120
|
+
contentType: string
|
|
15121
|
+
/**
|
|
15122
|
+
* Short-lived signed URL to read the file. Re-read the message to get a fresh one
|
|
15123
|
+
*/
|
|
15124
|
+
downloadUrl: string
|
|
15125
|
+
}[]
|
|
15126
|
+
/**
|
|
15127
|
+
* The agent author, or null when the external end user wrote the message
|
|
15128
|
+
*/
|
|
15129
|
+
authorAgentId: (string | null)
|
|
15130
|
+
/**
|
|
15131
|
+
* The external author, or null when an agent wrote the message
|
|
15132
|
+
*/
|
|
15133
|
+
authorExternalId: (string | null)
|
|
15134
|
+
}
|
|
15135
|
+
|
|
15136
|
+
export interface SupportMessageListInput {
|
|
15137
|
+
/**
|
|
15138
|
+
* Page size, 1..100 (default 50)
|
|
15139
|
+
*/
|
|
15140
|
+
limit?: number
|
|
15141
|
+
/**
|
|
15142
|
+
* Number of messages to skip
|
|
15143
|
+
*/
|
|
15144
|
+
offset?: number
|
|
15145
|
+
/**
|
|
15146
|
+
* Thread whose messages to list. Messages exist only inside a thread
|
|
15147
|
+
*/
|
|
15148
|
+
threadId: string
|
|
15149
|
+
/**
|
|
15150
|
+
* Only messages in this direction
|
|
15151
|
+
*/
|
|
15152
|
+
direction?: ("inbound" | "outbound")
|
|
15153
|
+
/**
|
|
15154
|
+
* Only messages with this visibility. Omit to get both public and internal
|
|
15155
|
+
*/
|
|
15156
|
+
visibility?: ("public" | "internal")
|
|
15157
|
+
}
|
|
15158
|
+
|
|
15159
|
+
export interface SupportMessageListOutput {
|
|
15160
|
+
/**
|
|
15161
|
+
* Page size that was applied
|
|
15162
|
+
*/
|
|
15163
|
+
limit: number
|
|
15164
|
+
/**
|
|
15165
|
+
* Offset that was applied
|
|
15166
|
+
*/
|
|
15167
|
+
offset: number
|
|
15168
|
+
/**
|
|
15169
|
+
* The requested page of messages, oldest first — the conversation reads forward
|
|
15170
|
+
*/
|
|
15171
|
+
messages: {
|
|
15172
|
+
/**
|
|
15173
|
+
* Message id
|
|
15174
|
+
*/
|
|
15175
|
+
id: string
|
|
15176
|
+
/**
|
|
15177
|
+
* The message text, byte-identical to what was stored
|
|
15178
|
+
*/
|
|
15179
|
+
body: string
|
|
15180
|
+
/**
|
|
15181
|
+
* Thread this message belongs to
|
|
15182
|
+
*/
|
|
15183
|
+
threadId: string
|
|
15184
|
+
/**
|
|
15185
|
+
* ISO-8601 creation timestamp
|
|
15186
|
+
*/
|
|
15187
|
+
createdAt: string
|
|
15188
|
+
/**
|
|
15189
|
+
* inbound: written by the external end user. outbound: written by support, going out to them
|
|
15190
|
+
*/
|
|
15191
|
+
direction: ("inbound" | "outbound")
|
|
15192
|
+
/**
|
|
15193
|
+
* public: part of the conversation the external end user sees. internal: a note between agents that never leaves the support contour
|
|
15194
|
+
*/
|
|
15195
|
+
visibility: ("public" | "internal")
|
|
15196
|
+
/**
|
|
15197
|
+
* Files this message carries, each with a freshly signed download URL. Empty when there are none. Attachments whose upload was never confirmed are never listed here
|
|
15198
|
+
*/
|
|
15199
|
+
attachments: {
|
|
15200
|
+
/**
|
|
15201
|
+
* Attachment id
|
|
15202
|
+
*/
|
|
15203
|
+
id: string
|
|
15204
|
+
/**
|
|
15205
|
+
* Display name of the file
|
|
15206
|
+
*/
|
|
15207
|
+
fileName: string
|
|
15208
|
+
/**
|
|
15209
|
+
* ISO-8601 timestamp of when the attachment was created
|
|
15210
|
+
*/
|
|
15211
|
+
createdAt: string
|
|
15212
|
+
/**
|
|
15213
|
+
* Size in bytes as reported by storage
|
|
15214
|
+
*/
|
|
15215
|
+
sizeBytes: number
|
|
15216
|
+
/**
|
|
15217
|
+
* MIME type of the file
|
|
15218
|
+
*/
|
|
15219
|
+
contentType: string
|
|
15220
|
+
/**
|
|
15221
|
+
* Short-lived signed URL to read the file. Re-read the message to get a fresh one
|
|
15222
|
+
*/
|
|
15223
|
+
downloadUrl: string
|
|
15224
|
+
}[]
|
|
15225
|
+
/**
|
|
15226
|
+
* The agent author, or null when the external end user wrote the message
|
|
15227
|
+
*/
|
|
15228
|
+
authorAgentId: (string | null)
|
|
15229
|
+
/**
|
|
15230
|
+
* The external author, or null when an agent wrote the message
|
|
15231
|
+
*/
|
|
15232
|
+
authorExternalId: (string | null)
|
|
15233
|
+
}[]
|
|
15234
|
+
}
|
|
15235
|
+
|
|
15236
|
+
export interface SupportStatusArchiveInput {
|
|
15237
|
+
/**
|
|
15238
|
+
* Status id
|
|
15239
|
+
*/
|
|
15240
|
+
id: string
|
|
15241
|
+
/**
|
|
15242
|
+
* Live status every thread on the archived status moves to, in the same transaction
|
|
15243
|
+
*/
|
|
15244
|
+
targetStatusId: string
|
|
15245
|
+
}
|
|
15246
|
+
|
|
15247
|
+
export interface SupportStatusArchiveOutput {
|
|
15248
|
+
/**
|
|
15249
|
+
* Status id
|
|
15250
|
+
*/
|
|
15251
|
+
id: string
|
|
15252
|
+
/**
|
|
15253
|
+
* Status name, unique within the product
|
|
15254
|
+
*/
|
|
15255
|
+
name: string
|
|
15256
|
+
/**
|
|
15257
|
+
* Display colour as a hex string
|
|
15258
|
+
*/
|
|
15259
|
+
color: string
|
|
15260
|
+
/**
|
|
15261
|
+
* Sort order within the status dictionary
|
|
15262
|
+
*/
|
|
15263
|
+
order: number
|
|
15264
|
+
/**
|
|
15265
|
+
* Archived statuses stay readable but are not offered as targets
|
|
15266
|
+
*/
|
|
15267
|
+
archived: boolean
|
|
15268
|
+
/**
|
|
15269
|
+
* Lifecycle bucket the status belongs to
|
|
15270
|
+
*/
|
|
15271
|
+
category: ("open" | "pending" | "resolved" | "closed")
|
|
15272
|
+
}
|
|
15273
|
+
|
|
15274
|
+
export interface SupportStatusCreateInput {
|
|
15275
|
+
/**
|
|
15276
|
+
* Status name as the customer wants to see it. Unique within the product
|
|
15277
|
+
*/
|
|
15278
|
+
name: string
|
|
15279
|
+
/**
|
|
15280
|
+
* Display colour as a six-digit hex string, e.g. #2563eb
|
|
15281
|
+
*/
|
|
15282
|
+
color: string
|
|
15283
|
+
/**
|
|
15284
|
+
* Sort order within the status dictionary, lowest first
|
|
15285
|
+
*/
|
|
15286
|
+
order: number
|
|
15287
|
+
/**
|
|
15288
|
+
* Lifecycle bucket the status belongs to. Automation and reporting read the category, never the name — so it cannot be changed once threads sit on the status
|
|
15289
|
+
*/
|
|
15290
|
+
category: ("open" | "pending" | "resolved" | "closed")
|
|
15291
|
+
}
|
|
15292
|
+
|
|
15293
|
+
export interface SupportStatusCreateOutput {
|
|
15294
|
+
/**
|
|
15295
|
+
* Status id
|
|
15296
|
+
*/
|
|
15297
|
+
id: string
|
|
15298
|
+
/**
|
|
15299
|
+
* Status name, unique within the product
|
|
15300
|
+
*/
|
|
15301
|
+
name: string
|
|
15302
|
+
/**
|
|
15303
|
+
* Display colour as a hex string
|
|
15304
|
+
*/
|
|
15305
|
+
color: string
|
|
15306
|
+
/**
|
|
15307
|
+
* Sort order within the status dictionary
|
|
15308
|
+
*/
|
|
15309
|
+
order: number
|
|
15310
|
+
/**
|
|
15311
|
+
* Archived statuses stay readable but are not offered as targets
|
|
15312
|
+
*/
|
|
15313
|
+
archived: boolean
|
|
15314
|
+
/**
|
|
15315
|
+
* Lifecycle bucket the status belongs to
|
|
15316
|
+
*/
|
|
15317
|
+
category: ("open" | "pending" | "resolved" | "closed")
|
|
15318
|
+
}
|
|
15319
|
+
|
|
15320
|
+
export interface SupportStatusListInput {
|
|
15321
|
+
/**
|
|
15322
|
+
* Also return archived statuses (default false)
|
|
15323
|
+
*/
|
|
15324
|
+
includeArchived?: boolean
|
|
15325
|
+
}
|
|
15326
|
+
|
|
15327
|
+
export interface SupportStatusListOutput {
|
|
15328
|
+
/**
|
|
15329
|
+
* The product status dictionary, in display order
|
|
15330
|
+
*/
|
|
15331
|
+
statuses: {
|
|
15332
|
+
/**
|
|
15333
|
+
* Status id
|
|
15334
|
+
*/
|
|
15335
|
+
id: string
|
|
15336
|
+
/**
|
|
15337
|
+
* Status name, unique within the product
|
|
15338
|
+
*/
|
|
15339
|
+
name: string
|
|
15340
|
+
/**
|
|
15341
|
+
* Display colour as a hex string
|
|
15342
|
+
*/
|
|
15343
|
+
color: string
|
|
15344
|
+
/**
|
|
15345
|
+
* Sort order within the status dictionary
|
|
15346
|
+
*/
|
|
15347
|
+
order: number
|
|
15348
|
+
/**
|
|
15349
|
+
* Archived statuses stay readable but are not offered as targets
|
|
15350
|
+
*/
|
|
15351
|
+
archived: boolean
|
|
15352
|
+
/**
|
|
15353
|
+
* Lifecycle bucket the status belongs to
|
|
15354
|
+
*/
|
|
15355
|
+
category: ("open" | "pending" | "resolved" | "closed")
|
|
15356
|
+
}[]
|
|
15357
|
+
}
|
|
15358
|
+
|
|
15359
|
+
export interface SupportStatusUpdateInput {
|
|
15360
|
+
/**
|
|
15361
|
+
* Status id
|
|
15362
|
+
*/
|
|
15363
|
+
id: string
|
|
15364
|
+
/**
|
|
15365
|
+
* Status name as the customer wants to see it. Unique within the product
|
|
15366
|
+
*/
|
|
15367
|
+
name?: string
|
|
15368
|
+
/**
|
|
15369
|
+
* Display colour as a six-digit hex string, e.g. #2563eb
|
|
15370
|
+
*/
|
|
15371
|
+
color?: string
|
|
15372
|
+
/**
|
|
15373
|
+
* Sort order within the status dictionary, lowest first
|
|
15374
|
+
*/
|
|
15375
|
+
order?: number
|
|
15376
|
+
/**
|
|
15377
|
+
* New lifecycle bucket. Refused while any thread references the status
|
|
15378
|
+
*/
|
|
15379
|
+
category?: ("open" | "pending" | "resolved" | "closed")
|
|
15380
|
+
}
|
|
15381
|
+
|
|
15382
|
+
export interface SupportStatusUpdateOutput {
|
|
15383
|
+
/**
|
|
15384
|
+
* Status id
|
|
15385
|
+
*/
|
|
15386
|
+
id: string
|
|
15387
|
+
/**
|
|
15388
|
+
* Status name, unique within the product
|
|
15389
|
+
*/
|
|
15390
|
+
name: string
|
|
15391
|
+
/**
|
|
15392
|
+
* Display colour as a hex string
|
|
15393
|
+
*/
|
|
15394
|
+
color: string
|
|
15395
|
+
/**
|
|
15396
|
+
* Sort order within the status dictionary
|
|
15397
|
+
*/
|
|
15398
|
+
order: number
|
|
15399
|
+
/**
|
|
15400
|
+
* Archived statuses stay readable but are not offered as targets
|
|
15401
|
+
*/
|
|
15402
|
+
archived: boolean
|
|
15403
|
+
/**
|
|
15404
|
+
* Lifecycle bucket the status belongs to
|
|
15405
|
+
*/
|
|
15406
|
+
category: ("open" | "pending" | "resolved" | "closed")
|
|
15407
|
+
}
|
|
15408
|
+
|
|
15409
|
+
export interface SupportThreadAssignInput {
|
|
15410
|
+
/**
|
|
15411
|
+
* Thread id
|
|
15412
|
+
*/
|
|
15413
|
+
id: string
|
|
15414
|
+
/**
|
|
15415
|
+
* Support agent of this product to put on the thread, or null to return it to the unassigned queue. An agent of another product is reported as not found
|
|
15416
|
+
*/
|
|
15417
|
+
agentId: (string | null)
|
|
15418
|
+
}
|
|
15419
|
+
|
|
15420
|
+
export interface SupportThreadAssignOutput {
|
|
15421
|
+
/**
|
|
15422
|
+
* Thread id
|
|
15423
|
+
*/
|
|
15424
|
+
id: string
|
|
15425
|
+
/**
|
|
15426
|
+
* ticket: the end user wants something fixed. feedback: unsolicited input
|
|
15427
|
+
*/
|
|
15428
|
+
type: ("ticket" | "feedback")
|
|
15429
|
+
/**
|
|
15430
|
+
* Thread subject
|
|
15431
|
+
*/
|
|
15432
|
+
title: string
|
|
15433
|
+
/**
|
|
15434
|
+
* Every label on the thread, by name
|
|
15435
|
+
*/
|
|
15436
|
+
labels: {
|
|
15437
|
+
/**
|
|
15438
|
+
* Label id
|
|
15439
|
+
*/
|
|
15440
|
+
id: string
|
|
15441
|
+
/**
|
|
15442
|
+
* Label name, unique within the product
|
|
15443
|
+
*/
|
|
15444
|
+
name: string
|
|
15445
|
+
/**
|
|
15446
|
+
* Display colour as a hex string, or null if uncoloured
|
|
15447
|
+
*/
|
|
15448
|
+
color: (string | null)
|
|
15449
|
+
/**
|
|
15450
|
+
* ISO-8601 creation timestamp
|
|
15451
|
+
*/
|
|
15452
|
+
createdAt: string
|
|
15453
|
+
}[]
|
|
15454
|
+
/**
|
|
15455
|
+
* The status itself, joined in at read time
|
|
15456
|
+
*/
|
|
15457
|
+
status: {
|
|
15458
|
+
/**
|
|
15459
|
+
* Status id
|
|
15460
|
+
*/
|
|
15461
|
+
id: string
|
|
15462
|
+
/**
|
|
15463
|
+
* Status name, unique within the product
|
|
15464
|
+
*/
|
|
15465
|
+
name: string
|
|
15466
|
+
/**
|
|
15467
|
+
* Display colour as a hex string
|
|
15468
|
+
*/
|
|
15469
|
+
color: string
|
|
15470
|
+
/**
|
|
15471
|
+
* Sort order within the status dictionary
|
|
15472
|
+
*/
|
|
15473
|
+
order: number
|
|
15474
|
+
/**
|
|
15475
|
+
* Archived statuses stay readable but are not offered as targets
|
|
15476
|
+
*/
|
|
15477
|
+
archived: boolean
|
|
15478
|
+
/**
|
|
15479
|
+
* Lifecycle bucket the status belongs to
|
|
15480
|
+
*/
|
|
15481
|
+
category: ("open" | "pending" | "resolved" | "closed")
|
|
15482
|
+
}
|
|
15483
|
+
/**
|
|
15484
|
+
* Free-form client-owned JSON
|
|
15485
|
+
*/
|
|
15486
|
+
metadata: {
|
|
15487
|
+
[k: string]: unknown
|
|
15488
|
+
}
|
|
15489
|
+
/**
|
|
15490
|
+
* Thread priority
|
|
15491
|
+
*/
|
|
15492
|
+
priority: ("low" | "normal" | "high" | "urgent")
|
|
15493
|
+
/**
|
|
15494
|
+
* Id of the status the thread sits on
|
|
15495
|
+
*/
|
|
15496
|
+
statusId: string
|
|
15497
|
+
/**
|
|
15498
|
+
* ISO-8601 creation timestamp
|
|
15499
|
+
*/
|
|
15500
|
+
createdAt: string
|
|
15501
|
+
/**
|
|
15502
|
+
* ISO-8601 last-modification timestamp
|
|
15503
|
+
*/
|
|
15504
|
+
updatedAt: string
|
|
15505
|
+
/**
|
|
15506
|
+
* ISO-8601 timestamp of the last reply, or null while there are none
|
|
15507
|
+
*/
|
|
15508
|
+
lastReplyAt: (string | null)
|
|
15509
|
+
/**
|
|
15510
|
+
* Display name for the external author, if given
|
|
15511
|
+
*/
|
|
15512
|
+
authorDisplay: (string | null)
|
|
15513
|
+
/**
|
|
15514
|
+
* Assigned agent, or null while unassigned
|
|
15515
|
+
*/
|
|
15516
|
+
assignedAgentId: (string | null)
|
|
15517
|
+
/**
|
|
15518
|
+
* The external author, byte-identical to what was stored
|
|
15519
|
+
*/
|
|
15520
|
+
authorExternalId: string
|
|
15521
|
+
}
|
|
15522
|
+
|
|
15523
|
+
export interface SupportThreadCreateInput {
|
|
15524
|
+
/**
|
|
15525
|
+
* ticket: the end user wants something fixed. feedback: unsolicited input
|
|
15526
|
+
*/
|
|
15527
|
+
type: ("ticket" | "feedback")
|
|
15528
|
+
/**
|
|
15529
|
+
* Short human-readable subject of the thread
|
|
15530
|
+
*/
|
|
15531
|
+
title: string
|
|
15532
|
+
/**
|
|
15533
|
+
* Labels to put on the new thread
|
|
15534
|
+
*
|
|
15535
|
+
* @maxItems 50
|
|
15536
|
+
*/
|
|
15537
|
+
labelIds?: string[]
|
|
15538
|
+
/**
|
|
15539
|
+
* Free-form client-owned JSON attached to the thread
|
|
15540
|
+
*/
|
|
15541
|
+
metadata?: {
|
|
15542
|
+
[k: string]: unknown
|
|
15543
|
+
}
|
|
15544
|
+
/**
|
|
15545
|
+
* Optional display name for the external author, as the client already knows it
|
|
15546
|
+
*/
|
|
15547
|
+
authorDisplay?: string
|
|
15548
|
+
/**
|
|
15549
|
+
* Opaque identifier of the external end user in the client's own user base. Stored verbatim: never resolved, normalised or enriched, and it is not a Lessly identity
|
|
15550
|
+
*/
|
|
15551
|
+
authorExternalId: string
|
|
15552
|
+
}
|
|
15553
|
+
|
|
15554
|
+
export interface SupportThreadCreateOutput {
|
|
15555
|
+
/**
|
|
15556
|
+
* Thread id
|
|
15557
|
+
*/
|
|
15558
|
+
id: string
|
|
15559
|
+
/**
|
|
15560
|
+
* ticket: the end user wants something fixed. feedback: unsolicited input
|
|
15561
|
+
*/
|
|
15562
|
+
type: ("ticket" | "feedback")
|
|
15563
|
+
/**
|
|
15564
|
+
* Thread subject
|
|
15565
|
+
*/
|
|
15566
|
+
title: string
|
|
15567
|
+
/**
|
|
15568
|
+
* Every label on the thread, by name
|
|
15569
|
+
*/
|
|
15570
|
+
labels: {
|
|
15571
|
+
/**
|
|
15572
|
+
* Label id
|
|
15573
|
+
*/
|
|
15574
|
+
id: string
|
|
15575
|
+
/**
|
|
15576
|
+
* Label name, unique within the product
|
|
15577
|
+
*/
|
|
15578
|
+
name: string
|
|
15579
|
+
/**
|
|
15580
|
+
* Display colour as a hex string, or null if uncoloured
|
|
15581
|
+
*/
|
|
15582
|
+
color: (string | null)
|
|
15583
|
+
/**
|
|
15584
|
+
* ISO-8601 creation timestamp
|
|
15585
|
+
*/
|
|
15586
|
+
createdAt: string
|
|
15587
|
+
}[]
|
|
15588
|
+
/**
|
|
15589
|
+
* The status itself, joined in at read time
|
|
15590
|
+
*/
|
|
15591
|
+
status: {
|
|
15592
|
+
/**
|
|
15593
|
+
* Status id
|
|
15594
|
+
*/
|
|
15595
|
+
id: string
|
|
15596
|
+
/**
|
|
15597
|
+
* Status name, unique within the product
|
|
15598
|
+
*/
|
|
15599
|
+
name: string
|
|
15600
|
+
/**
|
|
15601
|
+
* Display colour as a hex string
|
|
15602
|
+
*/
|
|
15603
|
+
color: string
|
|
15604
|
+
/**
|
|
15605
|
+
* Sort order within the status dictionary
|
|
15606
|
+
*/
|
|
15607
|
+
order: number
|
|
15608
|
+
/**
|
|
15609
|
+
* Archived statuses stay readable but are not offered as targets
|
|
15610
|
+
*/
|
|
15611
|
+
archived: boolean
|
|
15612
|
+
/**
|
|
15613
|
+
* Lifecycle bucket the status belongs to
|
|
15614
|
+
*/
|
|
15615
|
+
category: ("open" | "pending" | "resolved" | "closed")
|
|
15616
|
+
}
|
|
15617
|
+
/**
|
|
15618
|
+
* Free-form client-owned JSON
|
|
15619
|
+
*/
|
|
15620
|
+
metadata: {
|
|
15621
|
+
[k: string]: unknown
|
|
15622
|
+
}
|
|
15623
|
+
/**
|
|
15624
|
+
* Thread priority
|
|
15625
|
+
*/
|
|
15626
|
+
priority: ("low" | "normal" | "high" | "urgent")
|
|
15627
|
+
/**
|
|
15628
|
+
* Id of the status the thread sits on
|
|
15629
|
+
*/
|
|
15630
|
+
statusId: string
|
|
15631
|
+
/**
|
|
15632
|
+
* ISO-8601 creation timestamp
|
|
15633
|
+
*/
|
|
15634
|
+
createdAt: string
|
|
15635
|
+
/**
|
|
15636
|
+
* ISO-8601 last-modification timestamp
|
|
15637
|
+
*/
|
|
15638
|
+
updatedAt: string
|
|
15639
|
+
/**
|
|
15640
|
+
* ISO-8601 timestamp of the last reply, or null while there are none
|
|
15641
|
+
*/
|
|
15642
|
+
lastReplyAt: (string | null)
|
|
15643
|
+
/**
|
|
15644
|
+
* Display name for the external author, if given
|
|
15645
|
+
*/
|
|
15646
|
+
authorDisplay: (string | null)
|
|
15647
|
+
/**
|
|
15648
|
+
* Assigned agent, or null while unassigned
|
|
15649
|
+
*/
|
|
15650
|
+
assignedAgentId: (string | null)
|
|
15651
|
+
/**
|
|
15652
|
+
* The external author, byte-identical to what was stored
|
|
15653
|
+
*/
|
|
15654
|
+
authorExternalId: string
|
|
15655
|
+
}
|
|
15656
|
+
|
|
15657
|
+
export interface SupportThreadGetInput {
|
|
15658
|
+
/**
|
|
15659
|
+
* Thread id
|
|
15660
|
+
*/
|
|
15661
|
+
id: string
|
|
15662
|
+
}
|
|
15663
|
+
|
|
15664
|
+
export interface SupportThreadGetOutput {
|
|
15665
|
+
/**
|
|
15666
|
+
* Thread id
|
|
15667
|
+
*/
|
|
15668
|
+
id: string
|
|
15669
|
+
/**
|
|
15670
|
+
* ticket: the end user wants something fixed. feedback: unsolicited input
|
|
15671
|
+
*/
|
|
15672
|
+
type: ("ticket" | "feedback")
|
|
15673
|
+
/**
|
|
15674
|
+
* Thread subject
|
|
15675
|
+
*/
|
|
15676
|
+
title: string
|
|
15677
|
+
/**
|
|
15678
|
+
* Every label on the thread, by name
|
|
15679
|
+
*/
|
|
15680
|
+
labels: {
|
|
15681
|
+
/**
|
|
15682
|
+
* Label id
|
|
15683
|
+
*/
|
|
15684
|
+
id: string
|
|
15685
|
+
/**
|
|
15686
|
+
* Label name, unique within the product
|
|
15687
|
+
*/
|
|
15688
|
+
name: string
|
|
15689
|
+
/**
|
|
15690
|
+
* Display colour as a hex string, or null if uncoloured
|
|
15691
|
+
*/
|
|
15692
|
+
color: (string | null)
|
|
15693
|
+
/**
|
|
15694
|
+
* ISO-8601 creation timestamp
|
|
15695
|
+
*/
|
|
15696
|
+
createdAt: string
|
|
15697
|
+
}[]
|
|
15698
|
+
/**
|
|
15699
|
+
* The status itself, joined in at read time
|
|
15700
|
+
*/
|
|
15701
|
+
status: {
|
|
15702
|
+
/**
|
|
15703
|
+
* Status id
|
|
15704
|
+
*/
|
|
15705
|
+
id: string
|
|
15706
|
+
/**
|
|
15707
|
+
* Status name, unique within the product
|
|
15708
|
+
*/
|
|
15709
|
+
name: string
|
|
15710
|
+
/**
|
|
15711
|
+
* Display colour as a hex string
|
|
15712
|
+
*/
|
|
15713
|
+
color: string
|
|
15714
|
+
/**
|
|
15715
|
+
* Sort order within the status dictionary
|
|
15716
|
+
*/
|
|
15717
|
+
order: number
|
|
15718
|
+
/**
|
|
15719
|
+
* Archived statuses stay readable but are not offered as targets
|
|
15720
|
+
*/
|
|
15721
|
+
archived: boolean
|
|
15722
|
+
/**
|
|
15723
|
+
* Lifecycle bucket the status belongs to
|
|
15724
|
+
*/
|
|
15725
|
+
category: ("open" | "pending" | "resolved" | "closed")
|
|
15726
|
+
}
|
|
15727
|
+
/**
|
|
15728
|
+
* Free-form client-owned JSON
|
|
15729
|
+
*/
|
|
15730
|
+
metadata: {
|
|
15731
|
+
[k: string]: unknown
|
|
15732
|
+
}
|
|
15733
|
+
/**
|
|
15734
|
+
* Thread priority
|
|
15735
|
+
*/
|
|
15736
|
+
priority: ("low" | "normal" | "high" | "urgent")
|
|
15737
|
+
/**
|
|
15738
|
+
* Id of the status the thread sits on
|
|
15739
|
+
*/
|
|
15740
|
+
statusId: string
|
|
15741
|
+
/**
|
|
15742
|
+
* ISO-8601 creation timestamp
|
|
15743
|
+
*/
|
|
15744
|
+
createdAt: string
|
|
15745
|
+
/**
|
|
15746
|
+
* ISO-8601 last-modification timestamp
|
|
15747
|
+
*/
|
|
15748
|
+
updatedAt: string
|
|
15749
|
+
/**
|
|
15750
|
+
* ISO-8601 timestamp of the last reply, or null while there are none
|
|
15751
|
+
*/
|
|
15752
|
+
lastReplyAt: (string | null)
|
|
15753
|
+
/**
|
|
15754
|
+
* Display name for the external author, if given
|
|
15755
|
+
*/
|
|
15756
|
+
authorDisplay: (string | null)
|
|
15757
|
+
/**
|
|
15758
|
+
* Assigned agent, or null while unassigned
|
|
15759
|
+
*/
|
|
15760
|
+
assignedAgentId: (string | null)
|
|
15761
|
+
/**
|
|
15762
|
+
* The external author, byte-identical to what was stored
|
|
15763
|
+
*/
|
|
15764
|
+
authorExternalId: string
|
|
15765
|
+
}
|
|
15766
|
+
|
|
15767
|
+
export interface SupportThreadListInput {
|
|
15768
|
+
/**
|
|
15769
|
+
* Only threads of this type
|
|
15770
|
+
*/
|
|
15771
|
+
type?: ("ticket" | "feedback")
|
|
15772
|
+
/**
|
|
15773
|
+
* Page size, 1..100 (default 25)
|
|
15774
|
+
*/
|
|
15775
|
+
limit?: number
|
|
15776
|
+
/**
|
|
15777
|
+
* Number of threads to skip
|
|
15778
|
+
*/
|
|
15779
|
+
offset?: number
|
|
15780
|
+
/**
|
|
15781
|
+
* Only threads whose status belongs to this category. Resolved through a join on the status dictionary — the category is never stored on the thread
|
|
15782
|
+
*/
|
|
15783
|
+
category?: ("open" | "pending" | "resolved" | "closed")
|
|
15784
|
+
/**
|
|
15785
|
+
* Only threads carrying ALL of these labels. Every other filter here narrows the result and so does this one: each additional label id makes the answer smaller, never bigger
|
|
15786
|
+
*/
|
|
15787
|
+
labelIds?: (string | string[])
|
|
15788
|
+
/**
|
|
15789
|
+
* Only threads sitting on this exact status
|
|
15790
|
+
*/
|
|
15791
|
+
statusId?: string
|
|
15792
|
+
/**
|
|
15793
|
+
* Only threads created at or before this ISO-8601 timestamp
|
|
15794
|
+
*/
|
|
15795
|
+
createdTo?: string
|
|
15796
|
+
/**
|
|
15797
|
+
* Only threads created at or after this ISO-8601 timestamp
|
|
15798
|
+
*/
|
|
15799
|
+
createdFrom?: string
|
|
15800
|
+
/**
|
|
15801
|
+
* Only threads assigned to this agent
|
|
15802
|
+
*/
|
|
15803
|
+
assignedAgentId?: string
|
|
15804
|
+
/**
|
|
15805
|
+
* Only threads opened by this external author, matched verbatim
|
|
15806
|
+
*/
|
|
15807
|
+
authorExternalId?: string
|
|
15808
|
+
}
|
|
15809
|
+
|
|
15810
|
+
export interface SupportThreadListOutput {
|
|
15811
|
+
/**
|
|
15812
|
+
* Page size that was applied
|
|
15813
|
+
*/
|
|
15814
|
+
limit: number
|
|
15815
|
+
/**
|
|
15816
|
+
* Offset that was applied
|
|
15817
|
+
*/
|
|
15818
|
+
offset: number
|
|
15819
|
+
/**
|
|
15820
|
+
* The requested page of threads, newest first
|
|
15821
|
+
*/
|
|
15822
|
+
threads: {
|
|
15823
|
+
/**
|
|
15824
|
+
* Thread id
|
|
15825
|
+
*/
|
|
15826
|
+
id: string
|
|
15827
|
+
/**
|
|
15828
|
+
* ticket: the end user wants something fixed. feedback: unsolicited input
|
|
15829
|
+
*/
|
|
15830
|
+
type: ("ticket" | "feedback")
|
|
15831
|
+
/**
|
|
15832
|
+
* Thread subject
|
|
15833
|
+
*/
|
|
15834
|
+
title: string
|
|
15835
|
+
/**
|
|
15836
|
+
* Every label on the thread, by name
|
|
15837
|
+
*/
|
|
15838
|
+
labels: {
|
|
15839
|
+
/**
|
|
15840
|
+
* Label id
|
|
15841
|
+
*/
|
|
15842
|
+
id: string
|
|
15843
|
+
/**
|
|
15844
|
+
* Label name, unique within the product
|
|
15845
|
+
*/
|
|
15846
|
+
name: string
|
|
15847
|
+
/**
|
|
15848
|
+
* Display colour as a hex string, or null if uncoloured
|
|
15849
|
+
*/
|
|
15850
|
+
color: (string | null)
|
|
15851
|
+
/**
|
|
15852
|
+
* ISO-8601 creation timestamp
|
|
15853
|
+
*/
|
|
15854
|
+
createdAt: string
|
|
15855
|
+
}[]
|
|
15856
|
+
/**
|
|
15857
|
+
* The status itself, joined in at read time
|
|
15858
|
+
*/
|
|
15859
|
+
status: {
|
|
15860
|
+
/**
|
|
15861
|
+
* Status id
|
|
15862
|
+
*/
|
|
15863
|
+
id: string
|
|
15864
|
+
/**
|
|
15865
|
+
* Status name, unique within the product
|
|
15866
|
+
*/
|
|
15867
|
+
name: string
|
|
15868
|
+
/**
|
|
15869
|
+
* Display colour as a hex string
|
|
15870
|
+
*/
|
|
15871
|
+
color: string
|
|
15872
|
+
/**
|
|
15873
|
+
* Sort order within the status dictionary
|
|
15874
|
+
*/
|
|
15875
|
+
order: number
|
|
15876
|
+
/**
|
|
15877
|
+
* Archived statuses stay readable but are not offered as targets
|
|
15878
|
+
*/
|
|
15879
|
+
archived: boolean
|
|
15880
|
+
/**
|
|
15881
|
+
* Lifecycle bucket the status belongs to
|
|
15882
|
+
*/
|
|
15883
|
+
category: ("open" | "pending" | "resolved" | "closed")
|
|
15884
|
+
}
|
|
15885
|
+
/**
|
|
15886
|
+
* Free-form client-owned JSON
|
|
15887
|
+
*/
|
|
15888
|
+
metadata: {
|
|
15889
|
+
[k: string]: unknown
|
|
15890
|
+
}
|
|
15891
|
+
/**
|
|
15892
|
+
* Thread priority
|
|
15893
|
+
*/
|
|
15894
|
+
priority: ("low" | "normal" | "high" | "urgent")
|
|
15895
|
+
/**
|
|
15896
|
+
* Id of the status the thread sits on
|
|
15897
|
+
*/
|
|
15898
|
+
statusId: string
|
|
15899
|
+
/**
|
|
15900
|
+
* ISO-8601 creation timestamp
|
|
15901
|
+
*/
|
|
15902
|
+
createdAt: string
|
|
15903
|
+
/**
|
|
15904
|
+
* ISO-8601 last-modification timestamp
|
|
15905
|
+
*/
|
|
15906
|
+
updatedAt: string
|
|
15907
|
+
/**
|
|
15908
|
+
* ISO-8601 timestamp of the last reply, or null while there are none
|
|
15909
|
+
*/
|
|
15910
|
+
lastReplyAt: (string | null)
|
|
15911
|
+
/**
|
|
15912
|
+
* Display name for the external author, if given
|
|
15913
|
+
*/
|
|
15914
|
+
authorDisplay: (string | null)
|
|
15915
|
+
/**
|
|
15916
|
+
* Assigned agent, or null while unassigned
|
|
15917
|
+
*/
|
|
15918
|
+
assignedAgentId: (string | null)
|
|
15919
|
+
/**
|
|
15920
|
+
* The external author, byte-identical to what was stored
|
|
15921
|
+
*/
|
|
15922
|
+
authorExternalId: string
|
|
15923
|
+
}[]
|
|
15924
|
+
}
|
|
15925
|
+
|
|
15926
|
+
export interface SupportThreadStatusSetInput {
|
|
15927
|
+
/**
|
|
15928
|
+
* Thread id
|
|
15929
|
+
*/
|
|
15930
|
+
id: string
|
|
15931
|
+
/**
|
|
15932
|
+
* Destination status of this product. Any status may follow any other — v1 has no transition rules. An archived status is refused
|
|
15933
|
+
*/
|
|
15934
|
+
statusId: string
|
|
15935
|
+
}
|
|
15936
|
+
|
|
15937
|
+
export interface SupportThreadStatusSetOutput {
|
|
15938
|
+
/**
|
|
15939
|
+
* Thread id
|
|
15940
|
+
*/
|
|
15941
|
+
id: string
|
|
15942
|
+
/**
|
|
15943
|
+
* ticket: the end user wants something fixed. feedback: unsolicited input
|
|
15944
|
+
*/
|
|
15945
|
+
type: ("ticket" | "feedback")
|
|
15946
|
+
/**
|
|
15947
|
+
* Thread subject
|
|
15948
|
+
*/
|
|
15949
|
+
title: string
|
|
15950
|
+
/**
|
|
15951
|
+
* Every label on the thread, by name
|
|
15952
|
+
*/
|
|
15953
|
+
labels: {
|
|
15954
|
+
/**
|
|
15955
|
+
* Label id
|
|
15956
|
+
*/
|
|
15957
|
+
id: string
|
|
15958
|
+
/**
|
|
15959
|
+
* Label name, unique within the product
|
|
15960
|
+
*/
|
|
15961
|
+
name: string
|
|
15962
|
+
/**
|
|
15963
|
+
* Display colour as a hex string, or null if uncoloured
|
|
15964
|
+
*/
|
|
15965
|
+
color: (string | null)
|
|
15966
|
+
/**
|
|
15967
|
+
* ISO-8601 creation timestamp
|
|
15968
|
+
*/
|
|
15969
|
+
createdAt: string
|
|
15970
|
+
}[]
|
|
15971
|
+
/**
|
|
15972
|
+
* The status itself, joined in at read time
|
|
15973
|
+
*/
|
|
15974
|
+
status: {
|
|
15975
|
+
/**
|
|
15976
|
+
* Status id
|
|
15977
|
+
*/
|
|
15978
|
+
id: string
|
|
15979
|
+
/**
|
|
15980
|
+
* Status name, unique within the product
|
|
15981
|
+
*/
|
|
15982
|
+
name: string
|
|
15983
|
+
/**
|
|
15984
|
+
* Display colour as a hex string
|
|
15985
|
+
*/
|
|
15986
|
+
color: string
|
|
15987
|
+
/**
|
|
15988
|
+
* Sort order within the status dictionary
|
|
15989
|
+
*/
|
|
15990
|
+
order: number
|
|
15991
|
+
/**
|
|
15992
|
+
* Archived statuses stay readable but are not offered as targets
|
|
15993
|
+
*/
|
|
15994
|
+
archived: boolean
|
|
15995
|
+
/**
|
|
15996
|
+
* Lifecycle bucket the status belongs to
|
|
15997
|
+
*/
|
|
15998
|
+
category: ("open" | "pending" | "resolved" | "closed")
|
|
15999
|
+
}
|
|
16000
|
+
/**
|
|
16001
|
+
* Free-form client-owned JSON
|
|
16002
|
+
*/
|
|
16003
|
+
metadata: {
|
|
16004
|
+
[k: string]: unknown
|
|
16005
|
+
}
|
|
16006
|
+
/**
|
|
16007
|
+
* Thread priority
|
|
16008
|
+
*/
|
|
16009
|
+
priority: ("low" | "normal" | "high" | "urgent")
|
|
16010
|
+
/**
|
|
16011
|
+
* Id of the status the thread sits on
|
|
16012
|
+
*/
|
|
16013
|
+
statusId: string
|
|
16014
|
+
/**
|
|
16015
|
+
* ISO-8601 creation timestamp
|
|
16016
|
+
*/
|
|
16017
|
+
createdAt: string
|
|
16018
|
+
/**
|
|
16019
|
+
* ISO-8601 last-modification timestamp
|
|
16020
|
+
*/
|
|
16021
|
+
updatedAt: string
|
|
16022
|
+
/**
|
|
16023
|
+
* ISO-8601 timestamp of the last reply, or null while there are none
|
|
16024
|
+
*/
|
|
16025
|
+
lastReplyAt: (string | null)
|
|
16026
|
+
/**
|
|
16027
|
+
* Display name for the external author, if given
|
|
16028
|
+
*/
|
|
16029
|
+
authorDisplay: (string | null)
|
|
16030
|
+
/**
|
|
16031
|
+
* Assigned agent, or null while unassigned
|
|
16032
|
+
*/
|
|
16033
|
+
assignedAgentId: (string | null)
|
|
16034
|
+
/**
|
|
16035
|
+
* The external author, byte-identical to what was stored
|
|
16036
|
+
*/
|
|
16037
|
+
authorExternalId: string
|
|
16038
|
+
}
|
|
16039
|
+
|
|
16040
|
+
export interface SupportThreadUpdateInput {
|
|
16041
|
+
/**
|
|
16042
|
+
* Thread id
|
|
16043
|
+
*/
|
|
16044
|
+
id: string
|
|
16045
|
+
/**
|
|
16046
|
+
* New subject of the thread
|
|
16047
|
+
*/
|
|
16048
|
+
title?: string
|
|
16049
|
+
/**
|
|
16050
|
+
* The complete new label set. Pass an empty array to remove every label
|
|
16051
|
+
*
|
|
16052
|
+
* @maxItems 50
|
|
16053
|
+
*/
|
|
16054
|
+
labelIds?: string[]
|
|
16055
|
+
/**
|
|
16056
|
+
* Replaces the whole client-owned metadata object
|
|
16057
|
+
*/
|
|
16058
|
+
metadata?: {
|
|
16059
|
+
[k: string]: unknown
|
|
16060
|
+
}
|
|
16061
|
+
/**
|
|
16062
|
+
* New priority
|
|
16063
|
+
*/
|
|
16064
|
+
priority?: ("low" | "normal" | "high" | "urgent")
|
|
16065
|
+
}
|
|
16066
|
+
|
|
16067
|
+
export interface SupportThreadUpdateOutput {
|
|
16068
|
+
/**
|
|
16069
|
+
* Thread id
|
|
16070
|
+
*/
|
|
16071
|
+
id: string
|
|
16072
|
+
/**
|
|
16073
|
+
* ticket: the end user wants something fixed. feedback: unsolicited input
|
|
16074
|
+
*/
|
|
16075
|
+
type: ("ticket" | "feedback")
|
|
16076
|
+
/**
|
|
16077
|
+
* Thread subject
|
|
16078
|
+
*/
|
|
16079
|
+
title: string
|
|
16080
|
+
/**
|
|
16081
|
+
* Every label on the thread, by name
|
|
16082
|
+
*/
|
|
16083
|
+
labels: {
|
|
16084
|
+
/**
|
|
16085
|
+
* Label id
|
|
16086
|
+
*/
|
|
16087
|
+
id: string
|
|
16088
|
+
/**
|
|
16089
|
+
* Label name, unique within the product
|
|
16090
|
+
*/
|
|
16091
|
+
name: string
|
|
16092
|
+
/**
|
|
16093
|
+
* Display colour as a hex string, or null if uncoloured
|
|
16094
|
+
*/
|
|
16095
|
+
color: (string | null)
|
|
16096
|
+
/**
|
|
16097
|
+
* ISO-8601 creation timestamp
|
|
16098
|
+
*/
|
|
16099
|
+
createdAt: string
|
|
16100
|
+
}[]
|
|
16101
|
+
/**
|
|
16102
|
+
* The status itself, joined in at read time
|
|
16103
|
+
*/
|
|
16104
|
+
status: {
|
|
16105
|
+
/**
|
|
16106
|
+
* Status id
|
|
16107
|
+
*/
|
|
16108
|
+
id: string
|
|
16109
|
+
/**
|
|
16110
|
+
* Status name, unique within the product
|
|
16111
|
+
*/
|
|
16112
|
+
name: string
|
|
16113
|
+
/**
|
|
16114
|
+
* Display colour as a hex string
|
|
16115
|
+
*/
|
|
16116
|
+
color: string
|
|
16117
|
+
/**
|
|
16118
|
+
* Sort order within the status dictionary
|
|
16119
|
+
*/
|
|
16120
|
+
order: number
|
|
16121
|
+
/**
|
|
16122
|
+
* Archived statuses stay readable but are not offered as targets
|
|
16123
|
+
*/
|
|
16124
|
+
archived: boolean
|
|
16125
|
+
/**
|
|
16126
|
+
* Lifecycle bucket the status belongs to
|
|
16127
|
+
*/
|
|
16128
|
+
category: ("open" | "pending" | "resolved" | "closed")
|
|
16129
|
+
}
|
|
16130
|
+
/**
|
|
16131
|
+
* Free-form client-owned JSON
|
|
16132
|
+
*/
|
|
16133
|
+
metadata: {
|
|
16134
|
+
[k: string]: unknown
|
|
16135
|
+
}
|
|
16136
|
+
/**
|
|
16137
|
+
* Thread priority
|
|
16138
|
+
*/
|
|
16139
|
+
priority: ("low" | "normal" | "high" | "urgent")
|
|
16140
|
+
/**
|
|
16141
|
+
* Id of the status the thread sits on
|
|
16142
|
+
*/
|
|
16143
|
+
statusId: string
|
|
16144
|
+
/**
|
|
16145
|
+
* ISO-8601 creation timestamp
|
|
16146
|
+
*/
|
|
16147
|
+
createdAt: string
|
|
16148
|
+
/**
|
|
16149
|
+
* ISO-8601 last-modification timestamp
|
|
16150
|
+
*/
|
|
16151
|
+
updatedAt: string
|
|
16152
|
+
/**
|
|
16153
|
+
* ISO-8601 timestamp of the last reply, or null while there are none
|
|
16154
|
+
*/
|
|
16155
|
+
lastReplyAt: (string | null)
|
|
16156
|
+
/**
|
|
16157
|
+
* Display name for the external author, if given
|
|
16158
|
+
*/
|
|
16159
|
+
authorDisplay: (string | null)
|
|
16160
|
+
/**
|
|
16161
|
+
* Assigned agent, or null while unassigned
|
|
16162
|
+
*/
|
|
16163
|
+
assignedAgentId: (string | null)
|
|
16164
|
+
/**
|
|
16165
|
+
* The external author, byte-identical to what was stored
|
|
16166
|
+
*/
|
|
16167
|
+
authorExternalId: string
|
|
16168
|
+
}
|
|
16169
|
+
|
|
14660
16170
|
export interface TrackingDomainsCreateInput {
|
|
14661
16171
|
host?: string
|
|
14662
16172
|
records?: {
|