diff --git a/Package.version b/Package.version index 855f7029535..7717884db13 100644 --- a/Package.version +++ b/Package.version @@ -1 +1 @@ -1.0.25 \ No newline at end of file +1.0.26 \ No newline at end of file diff --git a/Package.version.next b/Package.version.next index 7717884db13..3f11ef63078 100644 --- a/Package.version.next +++ b/Package.version.next @@ -1 +1 @@ -1.0.26 \ No newline at end of file +1.0.27 \ No newline at end of file diff --git a/Sources/Services/AWSBedrock/Sources/AWSBedrock/Models.swift b/Sources/Services/AWSBedrock/Sources/AWSBedrock/Models.swift index 7eff5b3f795..ca04891d690 100644 --- a/Sources/Services/AWSBedrock/Sources/AWSBedrock/Models.swift +++ b/Sources/Services/AWSBedrock/Sources/AWSBedrock/Models.swift @@ -3236,7 +3236,7 @@ public struct GetImportedModelInput: Swift.Sendable { public struct GetImportedModelOutput: Swift.Sendable { /// Creation time of the imported model. public var creationTime: Foundation.Date? - /// Specifies if the imported model supports fine tuning. + /// Specifies if the imported model supports converse. public var instructSupported: Swift.Bool? /// Job Amazon Resource Name (ARN) associated with the imported model. public var jobArn: Swift.String? @@ -3451,7 +3451,7 @@ extension BedrockClientTypes { /// Creation time of the imported model. /// This member is required. public var creationTime: Foundation.Date? - /// Specifies if the imported model supports fine tuning. + /// Specifies if the imported model supports converse. public var instructSupported: Swift.Bool? /// The architecture of the imported model. public var modelArchitecture: Swift.String? diff --git a/Sources/Services/AWSConnect/Sources/AWSConnect/ConnectClient.swift b/Sources/Services/AWSConnect/Sources/AWSConnect/ConnectClient.swift index d2f8c6d700d..7e38fb23df5 100644 --- a/Sources/Services/AWSConnect/Sources/AWSConnect/ConnectClient.swift +++ b/Sources/Services/AWSConnect/Sources/AWSConnect/ConnectClient.swift @@ -1159,7 +1159,7 @@ extension ConnectClient { /// Performs the `AssociateTrafficDistributionGroupUser` operation on the `AmazonConnectService` service. /// - /// Associates an agent with a traffic distribution group. + /// Associates an agent with a traffic distribution group. This API can be called only in the Region where the traffic distribution group is created. /// /// - Parameter AssociateTrafficDistributionGroupUserInput : [no documentation found] /// @@ -7878,7 +7878,7 @@ extension ConnectClient { /// Performs the `DisassociateTrafficDistributionGroupUser` operation on the `AmazonConnectService` service. /// - /// Disassociates an agent from a traffic distribution group. + /// Disassociates an agent from a traffic distribution group. This API can be called only in the Region where the traffic distribution group is created. /// /// - Parameter DisassociateTrafficDistributionGroupUserInput : [no documentation found] /// @@ -8597,7 +8597,7 @@ extension ConnectClient { /// Performs the `GetMetricDataV2` operation on the `AmazonConnectService` service. /// - /// Gets metric data from the specified Amazon Connect instance. GetMetricDataV2 offers more features than [GetMetricData](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricData.html), 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. For a description of the historical metrics that are supported by GetMetricDataV2 and GetMetricData, see [Historical metrics definitions](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html) in the Amazon Connect Administrator Guide. + /// Gets metric data from the specified Amazon Connect instance. GetMetricDataV2 offers more features than [GetMetricData](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricData.html), 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 [Historical metrics definitions](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html) in the Amazon Connect Administrator Guide. /// /// - Parameter GetMetricDataV2Input : [no documentation found] /// @@ -14475,6 +14475,81 @@ extension ConnectClient { return try await op.execute(input: input) } + /// Performs the `StartScreenSharing` operation on the `AmazonConnectService` service. + /// + /// Starts screen sharing for a contact. For more information about screen sharing, see [Set up in-app, web, video calling, and screen sharing capabilities](https://docs.aws.amazon.com/connect/latest/adminguide/inapp-calling.html) in the Amazon Connect Administrator Guide. + /// + /// - Parameter StartScreenSharingInput : [no documentation found] + /// + /// - Returns: `StartScreenSharingOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient permissions to perform this action. + /// - `InternalServiceException` : Request processing failed because of an error or failure with the service. + /// - `InvalidParameterException` : One or more of the specified parameters are not valid. + /// - `InvalidRequestException` : The request is not valid. + /// - `ResourceNotFoundException` : The specified resource was not found. + /// - `ThrottlingException` : The throttling limit has been exceeded. + public func startScreenSharing(input: StartScreenSharingInput) async throws -> StartScreenSharingOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .put) + .withServiceName(value: serviceName) + .withOperation(value: "startScreenSharing") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "connect") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.IdempotencyTokenMiddleware(keyPath: \.clientToken)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(StartScreenSharingInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: StartScreenSharingInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(StartScreenSharingOutput.httpOutput(from:), StartScreenSharingOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Connect") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "StartScreenSharing") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `StartTaskContact` operation on the `AmazonConnectService` service. /// /// Initiates a flow to start a new task contact. For more information about task contacts, see [Concepts: Tasks in Amazon Connect](https://docs.aws.amazon.com/connect/latest/adminguide/tasks.html) in the Amazon Connect Administrator Guide. When using PreviousContactId and RelatedContactId input parameters, note the following: diff --git a/Sources/Services/AWSConnect/Sources/AWSConnect/Models.swift b/Sources/Services/AWSConnect/Sources/AWSConnect/Models.swift index 2314fa2a31c..ab58ef7e090 100644 --- a/Sources/Services/AWSConnect/Sources/AWSConnect/Models.swift +++ b/Sources/Services/AWSConnect/Sources/AWSConnect/Models.swift @@ -931,6 +931,32 @@ extension ConnectClientTypes { } } +extension ConnectClientTypes { + + public enum ScreenShareCapability: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case send + case sdkUnknown(Swift.String) + + public static var allCases: [ScreenShareCapability] { + return [ + .send + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .send: return "SEND" + case let .sdkUnknown(s): return s + } + } + } +} + extension ConnectClientTypes { public enum VideoCapability: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -959,15 +985,19 @@ extension ConnectClientTypes { extension ConnectClientTypes { - /// The configuration for the allowed capabilities for participants present over the call. + /// The configuration for the allowed video and screen sharing capabilities for participants present over the call. For more information, see [Set up in-app, web, video calling, and screen sharing capabilities](https://docs.aws.amazon.com/connect/latest/adminguide/inapp-calling.html) in the Amazon Connect Administrator Guide. public struct ParticipantCapabilities: Swift.Sendable { - /// The configuration having the video sharing capabilities for participants over the call. + /// The screen sharing capability that is enabled for the participant. SEND indicates the participant can share their screen. + public var screenShare: ConnectClientTypes.ScreenShareCapability? + /// The configuration having the video and screen sharing capabilities for participants over the call. public var video: ConnectClientTypes.VideoCapability? public init( + screenShare: ConnectClientTypes.ScreenShareCapability? = nil, video: ConnectClientTypes.VideoCapability? = nil ) { + self.screenShare = screenShare self.video = video } } @@ -1035,7 +1065,7 @@ extension ConnectClientTypes { public struct AgentInfo: Swift.Sendable { /// Agent pause duration for a contact in seconds. public var agentPauseDurationInSeconds: Swift.Int? - /// The configuration for the allowed capabilities for participants present over the call. + /// The configuration for the allowed video and screen sharing capabilities for participants present over the call. For more information, see [Set up in-app, web, video calling, and screen sharing capabilities](https://docs.aws.amazon.com/connect/latest/adminguide/inapp-calling.html) in the Amazon Connect Administrator Guide. public var capabilities: ConnectClientTypes.ParticipantCapabilities? /// The timestamp when the contact was connected to the agent. public var connectedToAgentTimestamp: Foundation.Date? @@ -2426,7 +2456,7 @@ public struct AssociateTrafficDistributionGroupUserInput: Swift.Sendable { /// The identifier of the Amazon Connect instance. You can [find the instance ID](https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) in the Amazon Resource Name (ARN) of the instance. /// This member is required. public var instanceId: Swift.String? - /// The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region. + /// The identifier of the traffic distribution group. This can be the ID or the ARN of the traffic distribution group. /// This member is required. public var trafficDistributionGroupId: Swift.String? /// The identifier of the user account. This can be the ID or the ARN of the user. @@ -6258,7 +6288,7 @@ public struct CreateTrafficDistributionGroupInput: Swift.Sendable { public struct CreateTrafficDistributionGroupOutput: Swift.Sendable { /// The Amazon Resource Name (ARN) of the traffic distribution group. public var arn: Swift.String? - /// The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region. + /// The identifier of the traffic distribution group. This can be the ID or the ARN of the traffic distribution group. public var id: Swift.String? public init( @@ -7394,7 +7424,7 @@ public struct DeleteTaskTemplateOutput: Swift.Sendable { } public struct DeleteTrafficDistributionGroupInput: Swift.Sendable { - /// The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region. + /// The identifier of the traffic distribution group. This can be the ID or the ARN of the traffic distribution group. /// This member is required. public var trafficDistributionGroupId: Swift.String? @@ -7769,7 +7799,7 @@ extension ConnectClientTypes { /// Information about the Customer on the contact. public struct Customer: Swift.Sendable { - /// The configuration for the allowed capabilities for participants present over the call. + /// The configuration for the allowed video and screen sharing capabilities for participants present over the call. For more information, see [Set up in-app, web, video calling, and screen sharing capabilities](https://docs.aws.amazon.com/connect/latest/adminguide/inapp-calling.html) in the Amazon Connect Administrator Guide. public var capabilities: ConnectClientTypes.ParticipantCapabilities? /// Information regarding Customer’s device. public var deviceInfo: ConnectClientTypes.DeviceInfo? @@ -11312,7 +11342,7 @@ public struct DisassociateTrafficDistributionGroupUserInput: Swift.Sendable { /// The identifier of the Amazon Connect instance. You can [find the instance ID](https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) in the Amazon Resource Name (ARN) of the instance. /// This member is required. public var instanceId: Swift.String? - /// The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region. + /// The identifier of the traffic distribution group. This can be the ID or the ARN of the traffic distribution group. /// This member is required. public var trafficDistributionGroupId: Swift.String? /// The identifier for the user. This can be the ID or the ARN of the user. @@ -12713,11 +12743,27 @@ extension ConnectClientTypes { /// Contains information about the filter used when retrieving metrics. MetricFiltersV2 can be used on the following metrics: AVG_AGENT_CONNECTING_TIME, CONTACTS_CREATED, CONTACTS_HANDLED, SUM_CONTACTS_DISCONNECTED. public struct MetricFilterV2: Swift.Sendable { - /// The key to use for filtering data. Valid metric filter keys: INITIATION_METHOD, DISCONNECT_REASON. These are the same values as the InitiationMethod and DisconnectReason in the contact record. For more information, see [ContactTraceRecord](https://docs.aws.amazon.com/connect/latest/adminguide/ctr-data-model.html#ctr-ContactTraceRecord) in the Amazon Connect Administrator Guide. + /// The key to use for filtering data. Valid metric filter keys: + /// + /// * ANSWERING_MACHINE_DETECTION_STATUS + /// + /// * CASE_STATUS + /// + /// * DISCONNECT_REASON + /// + /// * FLOWS_ACTION_IDENTIFIER + /// + /// * FLOWS_NEXT_ACTION_IDENTIFIER + /// + /// * FLOWS_OUTCOME_TYPE + /// + /// * FLOWS_RESOURCE_TYPE + /// + /// * INITIATION_METHOD public var metricFilterKey: Swift.String? - /// The values to use for filtering data. Valid metric filter values for INITIATION_METHOD: INBOUND | OUTBOUND | TRANSFER | QUEUE_TRANSFER | CALLBACK | API | WEBRTC_API | MONITOR | DISCONNECT | EXTERNAL_OUTBOUND Valid metric filter values for DISCONNECT_REASON: CUSTOMER_DISCONNECT | AGENT_DISCONNECT | THIRD_PARTY_DISCONNECT | TELECOM_PROBLEM | BARGED | CONTACT_FLOW_DISCONNECT | OTHER | EXPIRED | API + /// The values to use for filtering data. Values for metric-level filters can be either a fixed set of values or a customized list, depending on the use case. For valid values of metric-level filters INITIATION_METHOD, DISCONNECT_REASON, and ANSWERING_MACHINE_DETECTION_STATUS, see [ContactTraceRecord](https://docs.aws.amazon.com/connect/latest/adminguide/ctr-data-model.html#ctr-ContactTraceRecord) in the Amazon Connect Administrator Guide. For valid values of the metric-level filter FLOWS_OUTCOME_TYPE, see the description for the [Flow outcome](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#flows-outcome-historical) metric in the Amazon Connect Administrator Guide. public var metricFilterValues: [Swift.String]? - /// The flag to use to filter on requested metric filter values or to not filter on requested metric filter values. By default the negate is false, which indicates to filter on the requested metric filter. + /// If set to true, the API response contains results that filter out the results matched by the metric-level filters condition. By default, Negate is set to false. public var negate: Swift.Bool public init( @@ -12839,7 +12885,7 @@ public struct GetMetricDataV2Input: Swift.Sendable { public var interval: ConnectClientTypes.IntervalDetails? /// The maximum number of results to return per page. public var maxResults: Swift.Int? - /// 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 [Historical metrics definitions](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#abandonment-rate-historical) AGENT_ADHERENT_TIME This metric is available only in Amazon Web Services Regions where [Forecasting, capacity planning, and scheduling](https://docs.aws.amazon.com/connect/latest/adminguide/regions.html#optimization_region) is available. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: [Adherent time](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#adherent-time-historical) AGENT_ANSWER_RATE Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: [Agent answer rate](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#agent-answer-rate-historical) AGENT_NON_ADHERENT_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: [Non-adherent time](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#non-adherent-time) AGENT_NON_RESPONSE Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: [Agent non-response](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#agent-nonresponse-no-abandon-historical) AGENT_OCCUPANCY Unit: Percentage Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy UI name: [Occupancy](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#occupancy-historical) AGENT_SCHEDULE_ADHERENCE This metric is available only in Amazon Web Services Regions where [Forecasting, capacity planning, and scheduling](https://docs.aws.amazon.com/connect/latest/adminguide/regions.html#optimization_region) is available. Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: [Adherence](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#adherence-historical) AGENT_SCHEDULED_TIME This metric is available only in Amazon Web Services Regions where [Forecasting, capacity planning, and scheduling](https://docs.aws.amazon.com/connect/latest/adminguide/regions.html#optimization_region) is available. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: [Scheduled time](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#scheduled-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-queue-abandon-time-historical) AVG_ACTIVE_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect UI name: [Average active time](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-active-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-acw-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#htm-avg-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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-agent-pause-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-contacts-case-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-case-resolution-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-contact-duration-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-conversation-duration-historical) AVG_DIALS_PER_MINUTE This metric is available only for contacts analyzed by outbound campaigns analytics. Unit: Count Valid groupings and filters: Campaign, Agent, Queue, Routing Profile UI name: [Average dials per minute](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-dials-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-flow-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-greeting-time-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-handle-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-customer-hold-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#avg-customer-hold-time-all-contacts-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-holds-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-agent-interaction-customer-hold-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-agent-interaction-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-interruptions-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-interruptions-time-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html##average-non-talk-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-queue-answer-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-resolution-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-talk-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-talk-time-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-talk-time-customer-historical) AVG_WAIT_TIME_AFTER_CUSTOMER_CONNECTION This metric is available only for contacts analyzed by outbound campaigns analytics. Unit: Seconds Valid groupings and filters: Campaign UI name: [Average wait time after customer connection](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-wait-time-historical) CAMPAIGN_CONTACTS_ABANDONED_AFTER_X This metric is available only for contacts analyzed by outbound campaigns analytics. Unit: Count Valid groupings and filters: Campaign, Agent 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#campaign-contacts-abandoned-historical) CAMPAIGN_CONTACTS_ABANDONED_AFTER_X_RATE This metric is available only for contacts analyzed by outbound campaigns analytics. Unit: Percent Valid groupings and filters: Campaign, Agent 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#campaign-contacts-abandoned-rate-historical) CASES_CREATED Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: [Cases created](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#cases-created-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-created-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#api-contacts-handled-historical) 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)](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-handled-by-connected-to-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-handled-by-connected-to-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-hold-agent-disconnect-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-hold-customer-disconnect-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-hold-customer-disconnect-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-transferred-out-external-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-transferred-out-internal-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-queued-historical) 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)](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-queued-by-enqueue-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-removed-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-resolved-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-transferred-out-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-transferred-out-by-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-transferred-out-by-agent-historical) CURRENT_CASES Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: [Current cases](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#current-cases-historical) DELIVERY_ATTEMPTS This metric is available only for contacts analyzed by outbound campaigns analytics. Unit: Count Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS, DISCONNECT_REASON Valid groupings and filters: Campaign, Agent, Queue, Routing Profile, Answering Machine Detection Status, Disconnect Reason UI name: [Delivery attempts](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#delivery-attempts-historical) DELIVERY_ATTEMPT_DISPOSITION_RATE This metric is available only for contacts analyzed by outbound campaigns analytics, and with the answering machine detection enabled. Unit: Percent Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS, DISCONNECT_REASON Valid groupings and filters: Campaign, Agent, Answering Machine Detection Status, Disconnect Reason Answering Machine Detection Status and Disconnect Reason are valid filters but not valid groupings. UI name: [Delivery attempt disposition rate](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#delivery-attempt-disposition-rate-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#flows-outcome-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#flows-started-historical) HUMAN_ANSWERED_CALLS This metric is available only for contacts analyzed by outbound campaigns analytics, and with the answering machine detection enabled. Unit: Count Valid groupings and filters: Campaign, Agent UI name: [Human answered](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#human-answered-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#maximum-flow-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#maximum-queued-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#minimum-flow-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#cases-resolved-first-contact-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#flows-outcome-percentage-historical). 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#ntt-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#tt-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#ttagent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#ttcustomer-historical) REOPENED_CASE_ACTIONS Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: [Cases reopened](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#cases-reopened-historical) RESOLVED_CASE_ACTIONS Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: [Cases resolved](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#cases-resolved-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#service-level-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#acw-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#htm-agent-api-connecting-time) The Negate key in Metric Level Filters is not applicable for this metric. CONTACTS_ABANDONED Unit: Count Metric filter: + /// 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 [Historical metrics definitions](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#abandonment-rate-historical) AGENT_ADHERENT_TIME This metric is available only in Amazon Web Services Regions where [Forecasting, capacity planning, and scheduling](https://docs.aws.amazon.com/connect/latest/adminguide/regions.html#optimization_region) is available. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: [Adherent time](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#adherent-time-historical) AGENT_ANSWER_RATE Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: [Agent answer rate](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#agent-answer-rate-historical) AGENT_NON_ADHERENT_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: [Non-adherent time](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#non-adherent-time) AGENT_NON_RESPONSE Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: [Agent non-response](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#agent-nonresponse-no-abandon-historical) AGENT_OCCUPANCY Unit: Percentage Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy UI name: [Occupancy](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#occupancy-historical) AGENT_SCHEDULE_ADHERENCE This metric is available only in Amazon Web Services Regions where [Forecasting, capacity planning, and scheduling](https://docs.aws.amazon.com/connect/latest/adminguide/regions.html#optimization_region) is available. Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: [Adherence](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#adherence-historical) AGENT_SCHEDULED_TIME This metric is available only in Amazon Web Services Regions where [Forecasting, capacity planning, and scheduling](https://docs.aws.amazon.com/connect/latest/adminguide/regions.html#optimization_region) is available. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: [Scheduled time](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#scheduled-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-queue-abandon-time-historical) AVG_ACTIVE_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Q in Connect UI name: [Average active time](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-active-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-acw-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#htm-avg-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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-agent-pause-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-contacts-case-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-case-resolution-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-contact-duration-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-conversation-duration-historical) AVG_DIALS_PER_MINUTE This metric is available only for contacts analyzed by outbound campaigns analytics. Unit: Count Valid groupings and filters: Campaign, Agent, Queue, Routing Profile UI name: [Average dials per minute](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-dials-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-flow-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-greeting-time-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-handle-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-customer-hold-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#avg-customer-hold-time-all-contacts-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-holds-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-agent-interaction-customer-hold-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-agent-interaction-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-interruptions-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-interruptions-time-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html##average-non-talk-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-queue-answer-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-resolution-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-talk-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-talk-time-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-talk-time-customer-historical) AVG_WAIT_TIME_AFTER_CUSTOMER_CONNECTION This metric is available only for contacts analyzed by outbound campaigns analytics. Unit: Seconds Valid groupings and filters: Campaign UI name: [Average wait time after customer connection](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#average-wait-time-historical) CAMPAIGN_CONTACTS_ABANDONED_AFTER_X This metric is available only for contacts analyzed by outbound campaigns analytics. Unit: Count Valid groupings and filters: Campaign, Agent 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#campaign-contacts-abandoned-historical) CAMPAIGN_CONTACTS_ABANDONED_AFTER_X_RATE This metric is available only for contacts analyzed by outbound campaigns analytics. Unit: Percent Valid groupings and filters: Campaign, Agent 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#campaign-contacts-abandoned-rate-historical) CASES_CREATED Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: [Cases created](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#cases-created-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-created-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#api-contacts-handled-historical) 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)](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-handled-by-connected-to-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-handled-by-connected-to-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-hold-agent-disconnect-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-hold-customer-disconnect-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-hold-customer-disconnect-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-transferred-out-external-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-transferred-out-internal-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-queued-historical) 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)](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-queued-by-enqueue-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-removed-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-resolved-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-transferred-out-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-transferred-out-by-agent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#contacts-transferred-out-by-agent-historical) CURRENT_CASES Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: [Current cases](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#current-cases-historical) DELIVERY_ATTEMPTS This metric is available only for contacts analyzed by outbound campaigns analytics. Unit: Count Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS, DISCONNECT_REASON Valid groupings and filters: Campaign, Agent, Queue, Routing Profile, Answering Machine Detection Status, Disconnect Reason UI name: [Delivery attempts](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#delivery-attempts-historical) DELIVERY_ATTEMPT_DISPOSITION_RATE This metric is available only for contacts analyzed by outbound campaigns analytics, and with the answering machine detection enabled. Unit: Percent Valid metric filter key: ANSWERING_MACHINE_DETECTION_STATUS, DISCONNECT_REASON Valid groupings and filters: Campaign, Agent, Answering Machine Detection Status, Disconnect Reason Answering Machine Detection Status and Disconnect Reason are valid filters but not valid groupings. UI name: [Delivery attempt disposition rate](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#delivery-attempt-disposition-rate-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#flows-outcome-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#flows-started-historical) HUMAN_ANSWERED_CALLS This metric is available only for contacts analyzed by outbound campaigns analytics, and with the answering machine detection enabled. Unit: Count Valid groupings and filters: Campaign, Agent UI name: [Human answered](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#human-answered-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#maximum-flow-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#maximum-queued-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#minimum-flow-time-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#cases-resolved-first-contact-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#flows-outcome-percentage-historical). 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#ntt-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#tt-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#ttagent-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#ttcustomer-historical) REOPENED_CASE_ACTIONS Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: [Cases reopened](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#cases-reopened-historical) RESOLVED_CASE_ACTIONS Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: [Cases resolved](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#cases-resolved-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#service-level-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#acw-historical) 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](https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html#htm-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 /// @@ -19856,6 +19902,33 @@ public struct StartOutboundVoiceContactOutput: Swift.Sendable { } } +public struct StartScreenSharingInput: Swift.Sendable { + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see [Making retries safe with idempotent APIs](https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). + public var clientToken: Swift.String? + /// The identifier of the contact in this instance of Amazon Connect. + /// This member is required. + public var contactId: Swift.String? + /// The identifier of the Amazon Connect instance. You can [find the instance ID](https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) in the Amazon Resource Name (ARN) of the instance. + /// This member is required. + public var instanceId: Swift.String? + + public init( + clientToken: Swift.String? = nil, + contactId: Swift.String? = nil, + instanceId: Swift.String? = nil + ) + { + self.clientToken = clientToken + self.contactId = contactId + self.instanceId = instanceId + } +} + +public struct StartScreenSharingOutput: Swift.Sendable { + + public init() { } +} + public struct StartTaskContactInput: Swift.Sendable { /// A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes. There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters. public var attributes: [Swift.String: Swift.String]? @@ -26473,6 +26546,13 @@ extension StartOutboundVoiceContactInput { } } +extension StartScreenSharingInput { + + static func urlPathProvider(_ value: StartScreenSharingInput) -> Swift.String? { + return "/contact/screen-sharing" + } +} + extension StartTaskContactInput { static func urlPathProvider(_ value: StartTaskContactInput) -> Swift.String? { @@ -28213,6 +28293,16 @@ extension StartOutboundVoiceContactInput { } } +extension StartScreenSharingInput { + + static func write(value: StartScreenSharingInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ClientToken"].write(value.clientToken) + try writer["ContactId"].write(value.contactId) + try writer["InstanceId"].write(value.instanceId) + } +} + extension StartTaskContactInput { static func write(value: StartTaskContactInput?, to writer: SmithyJSON.Writer) throws { @@ -31026,6 +31116,13 @@ extension StartOutboundVoiceContactOutput { } } +extension StartScreenSharingOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartScreenSharingOutput { + return StartScreenSharingOutput() + } +} + extension StartTaskContactOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> StartTaskContactOutput { @@ -35137,6 +35234,25 @@ enum StartOutboundVoiceContactOutputError { } } +enum StartScreenSharingOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServiceException": return try InternalServiceException.makeError(baseError: baseError) + case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) + case "InvalidRequestException": return try InvalidRequestException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum StartTaskContactOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -36907,6 +37023,7 @@ extension ConnectClientTypes.ParticipantCapabilities { static func write(value: ConnectClientTypes.ParticipantCapabilities?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["ScreenShare"].write(value.screenShare) try writer["Video"].write(value.video) } @@ -36914,6 +37031,7 @@ extension ConnectClientTypes.ParticipantCapabilities { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } var value = ConnectClientTypes.ParticipantCapabilities() value.video = try reader["Video"].readIfPresent() + value.screenShare = try reader["ScreenShare"].readIfPresent() return value } } diff --git a/Sources/Services/AWSEC2/Sources/AWSEC2/Models.swift b/Sources/Services/AWSEC2/Sources/AWSEC2/Models.swift index 18b513c3c56..5702161788e 100644 --- a/Sources/Services/AWSEC2/Sources/AWSEC2/Models.swift +++ b/Sources/Services/AWSEC2/Sources/AWSEC2/Models.swift @@ -9566,6 +9566,18 @@ extension EC2ClientTypes { case c7iMetal24xl case c7iMetal48xl case c7iXlarge + case c8g12xlarge + case c8g16xlarge + case c8g24xlarge + case c8g2xlarge + case c8g48xlarge + case c8g4xlarge + case c8g8xlarge + case c8gLarge + case c8gMedium + case c8gMetal24xl + case c8gMetal48xl + case c8gXlarge case cc14xlarge case cc28xlarge case cg14xlarge @@ -9900,6 +9912,18 @@ extension EC2ClientTypes { case m7iMetal24xl case m7iMetal48xl case m7iXlarge + case m8g12xlarge + case m8g16xlarge + case m8g24xlarge + case m8g2xlarge + case m8g48xlarge + case m8g4xlarge + case m8g8xlarge + case m8gLarge + case m8gMedium + case m8gMetal24xl + case m8gMetal48xl + case m8gXlarge case mac1Metal case mac2M1ultraMetal case mac2M2Metal @@ -10206,6 +10230,18 @@ extension EC2ClientTypes { case x2iezn6xlarge case x2iezn8xlarge case x2ieznMetal + case x8g12xlarge + case x8g16xlarge + case x8g24xlarge + case x8g2xlarge + case x8g48xlarge + case x8g4xlarge + case x8g8xlarge + case x8gLarge + case x8gMedium + case x8gMetal24xl + case x8gMetal48xl + case x8gXlarge case z1d12xlarge case z1d2xlarge case z1d3xlarge @@ -10398,6 +10434,18 @@ extension EC2ClientTypes { .c7iMetal24xl, .c7iMetal48xl, .c7iXlarge, + .c8g12xlarge, + .c8g16xlarge, + .c8g24xlarge, + .c8g2xlarge, + .c8g48xlarge, + .c8g4xlarge, + .c8g8xlarge, + .c8gLarge, + .c8gMedium, + .c8gMetal24xl, + .c8gMetal48xl, + .c8gXlarge, .cc14xlarge, .cc28xlarge, .cg14xlarge, @@ -10732,6 +10780,18 @@ extension EC2ClientTypes { .m7iMetal24xl, .m7iMetal48xl, .m7iXlarge, + .m8g12xlarge, + .m8g16xlarge, + .m8g24xlarge, + .m8g2xlarge, + .m8g48xlarge, + .m8g4xlarge, + .m8g8xlarge, + .m8gLarge, + .m8gMedium, + .m8gMetal24xl, + .m8gMetal48xl, + .m8gXlarge, .mac1Metal, .mac2M1ultraMetal, .mac2M2Metal, @@ -11038,6 +11098,18 @@ extension EC2ClientTypes { .x2iezn6xlarge, .x2iezn8xlarge, .x2ieznMetal, + .x8g12xlarge, + .x8g16xlarge, + .x8g24xlarge, + .x8g2xlarge, + .x8g48xlarge, + .x8g4xlarge, + .x8g8xlarge, + .x8gLarge, + .x8gMedium, + .x8gMetal24xl, + .x8gMetal48xl, + .x8gXlarge, .z1d12xlarge, .z1d2xlarge, .z1d3xlarge, @@ -11236,6 +11308,18 @@ extension EC2ClientTypes { case .c7iMetal24xl: return "c7i.metal-24xl" case .c7iMetal48xl: return "c7i.metal-48xl" case .c7iXlarge: return "c7i.xlarge" + case .c8g12xlarge: return "c8g.12xlarge" + case .c8g16xlarge: return "c8g.16xlarge" + case .c8g24xlarge: return "c8g.24xlarge" + case .c8g2xlarge: return "c8g.2xlarge" + case .c8g48xlarge: return "c8g.48xlarge" + case .c8g4xlarge: return "c8g.4xlarge" + case .c8g8xlarge: return "c8g.8xlarge" + case .c8gLarge: return "c8g.large" + case .c8gMedium: return "c8g.medium" + case .c8gMetal24xl: return "c8g.metal-24xl" + case .c8gMetal48xl: return "c8g.metal-48xl" + case .c8gXlarge: return "c8g.xlarge" case .cc14xlarge: return "cc1.4xlarge" case .cc28xlarge: return "cc2.8xlarge" case .cg14xlarge: return "cg1.4xlarge" @@ -11570,6 +11654,18 @@ extension EC2ClientTypes { case .m7iMetal24xl: return "m7i.metal-24xl" case .m7iMetal48xl: return "m7i.metal-48xl" case .m7iXlarge: return "m7i.xlarge" + case .m8g12xlarge: return "m8g.12xlarge" + case .m8g16xlarge: return "m8g.16xlarge" + case .m8g24xlarge: return "m8g.24xlarge" + case .m8g2xlarge: return "m8g.2xlarge" + case .m8g48xlarge: return "m8g.48xlarge" + case .m8g4xlarge: return "m8g.4xlarge" + case .m8g8xlarge: return "m8g.8xlarge" + case .m8gLarge: return "m8g.large" + case .m8gMedium: return "m8g.medium" + case .m8gMetal24xl: return "m8g.metal-24xl" + case .m8gMetal48xl: return "m8g.metal-48xl" + case .m8gXlarge: return "m8g.xlarge" case .mac1Metal: return "mac1.metal" case .mac2M1ultraMetal: return "mac2-m1ultra.metal" case .mac2M2Metal: return "mac2-m2.metal" @@ -11876,6 +11972,18 @@ extension EC2ClientTypes { case .x2iezn6xlarge: return "x2iezn.6xlarge" case .x2iezn8xlarge: return "x2iezn.8xlarge" case .x2ieznMetal: return "x2iezn.metal" + case .x8g12xlarge: return "x8g.12xlarge" + case .x8g16xlarge: return "x8g.16xlarge" + case .x8g24xlarge: return "x8g.24xlarge" + case .x8g2xlarge: return "x8g.2xlarge" + case .x8g48xlarge: return "x8g.48xlarge" + case .x8g4xlarge: return "x8g.4xlarge" + case .x8g8xlarge: return "x8g.8xlarge" + case .x8gLarge: return "x8g.large" + case .x8gMedium: return "x8g.medium" + case .x8gMetal24xl: return "x8g.metal-24xl" + case .x8gMetal48xl: return "x8g.metal-48xl" + case .x8gXlarge: return "x8g.xlarge" case .z1d12xlarge: return "z1d.12xlarge" case .z1d2xlarge: return "z1d.2xlarge" case .z1d3xlarge: return "z1d.3xlarge" diff --git a/Sources/Services/AWSMWAA/Sources/AWSMWAA/MWAAClient.swift b/Sources/Services/AWSMWAA/Sources/AWSMWAA/MWAAClient.swift index 4bacd5ab407..d5a14fda51e 100644 --- a/Sources/Services/AWSMWAA/Sources/AWSMWAA/MWAAClient.swift +++ b/Sources/Services/AWSMWAA/Sources/AWSMWAA/MWAAClient.swift @@ -55,6 +55,7 @@ import struct ClientRuntime.SignerMiddleware import struct ClientRuntime.URLHostMiddleware import struct ClientRuntime.URLPathMiddleware import struct Smithy.Attributes +import struct Smithy.Document import struct SmithyIdentity.BearerTokenIdentity import struct SmithyIdentity.StaticBearerTokenIdentityResolver import struct SmithyRetries.DefaultRetryStrategy @@ -261,9 +262,9 @@ extension MWAAClient { /// Performs the `CreateEnvironment` operation on the `AmazonMWAA` service. /// - /// Creates an Amazon Managed Workflows for Apache Airflow (MWAA) environment. + /// Creates an Amazon Managed Workflows for Apache Airflow (Amazon MWAA) environment. /// - /// - Parameter CreateEnvironmentInput : This section contains the Amazon Managed Workflows for Apache Airflow (MWAA) API reference documentation to create an environment. For more information, see [Get started with Amazon Managed Workflows for Apache Airflow](https://docs.aws.amazon.com/mwaa/latest/userguide/get-started.html). + /// - Parameter CreateEnvironmentInput : This section contains the Amazon Managed Workflows for Apache Airflow (Amazon MWAA) API reference documentation to create an environment. For more information, see [Get started with Amazon Managed Workflows for Apache Airflow](https://docs.aws.amazon.com/mwaa/latest/userguide/get-started.html). /// /// - Returns: `CreateEnvironmentOutput` : [no documentation found] /// @@ -400,7 +401,7 @@ extension MWAAClient { /// Performs the `DeleteEnvironment` operation on the `AmazonMWAA` service. /// - /// Deletes an Amazon Managed Workflows for Apache Airflow (MWAA) environment. + /// Deletes an Amazon Managed Workflows for Apache Airflow (Amazon MWAA) environment. /// /// - Parameter DeleteEnvironmentInput : [no documentation found] /// @@ -534,6 +535,80 @@ extension MWAAClient { return try await op.execute(input: input) } + /// Performs the `InvokeRestApi` operation on the `AmazonMWAA` service. + /// + /// Invokes the Apache Airflow REST API on the webserver with the specified inputs. To learn more, see [Using the Apache Airflow REST API](https://docs.aws.amazon.com/mwaa/latest/userguide/access-mwaa-apache-airflow-rest-api.html) + /// + /// - Parameter InvokeRestApiInput : [no documentation found] + /// + /// - Returns: `InvokeRestApiOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Access to the Apache Airflow Web UI or CLI has been denied due to insufficient permissions. To learn more, see [Accessing an Amazon MWAA environment](https://docs.aws.amazon.com/mwaa/latest/userguide/access-policies.html). + /// - `InternalServerException` : InternalServerException: An internal error has occurred. + /// - `ResourceNotFoundException` : ResourceNotFoundException: The resource is not available. + /// - `RestApiClientException` : An exception indicating that a client-side error occurred during the Apache Airflow REST API call. + /// - `RestApiServerException` : An exception indicating that a server-side error occurred during the Apache Airflow REST API call. + /// - `ValidationException` : ValidationException: The provided input is not valid. + public func invokeRestApi(input: InvokeRestApiInput) async throws -> InvokeRestApiOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "invokeRestApi") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "airflow") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(InvokeRestApiInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware(hostPrefix: "env.")) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: InvokeRestApiInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(InvokeRestApiOutput.httpOutput(from:), InvokeRestApiOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "MWAA") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "InvokeRestApi") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListEnvironments` operation on the `AmazonMWAA` service. /// /// Lists the Amazon Managed Workflows for Apache Airflow (MWAA) environments. diff --git a/Sources/Services/AWSMWAA/Sources/AWSMWAA/Models.swift b/Sources/Services/AWSMWAA/Sources/AWSMWAA/Models.swift index d79cfc13cbf..7c387749dd2 100644 --- a/Sources/Services/AWSMWAA/Sources/AWSMWAA/Models.swift +++ b/Sources/Services/AWSMWAA/Sources/AWSMWAA/Models.swift @@ -25,6 +25,7 @@ import protocol ClientRuntime.ModeledError @_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyWriter @_spi(SmithyReadWrite) import struct AWSClientRuntime.RestJSONError @_spi(UnknownAWSHTTPServiceError) import struct AWSClientRuntime.UnknownAWSHTTPServiceError +import struct Smithy.Document import struct Smithy.URIQueryItem /// Access to the Apache Airflow Web UI or CLI has been denied due to insufficient permissions. To learn more, see [Accessing an Amazon MWAA environment](https://docs.aws.amazon.com/mwaa/latest/userguide/access-policies.html). @@ -327,12 +328,11 @@ extension MWAAClientTypes { } } -/// This section contains the Amazon Managed Workflows for Apache Airflow (MWAA) API reference documentation to create an environment. For more information, see [Get started with Amazon Managed Workflows for Apache Airflow](https://docs.aws.amazon.com/mwaa/latest/userguide/get-started.html). +/// This section contains the Amazon Managed Workflows for Apache Airflow (Amazon MWAA) API reference documentation to create an environment. For more information, see [Get started with Amazon Managed Workflows for Apache Airflow](https://docs.aws.amazon.com/mwaa/latest/userguide/get-started.html). public struct CreateEnvironmentInput: Swift.Sendable { /// A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. For more information, see [Apache Airflow configuration options](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html). public var airflowConfigurationOptions: [Swift.String: Swift.String]? - /// The Apache Airflow version for your environment. If no value is specified, it defaults to the latest version. For more information, see [Apache Airflow versions on Amazon Managed Workflows for Apache Airflow (MWAA)](https://docs.aws.amazon.com/mwaa/latest/userguide/airflow-versions.html). Valid values: 1.10.12, 2.0.2, 2.2.2, 2.4.3, 2.5.1, 2.6.3, 2.7.2 - /// 2.8.1 + /// The Apache Airflow version for your environment. If no value is specified, it defaults to the latest version. For more information, see [Apache Airflow versions on Amazon Managed Workflows for Apache Airflow (Amazon MWAA)](https://docs.aws.amazon.com/mwaa/latest/userguide/airflow-versions.html). Valid values: 1.10.12, 2.0.2, 2.2.2, 2.4.3, 2.5.1, 2.6.3, 2.7.2, 2.8.1, 2.9.2, and 2.10.1. public var airflowVersion: Swift.String? /// The relative path to the DAGs folder on your Amazon S3 bucket. For example, dags. For more information, see [Adding or updating DAGs](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html). /// This member is required. @@ -737,7 +737,7 @@ extension MWAAClientTypes { public struct Environment: Swift.Sendable { /// A list of key-value pairs containing the Apache Airflow configuration options attached to your environment. For more information, see [Apache Airflow configuration options](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html). public var airflowConfigurationOptions: [Swift.String: Swift.String]? - /// The Apache Airflow version on your environment. Valid values: 1.10.12, 2.0.2, 2.2.2, 2.4.3, 2.5.1, 2.6.3, 2.7.2, 2.8.1. + /// The Apache Airflow version on your environment. Valid values: 1.10.12, 2.0.2, 2.2.2, 2.4.3, 2.5.1, 2.6.3, 2.7.2, 2.8.1, 2.9.2, and 2.10.1. public var airflowVersion: Swift.String? /// The Amazon Resource Name (ARN) of the Amazon MWAA environment. public var arn: Swift.String? @@ -923,6 +923,169 @@ public struct GetEnvironmentOutput: Swift.Sendable { } } +/// An exception indicating that a client-side error occurred during the Apache Airflow REST API call. +public struct RestApiClientException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// The error response data from the Apache Airflow REST API call, provided as a JSON object. + public internal(set) var restApiResponse: Smithy.Document? = nil + /// The HTTP status code returned by the Apache Airflow REST API call. + public internal(set) var restApiStatusCode: Swift.Int? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "RestApiClientException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + restApiResponse: Smithy.Document? = nil, + restApiStatusCode: Swift.Int? = nil + ) + { + self.properties.restApiResponse = restApiResponse + self.properties.restApiStatusCode = restApiStatusCode + } +} + +extension RestApiClientException: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "RestApiClientException(restApiStatusCode: \(Swift.String(describing: properties.restApiStatusCode)), restApiResponse: \"CONTENT_REDACTED\")"} +} + +/// An exception indicating that a server-side error occurred during the Apache Airflow REST API call. +public struct RestApiServerException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// The error response data from the Apache Airflow REST API call, provided as a JSON object. + public internal(set) var restApiResponse: Smithy.Document? = nil + /// The HTTP status code returned by the Apache Airflow REST API call. + public internal(set) var restApiStatusCode: Swift.Int? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "RestApiServerException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + restApiResponse: Smithy.Document? = nil, + restApiStatusCode: Swift.Int? = nil + ) + { + self.properties.restApiResponse = restApiResponse + self.properties.restApiStatusCode = restApiStatusCode + } +} + +extension RestApiServerException: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "RestApiServerException(restApiStatusCode: \(Swift.String(describing: properties.restApiStatusCode)), restApiResponse: \"CONTENT_REDACTED\")"} +} + +extension MWAAClientTypes { + + public enum RestApiMethod: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case delete + case `get` + case patch + case post + case put + case sdkUnknown(Swift.String) + + public static var allCases: [RestApiMethod] { + return [ + .delete, + .get, + .patch, + .post, + .put + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .delete: return "DELETE" + case .get: return "GET" + case .patch: return "PATCH" + case .post: return "POST" + case .put: return "PUT" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct InvokeRestApiInput: Swift.Sendable { + /// The request body for the Apache Airflow REST API call, provided as a JSON object. + public var body: Smithy.Document? + /// The HTTP method used for making Airflow REST API calls. For example, POST. + /// This member is required. + public var method: MWAAClientTypes.RestApiMethod? + /// The name of the Amazon MWAA environment. For example, MyMWAAEnvironment. + /// This member is required. + public var name: Swift.String? + /// The Apache Airflow REST API endpoint path to be called. For example, /dags/123456/clearTaskInstances. For more information, see [Apache Airflow API](https://airflow.apache.org/docs/apache-airflow/stable/stable-rest-api-ref.html) + /// This member is required. + public var path: Swift.String? + /// Query parameters to be included in the Apache Airflow REST API call, provided as a JSON object. + public var queryParameters: Smithy.Document? + + public init( + body: Smithy.Document? = nil, + method: MWAAClientTypes.RestApiMethod? = nil, + name: Swift.String? = nil, + path: Swift.String? = nil, + queryParameters: Smithy.Document? = nil + ) + { + self.body = body + self.method = method + self.name = name + self.path = path + self.queryParameters = queryParameters + } +} + +extension InvokeRestApiInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "InvokeRestApiInput(method: \(Swift.String(describing: method)), name: \(Swift.String(describing: name)), path: \(Swift.String(describing: path)), queryParameters: \(Swift.String(describing: queryParameters)), body: \"CONTENT_REDACTED\")"} +} + +public struct InvokeRestApiOutput: Swift.Sendable { + /// The response data from the Apache Airflow REST API call, provided as a JSON object. + public var restApiResponse: Smithy.Document? + /// The HTTP status code returned by the Apache Airflow REST API call. + public var restApiStatusCode: Swift.Int? + + public init( + restApiResponse: Smithy.Document? = nil, + restApiStatusCode: Swift.Int? = nil + ) + { + self.restApiResponse = restApiResponse + self.restApiStatusCode = restApiStatusCode + } +} + +extension InvokeRestApiOutput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "InvokeRestApiOutput(restApiStatusCode: \(Swift.String(describing: restApiStatusCode)), restApiResponse: \"CONTENT_REDACTED\")"} +} + public struct ListEnvironmentsInput: Swift.Sendable { /// The maximum number of results to retrieve per page. For example, 5 environments per page. public var maxResults: Swift.Int? @@ -1270,7 +1433,7 @@ extension MWAAClientTypes { public struct UpdateEnvironmentInput: Swift.Sendable { /// A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. For more information, see [Apache Airflow configuration options](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html). public var airflowConfigurationOptions: [Swift.String: Swift.String]? - /// The Apache Airflow version for your environment. To upgrade your environment, specify a newer version of Apache Airflow supported by Amazon MWAA. Before you upgrade an environment, make sure your requirements, DAGs, plugins, and other resources used in your workflows are compatible with the new Apache Airflow version. For more information about updating your resources, see [Upgrading an Amazon MWAA environment](https://docs.aws.amazon.com/mwaa/latest/userguide/upgrading-environment.html). Valid values: 1.10.12, 2.0.2, 2.2.2, 2.4.3, 2.5.1, 2.6.3, 2.7.2, 2.8.1. + /// The Apache Airflow version for your environment. To upgrade your environment, specify a newer version of Apache Airflow supported by Amazon MWAA. Before you upgrade an environment, make sure your requirements, DAGs, plugins, and other resources used in your workflows are compatible with the new Apache Airflow version. For more information about updating your resources, see [Upgrading an Amazon MWAA environment](https://docs.aws.amazon.com/mwaa/latest/userguide/upgrading-environment.html). Valid values: 1.10.12, 2.0.2, 2.2.2, 2.4.3, 2.5.1, 2.6.3, 2.7.2, 2.8.1, 2.9.2, and 2.10.1. public var airflowVersion: Swift.String? /// The relative path to the DAGs folder on your Amazon S3 bucket. For example, dags. For more information, see [Adding or updating DAGs](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html). public var dagS3Path: Swift.String? @@ -1431,6 +1594,16 @@ extension GetEnvironmentInput { } } +extension InvokeRestApiInput { + + static func urlPathProvider(_ value: InvokeRestApiInput) -> Swift.String? { + guard let name = value.name else { + return nil + } + return "/restapi/\(name.urlPercentEncoding())" + } +} + extension ListEnvironmentsInput { static func urlPathProvider(_ value: ListEnvironmentsInput) -> Swift.String? { @@ -1551,6 +1724,17 @@ extension CreateEnvironmentInput { } } +extension InvokeRestApiInput { + + static func write(value: InvokeRestApiInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Body"].write(value.body) + try writer["Method"].write(value.method) + try writer["Path"].write(value.path) + try writer["QueryParameters"].write(value.queryParameters) + } +} + extension PublishMetricsInput { static func write(value: PublishMetricsInput?, to writer: SmithyJSON.Writer) throws { @@ -1654,6 +1838,19 @@ extension GetEnvironmentOutput { } } +extension InvokeRestApiOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> InvokeRestApiOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = InvokeRestApiOutput() + value.restApiResponse = try reader["RestApiResponse"].readIfPresent() + value.restApiStatusCode = try reader["RestApiStatusCode"].readIfPresent() + return value + } +} + extension ListEnvironmentsOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListEnvironmentsOutput { @@ -1790,6 +1987,25 @@ enum GetEnvironmentOutputError { } } +enum InvokeRestApiOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "RestApiClientException": return try RestApiClientException.makeError(baseError: baseError) + case "RestApiServerException": return try RestApiServerException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListEnvironmentsOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -1936,6 +2152,34 @@ extension AccessDeniedException { } } +extension RestApiServerException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> RestApiServerException { + let reader = baseError.errorBodyReader + var value = RestApiServerException() + value.properties.restApiResponse = try reader["RestApiResponse"].readIfPresent() + value.properties.restApiStatusCode = try reader["RestApiStatusCode"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension RestApiClientException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> RestApiClientException { + let reader = baseError.errorBodyReader + var value = RestApiClientException() + value.properties.restApiResponse = try reader["RestApiResponse"].readIfPresent() + value.properties.restApiStatusCode = try reader["RestApiStatusCode"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + extension MWAAClientTypes.Environment { static func read(from reader: SmithyJSON.Reader) throws -> MWAAClientTypes.Environment { diff --git a/Sources/Services/AWSPaymentCryptography/Sources/AWSPaymentCryptography/Models.swift b/Sources/Services/AWSPaymentCryptography/Sources/AWSPaymentCryptography/Models.swift index aa56e5c3d6a..679fc0e005b 100644 --- a/Sources/Services/AWSPaymentCryptography/Sources/AWSPaymentCryptography/Models.swift +++ b/Sources/Services/AWSPaymentCryptography/Sources/AWSPaymentCryptography/Models.swift @@ -382,6 +382,8 @@ extension PaymentCryptographyClientTypes { case aes128 case aes192 case aes256 + case eccNistP256 + case eccNistP384 case rsa2048 case rsa3072 case rsa4096 @@ -394,6 +396,8 @@ extension PaymentCryptographyClientTypes { .aes128, .aes192, .aes256, + .eccNistP256, + .eccNistP384, .rsa2048, .rsa3072, .rsa4096, @@ -412,6 +416,8 @@ extension PaymentCryptographyClientTypes { case .aes128: return "AES_128" case .aes192: return "AES_192" case .aes256: return "AES_256" + case .eccNistP256: return "ECC_NIST_P256" + case .eccNistP384: return "ECC_NIST_P384" case .rsa2048: return "RSA_2048" case .rsa3072: return "RSA_3072" case .rsa4096: return "RSA_4096" diff --git a/Sources/Services/AWSPaymentCryptographyData/Sources/AWSPaymentCryptographyData/Models.swift b/Sources/Services/AWSPaymentCryptographyData/Sources/AWSPaymentCryptographyData/Models.swift index 728a1f5952a..7785fb581e2 100644 --- a/Sources/Services/AWSPaymentCryptographyData/Sources/AWSPaymentCryptographyData/Models.swift +++ b/Sources/Services/AWSPaymentCryptographyData/Sources/AWSPaymentCryptographyData/Models.swift @@ -1016,12 +1016,160 @@ extension PaymentCryptographyDataClientTypes { } } +extension PaymentCryptographyDataClientTypes { + + public enum SymmetricKeyAlgorithm: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case aes128 + case aes192 + case aes256 + case tdes2key + case tdes3key + case sdkUnknown(Swift.String) + + public static var allCases: [SymmetricKeyAlgorithm] { + return [ + .aes128, + .aes192, + .aes256, + .tdes2key, + .tdes3key + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .aes128: return "AES_128" + case .aes192: return "AES_192" + case .aes256: return "AES_256" + case .tdes2key: return "TDES_2KEY" + case .tdes3key: return "TDES_3KEY" + case let .sdkUnknown(s): return s + } + } + } +} + +extension PaymentCryptographyDataClientTypes { + + public enum KeyDerivationFunction: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case ansiX963 + case nistSp800 + case sdkUnknown(Swift.String) + + public static var allCases: [KeyDerivationFunction] { + return [ + .ansiX963, + .nistSp800 + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .ansiX963: return "ANSI_X963" + case .nistSp800: return "NIST_SP800" + case let .sdkUnknown(s): return s + } + } + } +} + +extension PaymentCryptographyDataClientTypes { + + public enum KeyDerivationHashAlgorithm: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case sha256 + case sha384 + case sha512 + case sdkUnknown(Swift.String) + + public static var allCases: [KeyDerivationHashAlgorithm] { + return [ + .sha256, + .sha384, + .sha512 + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .sha256: return "SHA_256" + case .sha384: return "SHA_384" + case .sha512: return "SHA_512" + case let .sdkUnknown(s): return s + } + } + } +} + +extension PaymentCryptographyDataClientTypes { + + /// Parameters required to establish ECDH based key exchange. + public struct EcdhDerivationAttributes: Swift.Sendable { + /// The keyArn of the certificate that signed the client's PublicKeyCertificate. + /// This member is required. + public var certificateAuthorityPublicKeyIdentifier: Swift.String? + /// The key algorithm of the derived ECDH key. + /// This member is required. + public var keyAlgorithm: PaymentCryptographyDataClientTypes.SymmetricKeyAlgorithm? + /// The key derivation function to use for deriving a key using ECDH. + /// This member is required. + public var keyDerivationFunction: PaymentCryptographyDataClientTypes.KeyDerivationFunction? + /// The hash type to use for deriving a key using ECDH. + /// This member is required. + public var keyDerivationHashAlgorithm: PaymentCryptographyDataClientTypes.KeyDerivationHashAlgorithm? + /// The client's public key certificate in PEM format (base64 encoded) to use for ECDH key derivation. + /// This member is required. + public var publicKeyCertificate: Swift.String? + /// A byte string containing information that binds the ECDH derived key to the two parties involved or to the context of the key. It may include details like identities of the two parties deriving the key, context of the operation, session IDs, and optionally a nonce. It must not contain zero bytes, and re-using shared information for multiple ECDH key derivations is not recommended. + /// This member is required. + public var sharedInformation: Swift.String? + + public init( + certificateAuthorityPublicKeyIdentifier: Swift.String? = nil, + keyAlgorithm: PaymentCryptographyDataClientTypes.SymmetricKeyAlgorithm? = nil, + keyDerivationFunction: PaymentCryptographyDataClientTypes.KeyDerivationFunction? = nil, + keyDerivationHashAlgorithm: PaymentCryptographyDataClientTypes.KeyDerivationHashAlgorithm? = nil, + publicKeyCertificate: Swift.String? = nil, + sharedInformation: Swift.String? = nil + ) + { + self.certificateAuthorityPublicKeyIdentifier = certificateAuthorityPublicKeyIdentifier + self.keyAlgorithm = keyAlgorithm + self.keyDerivationFunction = keyDerivationFunction + self.keyDerivationHashAlgorithm = keyDerivationHashAlgorithm + self.publicKeyCertificate = publicKeyCertificate + self.sharedInformation = sharedInformation + } + } +} + +extension PaymentCryptographyDataClientTypes.EcdhDerivationAttributes: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "EcdhDerivationAttributes(certificateAuthorityPublicKeyIdentifier: \(Swift.String(describing: certificateAuthorityPublicKeyIdentifier)), keyAlgorithm: \(Swift.String(describing: keyAlgorithm)), keyDerivationFunction: \(Swift.String(describing: keyDerivationFunction)), keyDerivationHashAlgorithm: \(Swift.String(describing: keyDerivationHashAlgorithm)), sharedInformation: \(Swift.String(describing: sharedInformation)), publicKeyCertificate: \"CONTENT_REDACTED\")"} +} + extension PaymentCryptographyDataClientTypes { /// Parameter information of a WrappedKeyBlock for encryption key exchange. public enum WrappedKeyMaterial: Swift.Sendable { /// The TR-31 wrapped key block. case tr31keyblock(Swift.String) + /// The parameter information for deriving a ECDH shared key. + case diffiehellmansymmetrickey(PaymentCryptographyDataClientTypes.EcdhDerivationAttributes) case sdkUnknown(Swift.String) } } @@ -2135,12 +2283,14 @@ extension PaymentCryptographyDataClientTypes { public enum PinBlockFormatForPinData: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case isoFormat0 case isoFormat3 + case isoFormat4 case sdkUnknown(Swift.String) public static var allCases: [PinBlockFormatForPinData] { return [ .isoFormat0, - .isoFormat3 + .isoFormat3, + .isoFormat4 ] } @@ -2153,6 +2303,7 @@ extension PaymentCryptographyDataClientTypes { switch self { case .isoFormat0: return "ISO_FORMAT_0" case .isoFormat3: return "ISO_FORMAT_3" + case .isoFormat4: return "ISO_FORMAT_4" case let .sdkUnknown(s): return s } } @@ -2160,9 +2311,11 @@ extension PaymentCryptographyDataClientTypes { } public struct GeneratePinDataInput: Swift.Sendable { - /// The keyARN of the PEK that Amazon Web Services Payment Cryptography uses to encrypt the PIN Block. + /// The keyARN of the PEK that Amazon Web Services Payment Cryptography uses to encrypt the PIN Block. For ECDH, it is the keyARN of the asymmetric ECC key. /// This member is required. public var encryptionKeyIdentifier: Swift.String? + /// Parameter information of a WrappedKeyBlock for encryption key exchange. + public var encryptionWrappedKey: PaymentCryptographyDataClientTypes.WrappedKey? /// The attributes and values to use for PIN, PVV, or PIN Offset generation. /// This member is required. public var generationAttributes: PaymentCryptographyDataClientTypes.PinGenerationAttributes? @@ -2180,6 +2333,7 @@ public struct GeneratePinDataInput: Swift.Sendable { public init( encryptionKeyIdentifier: Swift.String? = nil, + encryptionWrappedKey: PaymentCryptographyDataClientTypes.WrappedKey? = nil, generationAttributes: PaymentCryptographyDataClientTypes.PinGenerationAttributes? = nil, generationKeyIdentifier: Swift.String? = nil, pinBlockFormat: PaymentCryptographyDataClientTypes.PinBlockFormatForPinData? = nil, @@ -2188,6 +2342,7 @@ public struct GeneratePinDataInput: Swift.Sendable { ) { self.encryptionKeyIdentifier = encryptionKeyIdentifier + self.encryptionWrappedKey = encryptionWrappedKey self.generationAttributes = generationAttributes self.generationKeyIdentifier = generationKeyIdentifier self.pinBlockFormat = pinBlockFormat @@ -2198,7 +2353,7 @@ public struct GeneratePinDataInput: Swift.Sendable { extension GeneratePinDataInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "GeneratePinDataInput(encryptionKeyIdentifier: \(Swift.String(describing: encryptionKeyIdentifier)), generationAttributes: \(Swift.String(describing: generationAttributes)), generationKeyIdentifier: \(Swift.String(describing: generationKeyIdentifier)), pinBlockFormat: \(Swift.String(describing: pinBlockFormat)), pinDataLength: \(Swift.String(describing: pinDataLength)), primaryAccountNumber: \"CONTENT_REDACTED\")"} + "GeneratePinDataInput(encryptionKeyIdentifier: \(Swift.String(describing: encryptionKeyIdentifier)), encryptionWrappedKey: \(Swift.String(describing: encryptionWrappedKey)), generationAttributes: \(Swift.String(describing: generationAttributes)), generationKeyIdentifier: \(Swift.String(describing: generationKeyIdentifier)), pinBlockFormat: \(Swift.String(describing: pinBlockFormat)), pinDataLength: \(Swift.String(describing: pinDataLength)), primaryAccountNumber: \"CONTENT_REDACTED\")"} } extension PaymentCryptographyDataClientTypes { @@ -2217,7 +2372,7 @@ public struct GeneratePinDataOutput: Swift.Sendable { /// The PIN block encrypted under PEK from Amazon Web Services Payment Cryptography. The encrypted PIN block is a composite of PAN (Primary Account Number) and PIN (Personal Identification Number), generated in accordance with ISO 9564 standard. /// This member is required. public var encryptedPinBlock: Swift.String? - /// The keyARN of the PEK that Amazon Web Services Payment Cryptography uses for encrypted pin block generation. + /// The keyARN of the PEK that Amazon Web Services Payment Cryptography uses for encrypted pin block generation. For ECDH, it is the keyARN of the asymmetric ECC key. /// This member is required. public var encryptionKeyArn: Swift.String? /// The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography computes the KCV according to the CMAC specification. @@ -2432,7 +2587,7 @@ public struct TranslatePinDataInput: Swift.Sendable { public var encryptedPinBlock: Swift.String? /// The attributes and values to use for incoming DUKPT encryption key for PIN block translation. public var incomingDukptAttributes: PaymentCryptographyDataClientTypes.DukptDerivationAttributes? - /// The keyARN of the encryption key under which incoming PIN block data is encrypted. This key type can be PEK or BDK. When a WrappedKeyBlock is provided, this value will be the identifier to the key wrapping key for PIN block. Otherwise, it is the key identifier used to perform the operation. + /// The keyARN of the encryption key under which incoming PIN block data is encrypted. This key type can be PEK or BDK. For dynamic keys, it is the keyARN of KEK of the TR-31 wrapped PEK. For ECDH, it is the keyARN of the asymmetric ECC key. /// This member is required. public var incomingKeyIdentifier: Swift.String? /// The format of the incoming PIN block data for translation within Amazon Web Services Payment Cryptography. @@ -2442,7 +2597,7 @@ public struct TranslatePinDataInput: Swift.Sendable { public var incomingWrappedKey: PaymentCryptographyDataClientTypes.WrappedKey? /// The attributes and values to use for outgoing DUKPT encryption key after PIN block translation. public var outgoingDukptAttributes: PaymentCryptographyDataClientTypes.DukptDerivationAttributes? - /// The keyARN of the encryption key for encrypting outgoing PIN block data. This key type can be PEK or BDK. + /// The keyARN of the encryption key for encrypting outgoing PIN block data. This key type can be PEK or BDK. For ECDH, it is the keyARN of the asymmetric ECC key. /// This member is required. public var outgoingKeyIdentifier: Swift.String? /// The format of the outgoing PIN block data after translation by Amazon Web Services Payment Cryptography. @@ -2969,6 +3124,8 @@ public struct VerifyPinDataInput: Swift.Sendable { /// The keyARN of the encryption key under which the PIN block data is encrypted. This key type can be PEK or BDK. /// This member is required. public var encryptionKeyIdentifier: Swift.String? + /// Parameter information of a WrappedKeyBlock for encryption key exchange. + public var encryptionWrappedKey: PaymentCryptographyDataClientTypes.WrappedKey? /// The PIN encoding format for pin data generation as specified in ISO 9564. Amazon Web Services Payment Cryptography supports ISO_Format_0 and ISO_Format_3. The ISO_Format_0 PIN block format is equivalent to the ANSI X9.8, VISA-1, and ECI-1 PIN block formats. It is similar to a VISA-4 PIN block format. It supports a PIN from 4 to 12 digits in length. The ISO_Format_3 PIN block format is the same as ISO_Format_0 except that the fill digits are random values from 10 to 15. /// This member is required. public var pinBlockFormat: PaymentCryptographyDataClientTypes.PinBlockFormatForPinData? @@ -2988,6 +3145,7 @@ public struct VerifyPinDataInput: Swift.Sendable { dukptAttributes: PaymentCryptographyDataClientTypes.DukptAttributes? = nil, encryptedPinBlock: Swift.String? = nil, encryptionKeyIdentifier: Swift.String? = nil, + encryptionWrappedKey: PaymentCryptographyDataClientTypes.WrappedKey? = nil, pinBlockFormat: PaymentCryptographyDataClientTypes.PinBlockFormatForPinData? = nil, pinDataLength: Swift.Int? = nil, primaryAccountNumber: Swift.String? = nil, @@ -2998,6 +3156,7 @@ public struct VerifyPinDataInput: Swift.Sendable { self.dukptAttributes = dukptAttributes self.encryptedPinBlock = encryptedPinBlock self.encryptionKeyIdentifier = encryptionKeyIdentifier + self.encryptionWrappedKey = encryptionWrappedKey self.pinBlockFormat = pinBlockFormat self.pinDataLength = pinDataLength self.primaryAccountNumber = primaryAccountNumber @@ -3008,7 +3167,7 @@ public struct VerifyPinDataInput: Swift.Sendable { extension VerifyPinDataInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "VerifyPinDataInput(dukptAttributes: \(Swift.String(describing: dukptAttributes)), encryptionKeyIdentifier: \(Swift.String(describing: encryptionKeyIdentifier)), pinBlockFormat: \(Swift.String(describing: pinBlockFormat)), pinDataLength: \(Swift.String(describing: pinDataLength)), verificationAttributes: \(Swift.String(describing: verificationAttributes)), verificationKeyIdentifier: \(Swift.String(describing: verificationKeyIdentifier)), encryptedPinBlock: \"CONTENT_REDACTED\", primaryAccountNumber: \"CONTENT_REDACTED\")"} + "VerifyPinDataInput(dukptAttributes: \(Swift.String(describing: dukptAttributes)), encryptionKeyIdentifier: \(Swift.String(describing: encryptionKeyIdentifier)), encryptionWrappedKey: \(Swift.String(describing: encryptionWrappedKey)), pinBlockFormat: \(Swift.String(describing: pinBlockFormat)), pinDataLength: \(Swift.String(describing: pinDataLength)), verificationAttributes: \(Swift.String(describing: verificationAttributes)), verificationKeyIdentifier: \(Swift.String(describing: verificationKeyIdentifier)), encryptedPinBlock: \"CONTENT_REDACTED\", primaryAccountNumber: \"CONTENT_REDACTED\")"} } public struct VerifyPinDataOutput: Swift.Sendable { @@ -3193,6 +3352,7 @@ extension GeneratePinDataInput { static func write(value: GeneratePinDataInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["EncryptionKeyIdentifier"].write(value.encryptionKeyIdentifier) + try writer["EncryptionWrappedKey"].write(value.encryptionWrappedKey, with: PaymentCryptographyDataClientTypes.WrappedKey.write(value:to:)) try writer["GenerationAttributes"].write(value.generationAttributes, with: PaymentCryptographyDataClientTypes.PinGenerationAttributes.write(value:to:)) try writer["GenerationKeyIdentifier"].write(value.generationKeyIdentifier) try writer["PinBlockFormat"].write(value.pinBlockFormat) @@ -3273,6 +3433,7 @@ extension VerifyPinDataInput { try writer["DukptAttributes"].write(value.dukptAttributes, with: PaymentCryptographyDataClientTypes.DukptAttributes.write(value:to:)) try writer["EncryptedPinBlock"].write(value.encryptedPinBlock) try writer["EncryptionKeyIdentifier"].write(value.encryptionKeyIdentifier) + try writer["EncryptionWrappedKey"].write(value.encryptionWrappedKey, with: PaymentCryptographyDataClientTypes.WrappedKey.write(value:to:)) try writer["PinBlockFormat"].write(value.pinBlockFormat) try writer["PinDataLength"].write(value.pinDataLength) try writer["PrimaryAccountNumber"].write(value.primaryAccountNumber) @@ -3873,6 +4034,8 @@ extension PaymentCryptographyDataClientTypes.WrappedKeyMaterial { static func write(value: PaymentCryptographyDataClientTypes.WrappedKeyMaterial?, to writer: SmithyJSON.Writer) throws { guard let value else { return } switch value { + case let .diffiehellmansymmetrickey(diffiehellmansymmetrickey): + try writer["DiffieHellmanSymmetricKey"].write(diffiehellmansymmetrickey, with: PaymentCryptographyDataClientTypes.EcdhDerivationAttributes.write(value:to:)) case let .tr31keyblock(tr31keyblock): try writer["Tr31KeyBlock"].write(tr31keyblock) case let .sdkUnknown(sdkUnknown): @@ -3881,6 +4044,19 @@ extension PaymentCryptographyDataClientTypes.WrappedKeyMaterial { } } +extension PaymentCryptographyDataClientTypes.EcdhDerivationAttributes { + + static func write(value: PaymentCryptographyDataClientTypes.EcdhDerivationAttributes?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["CertificateAuthorityPublicKeyIdentifier"].write(value.certificateAuthorityPublicKeyIdentifier) + try writer["KeyAlgorithm"].write(value.keyAlgorithm) + try writer["KeyDerivationFunction"].write(value.keyDerivationFunction) + try writer["KeyDerivationHashAlgorithm"].write(value.keyDerivationHashAlgorithm) + try writer["PublicKeyCertificate"].write(value.publicKeyCertificate) + try writer["SharedInformation"].write(value.sharedInformation) + } +} + extension PaymentCryptographyDataClientTypes.CardGenerationAttributes { static func write(value: PaymentCryptographyDataClientTypes.CardGenerationAttributes?, to writer: SmithyJSON.Writer) throws { diff --git a/Sources/Services/AWSPaymentCryptographyData/Sources/AWSPaymentCryptographyData/PaymentCryptographyDataClient.swift b/Sources/Services/AWSPaymentCryptographyData/Sources/AWSPaymentCryptographyData/PaymentCryptographyDataClient.swift index 1f9f29ae7dd..a20d86ffa4e 100644 --- a/Sources/Services/AWSPaymentCryptographyData/Sources/AWSPaymentCryptographyData/PaymentCryptographyDataClient.swift +++ b/Sources/Services/AWSPaymentCryptographyData/Sources/AWSPaymentCryptographyData/PaymentCryptographyDataClient.swift @@ -583,7 +583,7 @@ extension PaymentCryptographyDataClient { /// Performs the `GeneratePinData` operation on the `PaymentCryptographyDataPlane` service. /// - /// Generates pin-related data such as PIN, PIN Verification Value (PVV), PIN Block, and PIN Offset during new card issuance or reissuance. For more information, see [Generate PIN data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-pin-data.html) in the Amazon Web Services Payment Cryptography User Guide. PIN data is never transmitted in clear to or from Amazon Web Services Payment Cryptography. This operation generates PIN, PVV, or PIN Offset and then encrypts it using Pin Encryption Key (PEK) to create an EncryptedPinBlock for transmission from Amazon Web Services Payment Cryptography. This operation uses a separate Pin Verification Key (PVK) for VISA PVV generation. For information about valid keys for this operation, see [Understanding key attributes](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html) and [Key types for specific data operations](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) in the Amazon Web Services Payment Cryptography User Guide. Cross-account use: This operation can't be used across different Amazon Web Services accounts. Related operations: + /// Generates pin-related data such as PIN, PIN Verification Value (PVV), PIN Block, and PIN Offset during new card issuance or reissuance. For more information, see [Generate PIN data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-pin-data.html) in the Amazon Web Services Payment Cryptography User Guide. PIN data is never transmitted in clear to or from Amazon Web Services Payment Cryptography. This operation generates PIN, PVV, or PIN Offset and then encrypts it using Pin Encryption Key (PEK) to create an EncryptedPinBlock for transmission from Amazon Web Services Payment Cryptography. This operation uses a separate Pin Verification Key (PVK) for VISA PVV generation. Using ECDH key exchange, you can receive cardholder selectable PINs into Amazon Web Services Payment Cryptography. The ECDH derived key protects the incoming PIN block. You can also use it for reveal PIN, wherein the generated PIN block is protected by the ECDH derived key before transmission from Amazon Web Services Payment Cryptography. For more information on establishing ECDH derived keys, see the [Generating keys](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/create-keys.html) in the Amazon Web Services Payment Cryptography User Guide. For information about valid keys for this operation, see [Understanding key attributes](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html) and [Key types for specific data operations](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) in the Amazon Web Services Payment Cryptography User Guide. Cross-account use: This operation can't be used across different Amazon Web Services accounts. Related operations: /// /// * [GenerateCardValidationData] /// @@ -743,7 +743,7 @@ extension PaymentCryptographyDataClient { /// Performs the `TranslatePinData` operation on the `PaymentCryptographyDataPlane` service. /// - /// Translates encrypted PIN block from and to ISO 9564 formats 0,1,3,4. For more information, see [Translate PIN data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/translate-pin-data.html) in the Amazon Web Services Payment Cryptography User Guide. PIN block translation involves changing the encrytion of PIN block from one encryption key to another encryption key and changing PIN block format from one to another without PIN block data leaving Amazon Web Services Payment Cryptography. The encryption key transformation can be from PEK (Pin Encryption Key) to BDK (Base Derivation Key) for DUKPT or from BDK for DUKPT to PEK. Amazon Web Services Payment Cryptography supports TDES and AES key derivation type for DUKPT translations. This operation also supports dynamic keys, allowing you to pass a dynamic PEK as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To translate PIN block using dynamic keys, the keyARN is the Key Encryption Key (KEK) of the TR-31 wrapped PEK. The incoming wrapped key shall have a key purpose of P0 with a mode of use of B or D. For more information, see [Using Dynamic Keys](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/use-cases-acquirers-dynamickeys.html) in the Amazon Web Services Payment Cryptography User Guide. The allowed combinations of PIN block format translations are guided by PCI. It is important to note that not all encrypted PIN block formats (example, format 1) require PAN (Primary Account Number) as input. And as such, PIN block format that requires PAN (example, formats 0,3,4) cannot be translated to a format (format 1) that does not require a PAN for generation. For information about valid keys for this operation, see [Understanding key attributes](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html) and [Key types for specific data operations](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) in the Amazon Web Services Payment Cryptography User Guide. Amazon Web Services Payment Cryptography currently supports ISO PIN block 4 translation for PIN block built using legacy PAN length. That is, PAN is the right most 12 digits excluding the check digits. Cross-account use: This operation can't be used across different Amazon Web Services accounts. Related operations: + /// Translates encrypted PIN block from and to ISO 9564 formats 0,1,3,4. For more information, see [Translate PIN data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/translate-pin-data.html) in the Amazon Web Services Payment Cryptography User Guide. PIN block translation involves changing a PIN block from one encryption key to another and optionally change its format. PIN block translation occurs entirely within the HSM boundary and PIN data never enters or leaves Amazon Web Services Payment Cryptography in clear text. The encryption key transformation can be from PEK (Pin Encryption Key) to BDK (Base Derivation Key) for DUKPT or from BDK for DUKPT to PEK. Amazon Web Services Payment Cryptography also supports use of dynamic keys and ECDH (Elliptic Curve Diffie-Hellman) based key exchange for this operation. Dynamic keys allow you to pass a PEK as a TR-31 WrappedKeyBlock. They can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To translate PIN block using dynamic keys, the keyARN is the Key Encryption Key (KEK) of the TR-31 wrapped PEK. The incoming wrapped key shall have a key purpose of P0 with a mode of use of B or D. For more information, see [Using Dynamic Keys](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/use-cases-acquirers-dynamickeys.html) in the Amazon Web Services Payment Cryptography User Guide. Using ECDH key exchange, you can receive cardholder selectable PINs into Amazon Web Services Payment Cryptography. The ECDH derived key protects the incoming PIN block, which is translated to a PEK encrypted PIN block for use within the service. You can also use ECDH for reveal PIN, wherein the service translates the PIN block from PEK to a ECDH derived encryption key. For more information on establishing ECDH derived keys, see the [Generating keys](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/create-keys.html) in the Amazon Web Services Payment Cryptography User Guide. The allowed combinations of PIN block format translations are guided by PCI. It is important to note that not all encrypted PIN block formats (example, format 1) require PAN (Primary Account Number) as input. And as such, PIN block format that requires PAN (example, formats 0,3,4) cannot be translated to a format (format 1) that does not require a PAN for generation. For information about valid keys for this operation, see [Understanding key attributes](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html) and [Key types for specific data operations](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) in the Amazon Web Services Payment Cryptography User Guide. Amazon Web Services Payment Cryptography currently supports ISO PIN block 4 translation for PIN block built using legacy PAN length. That is, PAN is the right most 12 digits excluding the check digits. Cross-account use: This operation can't be used across different Amazon Web Services accounts. Related operations: /// /// * [GeneratePinData] ///