/* * Copyright 2010-2023 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. */ package com.amazonaws.services.connect.model; import java.io.Serializable; import com.amazonaws.AmazonWebServiceRequest; /** *

* 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 class GetCurrentMetricDataRequest extends AmazonWebServiceRequest implements Serializable { /** *

* The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the * instance. *

*

* Constraints:
* Length: 1 - 100
*/ private String instanceId; /** *

* The filters to apply to returned metrics. You can filter up to the * following limits: *

* *

* 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. *

*/ private Filters filters; /** *

* 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. *

* */ private java.util.List groupings; /** *

* 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 *

*
*
*/ private java.util.List currentMetrics; /** *

* 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. *

*/ private String nextToken; /** *

* The maximum number of results to return per page. *

*

* Constraints:
* Range: 1 - 100
*/ private Integer maxResults; /** *

* 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: *

* */ private java.util.List sortCriteria; /** *

* The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the * instance. *

*

* Constraints:
* Length: 1 - 100
* * @return

* The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of * the instance. *

*/ public String getInstanceId() { return instanceId; } /** *

* The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the * instance. *

*

* Constraints:
* Length: 1 - 100
* * @param instanceId

* The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of * the instance. *

*/ public void setInstanceId(String instanceId) { this.instanceId = instanceId; } /** *

* The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the * instance. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 1 - 100
* * @param instanceId

* The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of * the instance. *

* @return A reference to this updated object so that method calls can be * chained together. */ public GetCurrentMetricDataRequest withInstanceId(String instanceId) { this.instanceId = instanceId; return this; } /** *

* 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. *

* * @return

* 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. *

*/ public Filters getFilters() { return 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. *

* * @param 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. *

*/ public void setFilters(Filters filters) { this.filters = 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. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param 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. *

* @return A reference to this updated object so that method calls can be * chained together. */ public GetCurrentMetricDataRequest withFilters(Filters filters) { this.filters = filters; return this; } /** *

* 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. *

    *
  • *
* * @return

* 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. *

    *
  • *
*/ public java.util.List getGroupings() { return 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. *

    *
  • *
* * @param 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. *

    *
  • *
*/ public void setGroupings(java.util.Collection groupings) { if (groupings == null) { this.groupings = null; return; } this.groupings = new java.util.ArrayList(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. *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param 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. *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public GetCurrentMetricDataRequest withGroupings(String... groupings) { if (getGroupings() == null) { this.groupings = new java.util.ArrayList(groupings.length); } for (String value : groupings) { this.groupings.add(value); } return this; } /** *

* 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. *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param 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. *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public GetCurrentMetricDataRequest withGroupings(java.util.Collection groupings) { setGroupings(groupings); return this; } /** *

* 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 *

*
*
* * @return

* 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 *

*
*
*/ public java.util.List getCurrentMetrics() { return 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 *

*
*
* * @param 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 *

*
*
*/ public void setCurrentMetrics(java.util.Collection currentMetrics) { if (currentMetrics == null) { this.currentMetrics = null; return; } this.currentMetrics = new java.util.ArrayList(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 *

*
*
*

* Returns a reference to this object so that method calls can be chained * together. * * @param 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 *

*
*
* @return A reference to this updated object so that method calls can be * chained together. */ public GetCurrentMetricDataRequest withCurrentMetrics(CurrentMetric... currentMetrics) { if (getCurrentMetrics() == null) { this.currentMetrics = new java.util.ArrayList(currentMetrics.length); } for (CurrentMetric value : currentMetrics) { this.currentMetrics.add(value); } return this; } /** *

* 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 *

*
*
*

* Returns a reference to this object so that method calls can be chained * together. * * @param 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 *

*
*
* @return A reference to this updated object so that method calls can be * chained together. */ public GetCurrentMetricDataRequest withCurrentMetrics( java.util.Collection currentMetrics) { setCurrentMetrics(currentMetrics); return this; } /** *

* 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. *

* * @return

* 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 getNextToken() { return 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. *

* * @param 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 void setNextToken(String nextToken) { this.nextToken = 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. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param 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. *

* @return A reference to this updated object so that method calls can be * chained together. */ public GetCurrentMetricDataRequest withNextToken(String nextToken) { this.nextToken = nextToken; return this; } /** *

* The maximum number of results to return per page. *

*

* Constraints:
* Range: 1 - 100
* * @return

* The maximum number of results to return per page. *

*/ public Integer getMaxResults() { return maxResults; } /** *

* The maximum number of results to return per page. *

*

* Constraints:
* Range: 1 - 100
* * @param maxResults

* The maximum number of results to return per page. *

*/ public void setMaxResults(Integer maxResults) { this.maxResults = maxResults; } /** *

* The maximum number of results to return per page. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Range: 1 - 100
* * @param maxResults

* The maximum number of results to return per page. *

* @return A reference to this updated object so that method calls can be * chained together. */ public GetCurrentMetricDataRequest withMaxResults(Integer maxResults) { this.maxResults = maxResults; return this; } /** *

* 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. *

    *
  • *
* * @return

* 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. *

    *
  • *
*/ public java.util.List getSortCriteria() { return 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. *

    *
  • *
* * @param 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. *

    *
  • *
*/ public void setSortCriteria(java.util.Collection sortCriteria) { if (sortCriteria == null) { this.sortCriteria = null; return; } this.sortCriteria = new java.util.ArrayList(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. *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param 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. *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public GetCurrentMetricDataRequest withSortCriteria(CurrentMetricSortCriteria... sortCriteria) { if (getSortCriteria() == null) { this.sortCriteria = new java.util.ArrayList( sortCriteria.length); } for (CurrentMetricSortCriteria value : sortCriteria) { this.sortCriteria.add(value); } return this; } /** *

* 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. *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param 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. *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public GetCurrentMetricDataRequest withSortCriteria( java.util.Collection sortCriteria) { setSortCriteria(sortCriteria); return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getInstanceId() != null) sb.append("InstanceId: " + getInstanceId() + ","); if (getFilters() != null) sb.append("Filters: " + getFilters() + ","); if (getGroupings() != null) sb.append("Groupings: " + getGroupings() + ","); if (getCurrentMetrics() != null) sb.append("CurrentMetrics: " + getCurrentMetrics() + ","); if (getNextToken() != null) sb.append("NextToken: " + getNextToken() + ","); if (getMaxResults() != null) sb.append("MaxResults: " + getMaxResults() + ","); if (getSortCriteria() != null) sb.append("SortCriteria: " + getSortCriteria()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getInstanceId() == null) ? 0 : getInstanceId().hashCode()); hashCode = prime * hashCode + ((getFilters() == null) ? 0 : getFilters().hashCode()); hashCode = prime * hashCode + ((getGroupings() == null) ? 0 : getGroupings().hashCode()); hashCode = prime * hashCode + ((getCurrentMetrics() == null) ? 0 : getCurrentMetrics().hashCode()); hashCode = prime * hashCode + ((getNextToken() == null) ? 0 : getNextToken().hashCode()); hashCode = prime * hashCode + ((getMaxResults() == null) ? 0 : getMaxResults().hashCode()); hashCode = prime * hashCode + ((getSortCriteria() == null) ? 0 : getSortCriteria().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof GetCurrentMetricDataRequest == false) return false; GetCurrentMetricDataRequest other = (GetCurrentMetricDataRequest) obj; if (other.getInstanceId() == null ^ this.getInstanceId() == null) return false; if (other.getInstanceId() != null && other.getInstanceId().equals(this.getInstanceId()) == false) return false; if (other.getFilters() == null ^ this.getFilters() == null) return false; if (other.getFilters() != null && other.getFilters().equals(this.getFilters()) == false) return false; if (other.getGroupings() == null ^ this.getGroupings() == null) return false; if (other.getGroupings() != null && other.getGroupings().equals(this.getGroupings()) == false) return false; if (other.getCurrentMetrics() == null ^ this.getCurrentMetrics() == null) return false; if (other.getCurrentMetrics() != null && other.getCurrentMetrics().equals(this.getCurrentMetrics()) == false) return false; if (other.getNextToken() == null ^ this.getNextToken() == null) return false; if (other.getNextToken() != null && other.getNextToken().equals(this.getNextToken()) == false) return false; if (other.getMaxResults() == null ^ this.getMaxResults() == null) return false; if (other.getMaxResults() != null && other.getMaxResults().equals(this.getMaxResults()) == false) return false; if (other.getSortCriteria() == null ^ this.getSortCriteria() == null) return false; if (other.getSortCriteria() != null && other.getSortCriteria().equals(this.getSortCriteria()) == false) return false; return true; } }