using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace Amazon.Lambda.ConnectEvents
{
///
/// This class represents the input event from Amazon Connect ContactFlow. It is used as the input parameter
/// for Lambda functions.
/// https://docs.aws.amazon.com/lambda/latest/dg/services-connect.html
/// https://docs.aws.amazon.com/connect/latest/adminguide/connect-lambda-functions.html
///
public class ContactFlowEvent
{
///
/// ContactFlow Details
///
public ContactFlowDetails Details { get; set; }
///
/// Event Name
///
public string Name { get; set; }
///
/// Class represnting details of ContactFlow
///
public class ContactFlowDetails
{
///
/// Contact data. This is always passed by Amazon Connect for every contact.
///
public ContactData ContactData { get; set; }
///
/// These are parameters specific to this call that were defined when you created the Lambda function.
///
public IDictionary Parameters { get; set; }
}
///
/// Class representing contact data.
///
public class ContactData
{
///
/// User attributes that have been previously associated with a contact, such as when using a Set contact attributes block in a contact flow. This map may be empty if there aren't any saved attributes.
///
public IDictionary Attributes { get; set; }
///
/// Channel (such as Voice, Chat or Tasks)
///
public string Channel { get; set; }
///
/// Contact ID
///
public string ContactId { get; set; }
///
/// Customer Endpoint
///
public Endpoint CustomerEndpoint { get; set; }
///
/// Initial Contact ID
///
public string InitialContactId { get; set; }
///
/// Initiation Method (INBOUND | OUTBOUND | TRANSFER | CALLBACK)
///
public string InitiationMethod { get; set; }
///
/// The Amazon Resource Name (ARN) of the Amazon Connect instance.
///
public string InstanceARN { get; set; }
///
/// Previous Contact ID
///
public string PreviousContactId { get; set; }
///
/// Contains information about a queue.
///
public Queue Queue { get; set; }
///
/// System Endpoint
///
public Endpoint SystemEndpoint { get; set; }
}
///
/// Class representing endpoint.
///
public class Endpoint
{
///
/// Address (such as telephone number).
///
public string Address { get; set; }
///
/// Endpoint Type (such as TELEPHONE_NUMBER).
///
public string Type { get; set; }
}
///
/// Contains information about a queue.
///
public class Queue
{
///
/// The Amazon Resource Name (ARN) for the queue.
///
public string Arn { get; set; }
///
/// Queue name.
///
public string Name { get; set; }
}
}
}