UNPKG

2.06 kBTypeScriptView Raw
1import { Callback, Handler } from '../handler';
2
3export type ConnectContactFlowHandler = Handler<ConnectContactFlowEvent, ConnectContactFlowResult>;
4export type ConnectContactFlowCallback = Callback<ConnectContactFlowResult>;
5
6// Connect
7// https://docs.aws.amazon.com/connect/latest/adminguide/connect-lambda-functions.html
8export interface ConnectContactFlowEvent {
9 Details: {
10 ContactData: {
11 Attributes: { [key: string]: string };
12 Channel: ConnectContactFlowChannel;
13 ContactId: string;
14 CustomerEndpoint: ConnectContactFlowEndpoint | null;
15 InitialContactId: string;
16 InitiationMethod: ConnectContactFlowInitiationMethod;
17 InstanceARN: string;
18 PreviousContactId: string;
19 Queue: ConnectContactFlowQueue | null;
20 SystemEndpoint: ConnectContactFlowEndpoint | null;
21 MediaStreams: {
22 Customer: {
23 Audio: CustomerAudio;
24 };
25 };
26 };
27 Parameters: { [key: string]: string };
28 };
29 Name: 'ContactFlowEvent';
30}
31
32export type ConnectContactFlowChannel = 'VOICE' | 'CHAT';
33
34export type ConnectContactFlowInitiationMethod = 'INBOUND' | 'OUTBOUND' | 'TRANSFER' | 'CALLBACK' | 'API';
35
36export interface ConnectContactFlowEndpoint {
37 Address: string;
38 Type: 'TELEPHONE_NUMBER';
39}
40
41export interface ConnectContactFlowQueue {
42 ARN: string;
43 Name: string;
44}
45
46export interface ConnectContactFlowResult {
47 [key: string]: string | null;
48}
49
50export type CustomerAudio =
51 | null // If Media Streaming has never been started.
52 | StartedCustomerAudio // If Media Streaming has been started, but not stopped.
53 | StartedCustomerAudio & StoppedCustomerAudio // If Media Streaming has been started and stopped.
54 ;
55
56export interface StartedCustomerAudio {
57 StartFragmentNumber: string;
58 StartTimestamp: string;
59 StreamARN: string;
60}
61
62export interface StoppedCustomerAudio {
63 StopFragmentNumber: string;
64 StopTimestamp: string;
65}