/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the connect-2017-08-08.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Connect.Model
{
///
/// Container for the parameters to the TransferContact operation.
/// Transfers contacts from one agent or queue to another agent or queue at any point
/// after a contact is created. You can transfer a contact to another queue by providing
/// the flow which orchestrates the contact to the destination queue. This gives you more
/// control over contact handling and helps you adhere to the service level agreement
/// (SLA) guaranteed to your customers.
///
///
///
/// Note the following requirements:
///
/// -
///
/// Transfer is supported for only
TASK
contacts.
///
/// -
///
/// Do not use both
QueueId
and UserId
in the same call.
///
/// -
///
/// The following flow types are supported: Inbound flow, Transfer to agent flow, and
/// Transfer to queue flow.
///
///
-
///
/// The
TransferContact
API can be called only on active contacts.
///
/// -
///
/// A contact cannot be transferred more than 11 times.
///
///
///
public partial class TransferContactRequest : AmazonConnectRequest
{
private string _clientToken;
private string _contactFlowId;
private string _contactId;
private string _instanceId;
private string _queueId;
private string _userId;
///
/// Gets and sets the property ClientToken.
///
/// A unique, case-sensitive identifier that you provide to ensure the idempotency of
/// the request. If not provided, the Amazon Web Services SDK populates this field. For
/// more information about idempotency, see Making
/// retries safe with idempotent APIs.
///
///
[AWSProperty(Max=500)]
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property ContactFlowId.
///
/// The identifier of the flow.
///
///
[AWSProperty(Required=true, Max=500)]
public string ContactFlowId
{
get { return this._contactFlowId; }
set { this._contactFlowId = value; }
}
// Check to see if ContactFlowId property is set
internal bool IsSetContactFlowId()
{
return this._contactFlowId != null;
}
///
/// Gets and sets the property ContactId.
///
/// The identifier of the contact in this instance of Amazon Connect.
///
///
[AWSProperty(Required=true, Min=1, Max=256)]
public string ContactId
{
get { return this._contactId; }
set { this._contactId = value; }
}
// Check to see if ContactId property is set
internal bool IsSetContactId()
{
return this._contactId != null;
}
///
/// Gets and sets the property InstanceId.
///
/// The identifier of the Amazon Connect instance. You can find
/// the instance ID in the Amazon Resource Name (ARN) of the instance.
///
///
[AWSProperty(Required=true, Min=1, Max=100)]
public string InstanceId
{
get { return this._instanceId; }
set { this._instanceId = value; }
}
// Check to see if InstanceId property is set
internal bool IsSetInstanceId()
{
return this._instanceId != null;
}
///
/// Gets and sets the property QueueId.
///
/// The identifier for the queue.
///
///
public string QueueId
{
get { return this._queueId; }
set { this._queueId = value; }
}
// Check to see if QueueId property is set
internal bool IsSetQueueId()
{
return this._queueId != null;
}
///
/// Gets and sets the property UserId.
///
/// The identifier for the user.
///
///
[AWSProperty(Min=1, Max=256)]
public string UserId
{
get { return this._userId; }
set { this._userId = value; }
}
// Check to see if UserId property is set
internal bool IsSetUserId()
{
return this._userId != null;
}
}
}