/*
* 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 GetCurrentMetricData operation.
/// Gets the real-time metric data from the specified Amazon Connect instance.
///
///
///
/// For a description of each metric, see Real-time
/// Metrics Definitions in the Amazon Connect Administrator Guide.
///
///
public partial class GetCurrentMetricDataRequest : AmazonConnectRequest
{
private List _currentMetrics = new List();
private Filters _filters;
private List _groupings = new List();
private string _instanceId;
private int? _maxResults;
private string _nextToken;
private List _sortCriteria = new List();
///
/// Gets and sets the property CurrentMetrics.
///
/// The metrics to retrieve. Specify the name and unit for each metric. The following
/// metrics are available. For a description of all the metrics, see Real-time
/// Metrics Definitions in the Amazon Connect Administrator Guide.
///
/// - AGENTS_AFTER_CONTACT_WORK
-
///
/// Unit: COUNT
///
///
///
/// Name in real-time metrics report: ACW
///
///
///
- AGENTS_AVAILABLE
-
///
/// Unit: COUNT
///
///
///
/// Name in real-time metrics report: Available
///
///
///
- AGENTS_ERROR
-
///
/// Unit: COUNT
///
///
///
/// Name in real-time metrics report: Error
///
///
///
- AGENTS_NON_PRODUCTIVE
-
///
/// Unit: COUNT
///
///
///
/// Name in real-time metrics report: NPT
/// (Non-Productive Time)
///
///
- AGENTS_ON_CALL
-
///
/// Unit: COUNT
///
///
///
/// Name in real-time metrics report: On
/// contact
///
///
- AGENTS_ON_CONTACT
-
///
/// Unit: COUNT
///
///
///
/// Name in real-time metrics report: On
/// contact
///
///
- AGENTS_ONLINE
-
///
/// Unit: COUNT
///
///
///
/// Name in real-time metrics report: Online
///
///
///
- AGENTS_STAFFED
-
///
/// Unit: COUNT
///
///
///
/// Name in real-time metrics report: Staffed
///
///
///
- CONTACTS_IN_QUEUE
-
///
/// Unit: COUNT
///
///
///
/// Name in real-time metrics report: In
/// queue
///
///
- CONTACTS_SCHEDULED
-
///
/// Unit: COUNT
///
///
///
/// Name in real-time metrics report: Scheduled
///
///
///
- OLDEST_CONTACT_AGE
-
///
/// Unit: SECONDS
///
///
///
/// When you use groupings, Unit says SECONDS and the Value is returned in SECONDS.
///
///
///
/// When you do not use groupings, Unit says SECONDS but the Value is returned in MILLISECONDS.
/// For example, if you get a response like this:
///
///
///
///
{ "Metric": { "Name": "OLDEST_CONTACT_AGE", "Unit": "SECONDS" }, "Value": 24113.0
///
}
///
///
///
/// The actual OLDEST_CONTACT_AGE is 24 seconds.
///
///
///
/// Name in real-time metrics report: Oldest
///
///
/// - SLOTS_ACTIVE
-
///
/// Unit: COUNT
///
///
///
/// Name in real-time metrics report: Active
///
///
///
- SLOTS_AVAILABLE
-
///
/// Unit: COUNT
///
///
///
/// Name in real-time metrics report: Availability
///
///
///
///
[AWSProperty(Required=true)]
public List CurrentMetrics
{
get { return this._currentMetrics; }
set { this._currentMetrics = value; }
}
// Check to see if CurrentMetrics property is set
internal bool IsSetCurrentMetrics()
{
return this._currentMetrics != null && this._currentMetrics.Count > 0;
}
///
/// Gets and sets the property Filters.
///
/// The filters to apply to returned metrics. You can filter up to the following limits:
///
/// -
///
/// Queues: 100
///
///
-
///
/// Routing profiles: 100
///
///
-
///
/// Channels: 3 (VOICE, CHAT, and TASK channels are supported.)
///
///
///
/// Metric data is retrieved only for the resources associated with the queues or routing
/// profiles, and by any channels included in the filter. (You cannot filter by both queue
/// AND routing profile.) You can include both resource IDs and resource ARNs in the same
/// request.
///
///
///
/// Currently tagging is only supported on the resources that are passed in the filter.
///
///
[AWSProperty(Required=true)]
public Filters Filters
{
get { return this._filters; }
set { this._filters = value; }
}
// Check to see if Filters property is set
internal bool IsSetFilters()
{
return this._filters != null;
}
///
/// Gets and sets the property Groupings.
///
/// The grouping applied to the metrics returned. For example, when grouped by QUEUE
,
/// the metrics returned apply to each queue rather than aggregated for all queues.
///
/// -
///
/// If you group by
CHANNEL
, you should include a Channels filter. VOICE,
/// CHAT, and TASK channels are supported.
///
/// -
///
/// If you group by
ROUTING_PROFILE
, you must include either a queue or routing
/// profile filter. In addition, a routing profile filter is required for metrics CONTACTS_SCHEDULED
,
/// CONTACTS_IN_QUEUE
, and OLDEST_CONTACT_AGE
.
///
/// -
///
/// If no
Grouping
is included in the request, a summary of metrics is returned.
///
///
///
[AWSProperty(Max=2)]
public List Groupings
{
get { return this._groupings; }
set { this._groupings = value; }
}
// Check to see if Groupings property is set
internal bool IsSetGroupings()
{
return this._groupings != null && this._groupings.Count > 0;
}
///
/// 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 MaxResults.
///
/// The maximum number of results to return per page.
///
///
[AWSProperty(Min=1, Max=100)]
public int MaxResults
{
get { return this._maxResults.GetValueOrDefault(); }
set { this._maxResults = value; }
}
// Check to see if MaxResults property is set
internal bool IsSetMaxResults()
{
return this._maxResults.HasValue;
}
///
/// Gets and sets the property NextToken.
///
/// The token for the next set of results. Use the value returned in the previous response
/// in the next request to retrieve the next set of results.
///
///
///
/// The token expires after 5 minutes from the time it is created. Subsequent requests
/// that use the token must use the same request parameters as the request that generated
/// the token.
///
///
public string NextToken
{
get { return this._nextToken; }
set { this._nextToken = value; }
}
// Check to see if NextToken property is set
internal bool IsSetNextToken()
{
return this._nextToken != null;
}
///
/// Gets and sets the property SortCriteria.
///
/// The way to sort the resulting response based on metrics. You can enter one sort criteria.
/// By default resources are sorted based on AGENTS_ONLINE
, DESCENDING
.
/// The metric collection is sorted based on the input metrics.
///
///
///
/// Note the following:
///
/// -
///
/// Sorting on
SLOTS_ACTIVE
and SLOTS_AVAILABLE
is not supported.
///
///
///
[AWSProperty(Min=0, Max=1)]
public List SortCriteria
{
get { return this._sortCriteria; }
set { this._sortCriteria = value; }
}
// Check to see if SortCriteria property is set
internal bool IsSetSortCriteria()
{
return this._sortCriteria != null && this._sortCriteria.Count > 0;
}
}
}