service/connect/api_op_GetMetricDataV2.go (214 lines of code) (raw):
// Code generated by smithy-go-codegen DO NOT EDIT.
package connect
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/service/connect/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
"time"
)
// Gets metric data from the specified Amazon Connect instance.
//
// GetMetricDataV2 offers more features than [GetMetricData], the previous version of this API.
// It has new metrics, offers filtering at a metric level, and offers the ability
// to filter and group data by channels, queues, routing profiles, agents, and
// agent hierarchy levels. It can retrieve historical data for the last 3 months,
// at varying intervals. It does not support agent queues.
//
// For a description of the historical metrics that are supported by
// GetMetricDataV2 and GetMetricData , see [Metrics definitions] in the Amazon Connect Administrator
// Guide.
//
// [GetMetricData]: https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricData.html
// [Metrics definitions]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html
func (c *Client) GetMetricDataV2(ctx context.Context, params *GetMetricDataV2Input, optFns ...func(*Options)) (*GetMetricDataV2Output, error) {
if params == nil {
params = &GetMetricDataV2Input{}
}
result, metadata, err := c.invokeOperation(ctx, "GetMetricDataV2", params, optFns, c.addOperationGetMetricDataV2Middlewares)
if err != nil {
return nil, err
}
out := result.(*GetMetricDataV2Output)
out.ResultMetadata = metadata
return out, nil
}
type GetMetricDataV2Input struct {
// The timestamp, in UNIX Epoch time format, at which to end the reporting
// interval for the retrieval of historical metrics data. The time must be later
// than the start time timestamp. It cannot be later than the current timestamp.
//
// This member is required.
EndTime *time.Time
// The filters to apply to returned metrics. You can filter on the following
// resources:
//
// - Agents
//
// - Campaigns
//
// - Channels
//
// - Feature
//
// - Queues
//
// - Routing profiles
//
// - Routing step expression
//
// - User hierarchy groups
//
// At least one filter must be passed from queues, routing profiles, agents, or
// user hierarchy groups.
//
// For metrics for outbound campaigns analytics, you can also use campaigns to
// satisfy at least one filter requirement.
//
// To filter by phone number, see [Create a historical metrics report] in the Amazon Connect Administrator Guide.
//
// Note the following limits:
//
// - Filter keys: A maximum of 5 filter keys are supported in a single request.
// Valid filter keys: AGENT | AGENT_HIERARCHY_LEVEL_ONE |
// AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE |
// AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE |
// ANSWERING_MACHINE_DETECTION_STATUS | BOT_ID | BOT_ALIAS | BOT_VERSION |
// BOT_LOCALE | BOT_INTENT_NAME | CAMPAIGN | CAMPAIGN_DELIVERY_EVENT_TYPE |
// CASE_TEMPLATE_ARN | CASE_STATUS | CHANNEL |
// contact/segmentAttributes/connect:Subtype | DISCONNECT_REASON |
// EVALUATION_FORM | EVALUATION_SECTION | EVALUATION_QUESTION | EVALUATION_SOURCE
// | FEATURE | FLOW_ACTION_ID | FLOW_TYPE | FLOWS_MODULE_RESOURCE_ID |
// FLOWS_NEXT_RESOURCE_ID | FLOWS_NEXT_RESOURCE_QUEUE_ID | FLOWS_OUTCOME_TYPE |
// FLOWS_RESOURCE_ID | FORM_VERSION | INITIATION_METHOD |
// INVOKING_RESOURCE_PUBLISHED_TIMESTAMP | INVOKING_RESOURCE_TYPE |
// PARENT_FLOWS_RESOURCE_ID | RESOURCE_PUBLISHED_TIMESTAMP | ROUTING_PROFILE |
// ROUTING_STEP_EXPRESSION | QUEUE | Q_CONNECT_ENABLED |
//
// - Filter values: A maximum of 100 filter values are supported in a single
// request. VOICE, CHAT, and TASK are valid filterValue for the CHANNEL filter
// key. They do not count towards limitation of 100 filter values. For example, a
// GetMetricDataV2 request can filter by 50 queues, 35 agents, and 15 routing
// profiles for a total of 100 filter values, along with 3 channel filters.
//
// contact_lens_conversational_analytics is a valid filterValue for the FEATURE
// filter key. It is available only to contacts analyzed by Contact Lens
// conversational analytics.
//
// connect:Chat , connect:SMS , connect:Telephony , and connect:WebRTC are valid
// filterValue examples (not exhaustive) for the
// contact/segmentAttributes/connect:Subtype filter key.
//
// ROUTING_STEP_EXPRESSION is a valid filter key with a filter value up to 3000
// length. This filter is case and order sensitive. JSON string fields must be
// sorted in ascending order and JSON array order should be kept as is.
//
// Q_CONNECT_ENABLED . TRUE and FALSE are the only valid filterValues for the
// Q_CONNECT_ENABLED filter key.
//
// - TRUE includes all contacts that had Amazon Q in Connect enabled as part of
// the flow.
//
// - FALSE includes all contacts that did not have Amazon Q in Connect enabled
// as part of the flow
//
// This filter is available only for contact record-driven metrics.
//
// [Campaign]ARNs are valid filterValues for the CAMPAIGN filter key.
//
// [Create a historical metrics report]: https://docs.aws.amazon.com/connect/latest/adminguide/create-historical-metrics-report.html
// [Campaign]: https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-outbound-campaigns_Campaign.html
//
// This member is required.
Filters []types.FilterV2
// The metrics to retrieve. Specify the name, groupings, and filters for each
// metric. The following historical metrics are available. For a description of
// each metric, see [Metrics definition]in the Amazon Connect Administrator Guide.
//
// ABANDONMENT_RATE Unit: Percent
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Abandonment rate]
//
// AGENT_ADHERENT_TIME This metric is available only in Amazon Web Services
// Regions where [Forecasting, capacity planning, and scheduling]is available.
//
// Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy
//
// UI name: [Adherent time]
//
// AGENT_ANSWER_RATE Unit: Percent
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy
//
// UI name: [Agent answer rate]
//
// AGENT_NON_ADHERENT_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy
//
// UI name: [Non-adherent time]
//
// AGENT_NON_RESPONSE Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy
//
// UI name: [Agent non-response]
//
// AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy
//
// Data for this metric is available starting from October 1, 2023 0:00:00 GMT.
//
// UI name: [Agent non-response without customer abandons]
//
// AGENT_OCCUPANCY Unit: Percentage
//
// Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy
//
// UI name: [Occupancy]
//
// AGENT_SCHEDULE_ADHERENCE This metric is available only in Amazon Web Services
// Regions where [Forecasting, capacity planning, and scheduling]is available.
//
// Unit: Percent
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy
//
// UI name: [Adherence]
//
// AGENT_SCHEDULED_TIME This metric is available only in Amazon Web Services
// Regions where [Forecasting, capacity planning, and scheduling]is available.
//
// Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy
//
// UI name: [Scheduled time]
//
// AVG_ABANDON_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average queue abandon time]
//
// AVG_ACTIVE_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Q in Connect
//
// UI name: [Average active time]
//
// AVG_AFTER_CONTACT_WORK_TIME Unit: Seconds
//
// Valid metric filter key: INITIATION_METHOD
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average after contact work time]
//
// Feature is a valid filter but not a valid grouping.
//
// AVG_AGENT_CONNECTING_TIME Unit: Seconds
//
// Valid metric filter key: INITIATION_METHOD . For now, this metric only supports
// the following as INITIATION_METHOD : INBOUND | OUTBOUND | CALLBACK | API
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy
//
// UI name: [Average agent API connecting time]
//
// The Negate key in metric-level filters is not applicable for this metric.
//
// AVG_AGENT_PAUSE_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Q in Connect
//
// UI name: [Average agent pause time]
//
// AVG_BOT_CONVERSATION_TIME Unit: Seconds
//
// Valid groupings and filters: Channel,
// contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot
// locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID,
// Invoking resource published timestamp, Initiation method, Invoking resource
// type, Parent flows resource ID
//
// UI name: [Average bot conversation time]
//
// AVG_BOT_CONVERSATION_TURNS Unit: Count
//
// Valid groupings and filters: Channel,
// contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot
// locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID,
// Invoking resource published timestamp, Initiation method, Invoking resource
// type, Parent flows resource ID
//
// UI name: [Average bot conversation turns]
//
// AVG_CASE_RELATED_CONTACTS Unit: Count
//
// Required filter key: CASE_TEMPLATE_ARN
//
// Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS
//
// UI name: [Average contacts per case]
//
// AVG_CASE_RESOLUTION_TIME Unit: Seconds
//
// Required filter key: CASE_TEMPLATE_ARN
//
// Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS
//
// UI name: [Average case resolution time]
//
// AVG_CONTACT_DURATION Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average contact duration]
//
// Feature is a valid filter but not a valid grouping.
//
// AVG_CONVERSATION_DURATION Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average conversation duration]
//
// AVG_DIALS_PER_MINUTE This metric is available only for outbound campaigns that
// use the agent assisted voice and automated voice delivery modes.
//
// Unit: Count
//
// Valid groupings and filters: Agent, Campaign, Queue, Routing Profile
//
// UI name: [Average dials per minute]
//
// AVG_EVALUATION_SCORE Unit: Percent
//
// Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form
// ID, Evaluation Section ID, Evaluation Question ID, Evaluation Source, Form
// Version, Queue, Routing Profile
//
// UI name: [Average evaluation score]
//
// AVG_FLOW_TIME Unit: Seconds
//
// Valid groupings and filters: Channel,
// contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID,
// Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows
// resource ID, Initiation method, Resource published timestamp
//
// UI name: [Average flow time]
//
// AVG_GREETING_TIME_AGENT This metric is available only for contacts analyzed by
// Contact Lens conversational analytics.
//
// Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average agent greeting time]
//
// AVG_HANDLE_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Feature, contact/segmentAttributes/connect:Subtype,
// RoutingStepExpression
//
// UI name: [Average handle time]
//
// Feature is a valid filter but not a valid grouping.
//
// AVG_HOLD_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average customer hold time]
//
// Feature is a valid filter but not a valid grouping.
//
// AVG_HOLD_TIME_ALL_CONTACTS Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average customer hold time all contacts]
//
// AVG_HOLDS Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average holds]
//
// Feature is a valid filter but not a valid grouping.
//
// AVG_INTERACTION_AND_HOLD_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average agent interaction and customer hold time]
//
// AVG_INTERACTION_TIME Unit: Seconds
//
// Valid metric filter key: INITIATION_METHOD
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Feature,
// contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average agent interaction time]
//
// Feature is a valid filter but not a valid grouping.
//
// AVG_INTERRUPTIONS_AGENT This metric is available only for contacts analyzed by
// Contact Lens conversational analytics.
//
// Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average agent interruptions]
//
// AVG_INTERRUPTION_TIME_AGENT This metric is available only for contacts analyzed
// by Contact Lens conversational analytics.
//
// Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average agent interruption time]
//
// AVG_NON_TALK_TIME This metric is available only for contacts analyzed by
// Contact Lens conversational analytics.
//
// Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average non-talk time]
//
// AVG_QUEUE_ANSWER_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Feature,
// contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average queue answer time]
//
// Feature is a valid filter but not a valid grouping.
//
// AVG_RESOLUTION_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile,
// contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average resolution time]
//
// AVG_TALK_TIME This metric is available only for contacts analyzed by Contact
// Lens conversational analytics.
//
// Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average talk time]
//
// AVG_TALK_TIME_AGENT This metric is available only for contacts analyzed by
// Contact Lens conversational analytics.
//
// Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average agent talk time]
//
// AVG_TALK_TIME_CUSTOMER This metric is available only for contacts analyzed by
// Contact Lens conversational analytics.
//
// Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Average customer talk time]
//
// AVG_WAIT_TIME_AFTER_CUSTOMER_CONNECTION This metric is available only for
// outbound campaigns that use the agent assisted voice and automated voice
// delivery modes.
//
// Unit: Seconds
//
// Valid groupings and filters: Campaign
//
// UI name: [Average wait time after customer connection]
//
// AVG_WEIGHTED_EVALUATION_SCORE Unit: Percent
//
// Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form
// Id, Evaluation Section ID, Evaluation Question ID, Evaluation Source, Form
// Version, Queue, Routing Profile
//
// UI name: [Average weighted evaluation score]
//
// BOT_CONVERSATIONS_COMPLETED Unit: Count
//
// Valid groupings and filters: Channel,
// contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot
// locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID,
// Invoking resource published timestamp, Initiation method, Invoking resource
// type, Parent flows resource ID
//
// UI name: [Bot conversations completed]
//
// BOT_INTENTS_COMPLETED Unit: Count
//
// Valid groupings and filters: Channel,
// contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot
// locale, Bot intent name, Flows resource ID, Flows module resource ID, Flow type,
// Flow action ID, Invoking resource published timestamp, Initiation method,
// Invoking resource type, Parent flows resource ID
//
// UI name: [Bot intents completed]
//
// CAMPAIGN_CONTACTS_ABANDONED_AFTER_X This metric is available only for outbound
// campaigns using the agent assisted voice and automated voice delivery modes.
//
// Unit: Count
//
// Valid groupings and filters: Agent, Campaign
//
// Threshold: For ThresholdValue , enter any whole number from 1 to 604800
// (inclusive), in seconds. For Comparison , you must enter GT (for Greater than).
//
// UI name: [Campaign contacts abandoned after X]
//
// CAMPAIGN_CONTACTS_ABANDONED_AFTER_X_RATE This metric is available only for
// outbound campaigns using the agent assisted voice and automated voice delivery
// modes.
//
// Unit: Percent
//
// Valid groupings and filters: Agent, Campaign
//
// Threshold: For ThresholdValue , enter any whole number from 1 to 604800
// (inclusive), in seconds. For Comparison , you must enter GT (for Greater than).
//
// UI name: [Campaign contacts abandoned after X rate]
//
// CAMPAIGN_INTERACTIONS This metric is available only for outbound campaigns
// using the email delivery mode.
//
// Unit: Count
//
// Valid metric filter key: CAMPAIGN_INTERACTION_EVENT_TYPE
//
// Valid groupings and filters: Campaign
//
// UI name: [Campaign interactions]
//
// CAMPAIGN_SEND_ATTEMPTS This metric is available only for outbound campaigns.
//
// Unit: Count
//
// Valid groupings and filters: Campaign, Channel,
// contact/segmentAttributes/connect:Subtype
//
// UI name: [Campaign send attempts]
//
// CASES_CREATED Unit: Count
//
// Required filter key: CASE_TEMPLATE_ARN
//
// Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS
//
// UI name: [Cases created]
//
// CONTACTS_CREATED Unit: Count
//
// Valid metric filter key: INITIATION_METHOD
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Feature,
// contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Contacts created]
//
// Feature is a valid filter but not a valid grouping.
//
// CONTACTS_HANDLED Unit: Count
//
// Valid metric filter key: INITIATION_METHOD , DISCONNECT_REASON
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Feature, contact/segmentAttributes/connect:Subtype,
// RoutingStepExpression, Q in Connect
//
// UI name: [API contacts handled]
//
// Feature is a valid filter but not a valid grouping.
//
// CONTACTS_HANDLED_BY_CONNECTED_TO_AGENT Unit: Count
//
// Valid metric filter key: INITIATION_METHOD
//
// Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy,
// contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Contacts handled (connected to agent timestamp)]
//
// CONTACTS_HOLD_ABANDONS Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Contacts hold disconnect]
//
// CONTACTS_ON_HOLD_AGENT_DISCONNECT Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Q in Connect
//
// UI name: [Contacts hold agent disconnect]
//
// CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Q in Connect
//
// UI name: [Contacts hold customer disconnect]
//
// CONTACTS_PUT_ON_HOLD Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Q in Connect
//
// UI name: [Contacts put on hold]
//
// CONTACTS_TRANSFERRED_OUT_EXTERNAL Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Q in Connect
//
// UI name: [Contacts transferred out external]
//
// CONTACTS_TRANSFERRED_OUT_INTERNAL Unit: Percent
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Q in Connect
//
// UI name: [Contacts transferred out internal]
//
// CONTACTS_QUEUED Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Contacts queued]
//
// CONTACTS_QUEUED_BY_ENQUEUE Unit: Count
//
// Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy,
// contact/segmentAttributes/connect:Subtype
//
// UI name: [Contacts queued (enqueue timestamp)]
//
// CONTACTS_REMOVED_FROM_QUEUE_IN_X Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Q in Connect
//
// Threshold: For ThresholdValue , enter any whole number from 1 to 604800
// (inclusive), in seconds. For Comparison , you can use LT (for "Less than") or
// LTE (for "Less than equal").
//
// UI name: [Contacts removed from queue in X seconds]
//
// CONTACTS_RESOLVED_IN_X Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile,
// contact/segmentAttributes/connect:Subtype, Q in Connect
//
// Threshold: For ThresholdValue , enter any whole number from 1 to 604800
// (inclusive), in seconds. For Comparison , you can use LT (for "Less than") or
// LTE (for "Less than equal").
//
// UI name: [Contacts resolved in X]
//
// CONTACTS_TRANSFERRED_OUT Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Contacts transferred out]
//
// Feature is a valid filter but not a valid grouping.
//
// CONTACTS_TRANSFERRED_OUT_BY_AGENT Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Contacts transferred out by agent]
//
// CONTACTS_TRANSFERRED_OUT_FROM_QUEUE Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Contacts transferred out queue]
//
// CURRENT_CASES Unit: Count
//
// Required filter key: CASE_TEMPLATE_ARN
//
// Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS
//
// UI name: [Current cases]
//
// DELIVERY_ATTEMPTS This metric is available only for outbound campaigns.
//
// Unit: Count
//
// Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS ,
// CAMPAIGN_DELIVERY_EVENT_TYPE , DISCONNECT_REASON
//
// Valid groupings and filters: Agent, Answering Machine Detection Status,
// Campaign, Campaign Delivery EventType, Channel,
// contact/segmentAttributes/connect:Subtype, Disconnect Reason, Queue, Routing
// Profile
//
// UI name: [Delivery attempts]
//
// Campaign Delivery EventType filter and grouping are only available for SMS and
// Email campaign delivery modes. Agent, Queue, Routing Profile, Answering Machine
// Detection Status and Disconnect Reason are only available for agent assisted
// voice and automated voice delivery modes.
//
// DELIVERY_ATTEMPT_DISPOSITION_RATE This metric is available only for outbound
// campaigns. Dispositions for the agent assisted voice and automated voice
// delivery modes are only available with answering machine detection enabled.
//
// Unit: Percent
//
// Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS ,
// CAMPAIGN_DELIVERY_EVENT_TYPE , DISCONNECT_REASON
//
// Valid groupings and filters: Agent, Answering Machine Detection Status,
// Campaign, Channel, contact/segmentAttributes/connect:Subtype, Disconnect Reason,
// Queue, Routing Profile
//
// UI name: [Delivery attempt disposition rate]
//
// Campaign Delivery Event Type filter and grouping are only available for SMS and
// Email campaign delivery modes. Agent, Queue, Routing Profile, Answering Machine
// Detection Status and Disconnect Reason are only available for agent assisted
// voice and automated voice delivery modes.
//
// EVALUATIONS_PERFORMED Unit: Count
//
// Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form
// ID, Evaluation Source, Form Version, Queue, Routing Profile
//
// UI name: [Evaluations performed]
//
// FLOWS_OUTCOME Unit: Count
//
// Valid groupings and filters: Channel,
// contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID,
// Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows
// resource ID, Initiation method, Resource published timestamp
//
// UI name: [Flows outcome]
//
// FLOWS_STARTED Unit: Count
//
// Valid groupings and filters: Channel,
// contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID,
// Flows resource ID, Initiation method, Resource published timestamp
//
// UI name: [Flows started]
//
// HUMAN_ANSWERED_CALLS This metric is available only for outbound campaigns.
// Dispositions for the agent assisted voice and automated voice delivery modes are
// only available with answering machine detection enabled.
//
// Unit: Count
//
// Valid groupings and filters: Agent, Campaign
//
// UI name: [Human answered]
//
// MAX_FLOW_TIME Unit: Seconds
//
// Valid groupings and filters: Channel,
// contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID,
// Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows
// resource ID, Initiation method, Resource published timestamp
//
// UI name: [Maximum flow time]
//
// MAX_QUEUED_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Maximum queued time]
//
// MIN_FLOW_TIME Unit: Seconds
//
// Valid groupings and filters: Channel,
// contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID,
// Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows
// resource ID, Initiation method, Resource published timestamp
//
// UI name: [Minimum flow time]
//
// PERCENT_AUTOMATIC_FAILS Unit: Percent
//
// Valid groupings and filters: Agent, Agent Hierarchy, Channel, Evaluation Form
// ID, Evaluation Source, Form Version, Queue, Routing Profile
//
// UI name: [Automatic fails percent]
//
// PERCENT_BOT_CONVERSATIONS_OUTCOME Unit: Percent
//
// Valid groupings and filters: Channel,
// contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot
// locale, Flows resource ID, Flows module resource ID, Flow type, Flow action ID,
// Invoking resource published timestamp, Initiation method, Invoking resource
// type, Parent flows resource ID
//
// UI name: [Percent bot conversations outcome]
//
// PERCENT_BOT_INTENTS_OUTCOME Unit: Percent
//
// Valid groupings and filters: Channel,
// contact/segmentAttributes/connect:Subtype, Bot ID, Bot alias, Bot version, Bot
// locale, Bot intent name, Flows resource ID, Flows module resource ID, Flow type,
// Flow action ID, Invoking resource published timestamp, Initiation method,
// Invoking resource type, Parent flows resource ID
//
// UI name: [Percent bot intents outcome]
//
// PERCENT_CASES_FIRST_CONTACT_RESOLVED Unit: Percent
//
// Required filter key: CASE_TEMPLATE_ARN
//
// Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS
//
// UI name: [Cases resolved on first contact]
//
// PERCENT_CONTACTS_STEP_EXPIRED Unit: Percent
//
// Valid groupings and filters: Queue, RoutingStepExpression
//
// UI name: This metric is available in Real-time Metrics UI but not on the
// Historical Metrics UI.
//
// PERCENT_CONTACTS_STEP_JOINED Unit: Percent
//
// Valid groupings and filters: Queue, RoutingStepExpression
//
// UI name: This metric is available in Real-time Metrics UI but not on the
// Historical Metrics UI.
//
// PERCENT_FLOWS_OUTCOME Unit: Percent
//
// Valid metric filter key: FLOWS_OUTCOME_TYPE
//
// Valid groupings and filters: Channel,
// contact/segmentAttributes/connect:Subtype, Flow type, Flows module resource ID,
// Flows next resource ID, Flows next resource queue ID, Flows outcome type, Flows
// resource ID, Initiation method, Resource published timestamp
//
// UI name: [Flows outcome percentage].
//
// The FLOWS_OUTCOME_TYPE is not a valid grouping.
//
// PERCENT_NON_TALK_TIME This metric is available only for contacts analyzed by
// Contact Lens conversational analytics.
//
// Unit: Percentage
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Non-talk time percent]
//
// PERCENT_TALK_TIME This metric is available only for contacts analyzed by
// Contact Lens conversational analytics.
//
// Unit: Percentage
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Talk time percent]
//
// PERCENT_TALK_TIME_AGENT This metric is available only for contacts analyzed by
// Contact Lens conversational analytics.
//
// Unit: Percentage
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Agent talk time percent]
//
// PERCENT_TALK_TIME_CUSTOMER This metric is available only for contacts analyzed
// by Contact Lens conversational analytics.
//
// Unit: Percentage
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Customer talk time percent]
//
// REOPENED_CASE_ACTIONS Unit: Count
//
// Required filter key: CASE_TEMPLATE_ARN
//
// Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS
//
// UI name: [Cases reopened]
//
// RESOLVED_CASE_ACTIONS Unit: Count
//
// Required filter key: CASE_TEMPLATE_ARN
//
// Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS
//
// UI name: [Cases resolved]
//
// SERVICE_LEVEL You can include up to 20 SERVICE_LEVEL metrics in a request.
//
// Unit: Percent
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Q in Connect
//
// Threshold: For ThresholdValue , enter any whole number from 1 to 604800
// (inclusive), in seconds. For Comparison , you can use LT (for "Less than") or
// LTE (for "Less than equal").
//
// UI name: [Service level X]
//
// STEP_CONTACTS_QUEUED Unit: Count
//
// Valid groupings and filters: Queue, RoutingStepExpression
//
// UI name: This metric is available in Real-time Metrics UI but not on the
// Historical Metrics UI.
//
// SUM_AFTER_CONTACT_WORK_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Q in Connect
//
// UI name: [After contact work time]
//
// SUM_CONNECTING_TIME_AGENT Unit: Seconds
//
// Valid metric filter key: INITIATION_METHOD . This metric only supports the
// following filter keys as INITIATION_METHOD : INBOUND | OUTBOUND | CALLBACK | API
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy
//
// UI name: [Agent API connecting time]
//
// The Negate key in metric-level filters is not applicable for this metric.
//
// CONTACTS_ABANDONED Unit: Count
//
// Metric filter:
//
// - Valid values: API | Incoming | Outbound | Transfer | Callback |
// Queue_Transfer | Disconnect
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, RoutingStepExpression, Q
// in Connect
//
// UI name: [Contact abandoned]
//
// SUM_CONTACTS_ABANDONED_IN_X Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile,
// contact/segmentAttributes/connect:Subtype, Q in Connect
//
// Threshold: For ThresholdValue , enter any whole number from 1 to 604800
// (inclusive), in seconds. For Comparison , you can use LT (for "Less than") or
// LTE (for "Less than equal").
//
// UI name: [Contacts abandoned in X seconds]
//
// SUM_CONTACTS_ANSWERED_IN_X Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile,
// contact/segmentAttributes/connect:Subtype, Q in Connect
//
// Threshold: For ThresholdValue , enter any whole number from 1 to 604800
// (inclusive), in seconds. For Comparison , you can use LT (for "Less than") or
// LTE (for "Less than equal").
//
// UI name: [Contacts answered in X seconds]
//
// SUM_CONTACT_FLOW_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Q in Connect
//
// UI name: [Contact flow time]
//
// SUM_CONTACT_TIME_AGENT Unit: Seconds
//
// Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy
//
// UI name: [Agent on contact time]
//
// SUM_CONTACTS_DISCONNECTED Valid metric filter key: DISCONNECT_REASON
//
// Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Contact disconnected]
//
// SUM_ERROR_STATUS_TIME_AGENT Unit: Seconds
//
// Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy
//
// UI name: [Error status time]
//
// SUM_HANDLE_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Q in Connect
//
// UI name: [Contact handle time]
//
// SUM_HOLD_TIME Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Q in Connect
//
// UI name: [Customer hold time]
//
// SUM_IDLE_TIME_AGENT Unit: Seconds
//
// Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy
//
// UI name: [Agent idle time]
//
// SUM_INTERACTION_AND_HOLD_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy, Q in Connect
//
// UI name: [Agent interaction and hold time]
//
// SUM_INTERACTION_TIME Unit: Seconds
//
// Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent
// Hierarchy
//
// UI name: [Agent interaction time]
//
// SUM_NON_PRODUCTIVE_TIME_AGENT Unit: Seconds
//
// Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy
//
// UI name: [Agent non-productive time]
//
// SUM_ONLINE_TIME_AGENT Unit: Seconds
//
// Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy
//
// UI name: [Online time]
//
// SUM_RETRY_CALLBACK_ATTEMPTS Unit: Count
//
// Valid groupings and filters: Queue, Channel, Routing Profile,
// contact/segmentAttributes/connect:Subtype, Q in Connect
//
// UI name: [Callback attempts]
//
// [Contacts transferred out external]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-transferred-out-external
// [Average agent greeting time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-agent-greeting-time
// [Non-talk time percent]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#non-talk-time-percent
// [Agent non-productive time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#agent-non-productive-time
// [Contacts created]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-created
// [Adherence]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#adherence
// [Customer talk time percent]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#customer-talk-time-percent
// [Average conversation duration]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-conversation-duration
// [Flows outcome]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#flows-outcome
// [Contacts queued]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-queued
// [Occupancy]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#occupancy
// [Percent bot conversations outcome]: https://docs.aws.amazon.com/connect/latest/adminguide/bot-metrics.html#percent-bot-conversations-outcome
// [Minimum flow time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#minimum-flow-time
// [Percent bot intents outcome]: https://docs.aws.amazon.com/connect/latest/adminguide/bot-metrics.html#percent-bot-intents-outcome
// [Contacts answered in X seconds]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-answered-in-x-seconds
// [Average case resolution time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-case-resolution-time
// [Agent API connecting time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#agent-api-connecting-time
// [Talk time percent]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#talk-time-percent
// [Average agent talk time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-agent-talk-time
// [Average agent interruption time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-agent-interruption-time
// [Contacts transferred out]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-transferred-out
// [Campaign send attempts]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#campaign-send-attempts
// [Average bot conversation time]: https://docs.aws.amazon.com/connect/latest/adminguide/bot-metrics.html#average-bot-conversation-time
// [Average flow time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-flow-time
// [Contacts hold disconnect]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-hold-disconnect
// [Average holds]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-holds
// [Bot conversations completed]: https://docs.aws.amazon.com/connect/latest/adminguide/bot-metrics.html#bot-conversations-completed
// [API contacts handled]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#api-contacts-handled
// [Agent non-response without customer abandons]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#agent-non-response-without-customer-abandons
// [Service level X]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#service-level
// [Contact handle time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contact-handle-time
// [Agent idle time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#agent-idle-time
// [Adherent time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#adherent-time
// [Average talk time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-talk-time
// [Average after contact work time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#after-contact-work-time
// [Cases created]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#cases-created
// [Average handle time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-handle-time
// [Average customer hold time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-customer-hold-time
// [Average weighted evaluation score]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-weighted-evaluation-score
// [Average bot conversation turns]: https://docs.aws.amazon.com/connect/latest/adminguide/bot-metrics.html#average-bot-conversation-turns
// [Contacts hold customer disconnect]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-hold-customer-disconnect
// [Human answered]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#human-answered
// [Contacts removed from queue in X seconds]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-removed-from-queue
// [Contacts hold agent disconnect]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-hold-agent-disconnect
// [Contacts transferred out internal]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-transferred-out-internal
// [Agent non-response]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#agent-non-response
// [Agent answer rate]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#agent-answer-rate
// [Evaluations performed]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#evaluations-performed
// [Average agent pause time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-agent-pause-time
// [Campaign contacts abandoned after X rate]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#campaign-contacts-abandoned-after-x-rate
// [Average queue abandon time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-queue-abandon-time
// [Contacts transferred out by agent]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-transferred-out-by-agent
// [Average agent API connecting time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-agent-api-connecting-time
// [Maximum flow time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#maximum-flow-time
// [Average contact duration]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-contact-duration
// [Non-adherent time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#non-adherent-time
// [Average agent interaction and customer hold time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-agent-interaction-and-customer-hold-time
// [After contact work time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#after-contact-work-time
// [Average customer talk time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-customer-talk-time
// [Campaign contacts abandoned after X]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#campaign-contacts-abandoned-after-x
// [Error status time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#error-status-time
// [Maximum queued time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#maximum-queued-time
// [Average active time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-active-time
// [Contacts transferred out queue]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-transferred-out-queue
// [Cases reopened]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#cases-reopened
// [Contact flow time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contact-flow-time
// [Average customer hold time all contacts]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-customer-hold-time-all-contacts
// [Average agent interaction time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-agent-interaction-time
// [Agent on contact time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#agent-on-contact-time
// [Average non-talk time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-non-talk-time
// [Flows started]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#flows-started
// [Average contacts per case]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-contacts-per-case
// [Agent talk time percent]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#agent-talk-time-percent
// [Metrics definition]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html
// [Average resolution time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-resolution-time
// [Flows outcome percentage]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#flows-outcome-percentage
// [Cases resolved]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#cases-resolved
// [Contacts queued (enqueue timestamp)]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-queued-by-enqueue
// [Online time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#online-time
// [Agent interaction time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#agent-interaction-time
// [Average agent interruptions]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-agent-interruptions
// [Average dials per minute]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-dials-per-minute
// [Delivery attempt disposition rate]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#delivery-attempt-disposition-rate
// [Contact disconnected]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contact-disconnected
// [Contacts handled (connected to agent timestamp)]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-handled-by-connected-to-agent-timestamp
// [Average evaluation score]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-evaluation-score
// [Contacts resolved in X]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-resolved
// [Cases resolved on first contact]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#cases-resolved-on-first-contact
// [Contact abandoned]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-abandoned
// [Campaign interactions]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#campaign-interactions
// [Bot intents completed]: https://docs.aws.amazon.com/connect/latest/adminguide/bot-metrics.html#bot-intents-completed
// [Abandonment rate]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#abandonment-rate
// [Scheduled time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#scheduled-time
// [Contacts abandoned in X seconds]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-abandoned-in-x-seconds
// [Average wait time after customer connection]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-wait-time-after-customer-connection
// [Current cases]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#current-cases
// [Average queue answer time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#average-queue-answer-time
// [Customer hold time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#customer-hold-time
// [Agent interaction and hold time]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#agent-interaction-and-hold-time
// [Delivery attempts]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#delivery-attempts
// [Contacts put on hold]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#contacts-put-on-hold
// [Automatic fails percent]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#automatic-fails-percent
// [Callback attempts]: https://docs.aws.amazon.com/connect/latest/adminguide/metrics-definitions.html#callback-attempts
// [Forecasting, capacity planning, and scheduling]: https://docs.aws.amazon.com/connect/latest/adminguide/regions.html#optimization_region
//
// This member is required.
Metrics []types.MetricV2
// The Amazon Resource Name (ARN) of the resource. This includes the instanceId an
// Amazon Connect instance.
//
// This member is required.
ResourceArn *string
// The timestamp, in UNIX Epoch time format, at which to start the reporting
// interval for the retrieval of historical metrics data. The time must be before
// the end time timestamp. The start and end time depends on the IntervalPeriod
// selected. By default the time range between start and end time is 35 days.
// Historical metrics are available for 3 months.
//
// This member is required.
StartTime *time.Time
// The grouping applied to the metrics that are returned. For example, when
// results are grouped by queue, the metrics returned are grouped by queue. The
// values that are returned apply to the metrics for each queue. They are not
// aggregated for all queues.
//
// If no grouping is specified, a summary of all metrics is returned.
//
// Valid grouping keys: AGENT | AGENT_HIERARCHY_LEVEL_ONE |
// AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE |
// AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE |
// ANSWERING_MACHINE_DETECTION_STATUS | BOT_ID | BOT_ALIAS | BOT_VERSION |
// BOT_LOCALE | BOT_INTENT_NAME | CAMPAIGN | CAMPAIGN_DELIVERY_EVENT_TYPE |
// CASE_TEMPLATE_ARN | CASE_STATUS | CHANNEL |
// contact/segmentAttributes/connect:Subtype | DISCONNECT_REASON | EVALUATION_FORM
// | EVALUATION_SECTION | EVALUATION_QUESTION | EVALUATION_SOURCE |
// FLOWS_RESOURCE_ID | FLOWS_MODULE_RESOURCE_ID | FLOW_ACTION_ID | FLOW_TYPE |
// FLOWS_OUTCOME_TYPE | FORM_VERSION | INITIATION_METHOD |
// INVOKING_RESOURCE_PUBLISHED_TIMESTAMP | INVOKING_RESOURCE_TYPE |
// PARENT_FLOWS_RESOURCE_ID | Q_CONNECT_ENABLED | QUEUE |
// RESOURCE_PUBLISHED_TIMESTAMP | ROUTING_PROFILE | ROUTING_STEP_EXPRESSION
//
// Type: Array of strings
//
// Array Members: Maximum number of 4 items
//
// Required: No
Groupings []string
// The interval period and timezone to apply to returned metrics.
//
// - IntervalPeriod : An aggregated grouping applied to request metrics. Valid
// IntervalPeriod values are: FIFTEEN_MIN | THIRTY_MIN | HOUR | DAY | WEEK |
// TOTAL .
//
// For example, if IntervalPeriod is selected THIRTY_MIN , StartTime and EndTime
// differs by 1 day, then Amazon Connect returns 48 results in the response. Each
// result is aggregated by the THIRTY_MIN period. By default Amazon Connect
// aggregates results based on the TOTAL interval period.
//
// The following list describes restrictions on StartTime and EndTime based on
// which IntervalPeriod is requested.
//
// - FIFTEEN_MIN : The difference between StartTime and EndTime must be less than
// 3 days.
//
// - THIRTY_MIN : The difference between StartTime and EndTime must be less than
// 3 days.
//
// - HOUR : The difference between StartTime and EndTime must be less than 3 days.
//
// - DAY : The difference between StartTime and EndTime must be less than 35 days.
//
// - WEEK : The difference between StartTime and EndTime must be less than 35
// days.
//
// - TOTAL : The difference between StartTime and EndTime must be less than 35
// days.
//
// - TimeZone : The timezone applied to requested metrics.
Interval *types.IntervalDetails
// The maximum number of results to return per page.
MaxResults *int32
// 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.
NextToken *string
noSmithyDocumentSerde
}
type GetMetricDataV2Output struct {
// Information about the metrics requested in the API request If no grouping is
// specified, a summary of metric data is returned.
MetricResults []types.MetricResultV2
// If there are additional results, this is the token for the next set of results.
NextToken *string
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationGetMetricDataV2Middlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsRestjson1_serializeOpGetMetricDataV2{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetMetricDataV2{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "GetMetricDataV2"); err != nil {
return fmt.Errorf("add protocol finalizers: %v", err)
}
if err = addlegacyEndpointContextSetter(stack, options); err != nil {
return err
}
if err = addSetLoggerMiddleware(stack, options); err != nil {
return err
}
if err = addClientRequestID(stack); err != nil {
return err
}
if err = addComputeContentLength(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = addComputePayloadSHA256(stack); err != nil {
return err
}
if err = addRetry(stack, options); err != nil {
return err
}
if err = addRawResponseToMetadata(stack); err != nil {
return err
}
if err = addRecordResponseTiming(stack); err != nil {
return err
}
if err = addSpanRetryLoop(stack, options); err != nil {
return err
}
if err = addClientUserAgent(stack, options); err != nil {
return err
}
if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
return err
}
if err = addTimeOffsetBuild(stack, c); err != nil {
return err
}
if err = addUserAgentRetryMode(stack, options); err != nil {
return err
}
if err = addCredentialSource(stack, options); err != nil {
return err
}
if err = addOpGetMetricDataV2ValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetMetricDataV2(options.Region), middleware.Before); err != nil {
return err
}
if err = addRecursionDetection(stack); err != nil {
return err
}
if err = addRequestIDRetrieverMiddleware(stack); err != nil {
return err
}
if err = addResponseErrorMiddleware(stack); err != nil {
return err
}
if err = addRequestResponseLogging(stack, options); err != nil {
return err
}
if err = addDisableHTTPSMiddleware(stack, options); err != nil {
return err
}
if err = addSpanInitializeStart(stack); err != nil {
return err
}
if err = addSpanInitializeEnd(stack); err != nil {
return err
}
if err = addSpanBuildRequestStart(stack); err != nil {
return err
}
if err = addSpanBuildRequestEnd(stack); err != nil {
return err
}
return nil
}
// GetMetricDataV2PaginatorOptions is the paginator options for GetMetricDataV2
type GetMetricDataV2PaginatorOptions struct {
// The maximum number of results to return per page.
Limit int32
// Set to true if pagination should stop if the service returns a pagination token
// that matches the most recent token provided to the service.
StopOnDuplicateToken bool
}
// GetMetricDataV2Paginator is a paginator for GetMetricDataV2
type GetMetricDataV2Paginator struct {
options GetMetricDataV2PaginatorOptions
client GetMetricDataV2APIClient
params *GetMetricDataV2Input
nextToken *string
firstPage bool
}
// NewGetMetricDataV2Paginator returns a new GetMetricDataV2Paginator
func NewGetMetricDataV2Paginator(client GetMetricDataV2APIClient, params *GetMetricDataV2Input, optFns ...func(*GetMetricDataV2PaginatorOptions)) *GetMetricDataV2Paginator {
if params == nil {
params = &GetMetricDataV2Input{}
}
options := GetMetricDataV2PaginatorOptions{}
if params.MaxResults != nil {
options.Limit = *params.MaxResults
}
for _, fn := range optFns {
fn(&options)
}
return &GetMetricDataV2Paginator{
options: options,
client: client,
params: params,
firstPage: true,
nextToken: params.NextToken,
}
}
// HasMorePages returns a boolean indicating whether more pages are available
func (p *GetMetricDataV2Paginator) HasMorePages() bool {
return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
}
// NextPage retrieves the next GetMetricDataV2 page.
func (p *GetMetricDataV2Paginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*GetMetricDataV2Output, error) {
if !p.HasMorePages() {
return nil, fmt.Errorf("no more pages available")
}
params := *p.params
params.NextToken = p.nextToken
var limit *int32
if p.options.Limit > 0 {
limit = &p.options.Limit
}
params.MaxResults = limit
optFns = append([]func(*Options){
addIsPaginatorUserAgent,
}, optFns...)
result, err := p.client.GetMetricDataV2(ctx, ¶ms, optFns...)
if err != nil {
return nil, err
}
p.firstPage = false
prevToken := p.nextToken
p.nextToken = result.NextToken
if p.options.StopOnDuplicateToken &&
prevToken != nil &&
p.nextToken != nil &&
*prevToken == *p.nextToken {
p.nextToken = nil
}
return result, nil
}
// GetMetricDataV2APIClient is a client that implements the GetMetricDataV2
// operation.
type GetMetricDataV2APIClient interface {
GetMetricDataV2(context.Context, *GetMetricDataV2Input, ...func(*Options)) (*GetMetricDataV2Output, error)
}
var _ GetMetricDataV2APIClient = (*Client)(nil)
func newServiceMetadataMiddleware_opGetMetricDataV2(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "GetMetricDataV2",
}
}