class Aws::Connect::Plugins::Endpoints::Handler

@api private

def apply_endpoint_headers(context, headers)

def apply_endpoint_headers(context, headers)
  headers.each do |key, values|
    value = values
      .compact
      .map { |s| Seahorse::Util.escape_header_list_string(s.to_s) }
      .join(',')
    context.http_request.headers[key] = value
  end
end

def call(context)

def call(context)
  unless context[:discovered_endpoint]
    params = parameters_for_operation(context)
    endpoint = context.config.endpoint_provider.resolve_endpoint(params)
    context.http_request.endpoint = endpoint.url
    apply_endpoint_headers(context, endpoint.headers)
    context[:endpoint_params] = params
    context[:endpoint_properties] = endpoint.properties
  end
  context[:auth_scheme] =
    Aws::Endpoints.resolve_auth_scheme(context, endpoint)
  with_metrics(context) { @handler.call(context) }
end

def parameters_for_operation(context)

def parameters_for_operation(context)
  case context.operation_name
  when :activate_evaluation_form
    Aws::Connect::Endpoints::ActivateEvaluationForm.build(context)
  when :associate_analytics_data_set
    Aws::Connect::Endpoints::AssociateAnalyticsDataSet.build(context)
  when :associate_approved_origin
    Aws::Connect::Endpoints::AssociateApprovedOrigin.build(context)
  when :associate_bot
    Aws::Connect::Endpoints::AssociateBot.build(context)
  when :associate_default_vocabulary
    Aws::Connect::Endpoints::AssociateDefaultVocabulary.build(context)
  when :associate_flow
    Aws::Connect::Endpoints::AssociateFlow.build(context)
  when :associate_instance_storage_config
    Aws::Connect::Endpoints::AssociateInstanceStorageConfig.build(context)
  when :associate_lambda_function
    Aws::Connect::Endpoints::AssociateLambdaFunction.build(context)
  when :associate_lex_bot
    Aws::Connect::Endpoints::AssociateLexBot.build(context)
  when :associate_phone_number_contact_flow
    Aws::Connect::Endpoints::AssociatePhoneNumberContactFlow.build(context)
  when :associate_queue_quick_connects
    Aws::Connect::Endpoints::AssociateQueueQuickConnects.build(context)
  when :associate_routing_profile_queues
    Aws::Connect::Endpoints::AssociateRoutingProfileQueues.build(context)
  when :associate_security_key
    Aws::Connect::Endpoints::AssociateSecurityKey.build(context)
  when :associate_traffic_distribution_group_user
    Aws::Connect::Endpoints::AssociateTrafficDistributionGroupUser.build(context)
  when :associate_user_proficiencies
    Aws::Connect::Endpoints::AssociateUserProficiencies.build(context)
  when :batch_associate_analytics_data_set
    Aws::Connect::Endpoints::BatchAssociateAnalyticsDataSet.build(context)
  when :batch_disassociate_analytics_data_set
    Aws::Connect::Endpoints::BatchDisassociateAnalyticsDataSet.build(context)
  when :batch_get_attached_file_metadata
    Aws::Connect::Endpoints::BatchGetAttachedFileMetadata.build(context)
  when :batch_get_flow_association
    Aws::Connect::Endpoints::BatchGetFlowAssociation.build(context)
  when :batch_put_contact
    Aws::Connect::Endpoints::BatchPutContact.build(context)
  when :claim_phone_number
    Aws::Connect::Endpoints::ClaimPhoneNumber.build(context)
  when :complete_attached_file_upload
    Aws::Connect::Endpoints::CompleteAttachedFileUpload.build(context)
  when :create_agent_status
    Aws::Connect::Endpoints::CreateAgentStatus.build(context)
  when :create_contact_flow
    Aws::Connect::Endpoints::CreateContactFlow.build(context)
  when :create_contact_flow_module
    Aws::Connect::Endpoints::CreateContactFlowModule.build(context)
  when :create_evaluation_form
    Aws::Connect::Endpoints::CreateEvaluationForm.build(context)
  when :create_hours_of_operation
    Aws::Connect::Endpoints::CreateHoursOfOperation.build(context)
  when :create_instance
    Aws::Connect::Endpoints::CreateInstance.build(context)
  when :create_integration_association
    Aws::Connect::Endpoints::CreateIntegrationAssociation.build(context)
  when :create_participant
    Aws::Connect::Endpoints::CreateParticipant.build(context)
  when :create_persistent_contact_association
    Aws::Connect::Endpoints::CreatePersistentContactAssociation.build(context)
  when :create_predefined_attribute
    Aws::Connect::Endpoints::CreatePredefinedAttribute.build(context)
  when :create_prompt
    Aws::Connect::Endpoints::CreatePrompt.build(context)
  when :create_queue
    Aws::Connect::Endpoints::CreateQueue.build(context)
  when :create_quick_connect
    Aws::Connect::Endpoints::CreateQuickConnect.build(context)
  when :create_routing_profile
    Aws::Connect::Endpoints::CreateRoutingProfile.build(context)
  when :create_rule
    Aws::Connect::Endpoints::CreateRule.build(context)
  when :create_security_profile
    Aws::Connect::Endpoints::CreateSecurityProfile.build(context)
  when :create_task_template
    Aws::Connect::Endpoints::CreateTaskTemplate.build(context)
  when :create_traffic_distribution_group
    Aws::Connect::Endpoints::CreateTrafficDistributionGroup.build(context)
  when :create_use_case
    Aws::Connect::Endpoints::CreateUseCase.build(context)
  when :create_user
    Aws::Connect::Endpoints::CreateUser.build(context)
  when :create_user_hierarchy_group
    Aws::Connect::Endpoints::CreateUserHierarchyGroup.build(context)
  when :create_view
    Aws::Connect::Endpoints::CreateView.build(context)
  when :create_view_version
    Aws::Connect::Endpoints::CreateViewVersion.build(context)
  when :create_vocabulary
    Aws::Connect::Endpoints::CreateVocabulary.build(context)
  when :deactivate_evaluation_form
    Aws::Connect::Endpoints::DeactivateEvaluationForm.build(context)
  when :delete_attached_file
    Aws::Connect::Endpoints::DeleteAttachedFile.build(context)
  when :delete_contact_evaluation
    Aws::Connect::Endpoints::DeleteContactEvaluation.build(context)
  when :delete_contact_flow
    Aws::Connect::Endpoints::DeleteContactFlow.build(context)
  when :delete_contact_flow_module
    Aws::Connect::Endpoints::DeleteContactFlowModule.build(context)
  when :delete_evaluation_form
    Aws::Connect::Endpoints::DeleteEvaluationForm.build(context)
  when :delete_hours_of_operation
    Aws::Connect::Endpoints::DeleteHoursOfOperation.build(context)
  when :delete_instance
    Aws::Connect::Endpoints::DeleteInstance.build(context)
  when :delete_integration_association
    Aws::Connect::Endpoints::DeleteIntegrationAssociation.build(context)
  when :delete_predefined_attribute
    Aws::Connect::Endpoints::DeletePredefinedAttribute.build(context)
  when :delete_prompt
    Aws::Connect::Endpoints::DeletePrompt.build(context)
  when :delete_queue
    Aws::Connect::Endpoints::DeleteQueue.build(context)
  when :delete_quick_connect
    Aws::Connect::Endpoints::DeleteQuickConnect.build(context)
  when :delete_routing_profile
    Aws::Connect::Endpoints::DeleteRoutingProfile.build(context)
  when :delete_rule
    Aws::Connect::Endpoints::DeleteRule.build(context)
  when :delete_security_profile
    Aws::Connect::Endpoints::DeleteSecurityProfile.build(context)
  when :delete_task_template
    Aws::Connect::Endpoints::DeleteTaskTemplate.build(context)
  when :delete_traffic_distribution_group
    Aws::Connect::Endpoints::DeleteTrafficDistributionGroup.build(context)
  when :delete_use_case
    Aws::Connect::Endpoints::DeleteUseCase.build(context)
  when :delete_user
    Aws::Connect::Endpoints::DeleteUser.build(context)
  when :delete_user_hierarchy_group
    Aws::Connect::Endpoints::DeleteUserHierarchyGroup.build(context)
  when :delete_view
    Aws::Connect::Endpoints::DeleteView.build(context)
  when :delete_view_version
    Aws::Connect::Endpoints::DeleteViewVersion.build(context)
  when :delete_vocabulary
    Aws::Connect::Endpoints::DeleteVocabulary.build(context)
  when :describe_agent_status
    Aws::Connect::Endpoints::DescribeAgentStatus.build(context)
  when :describe_authentication_profile
    Aws::Connect::Endpoints::DescribeAuthenticationProfile.build(context)
  when :describe_contact
    Aws::Connect::Endpoints::DescribeContact.build(context)
  when :describe_contact_evaluation
    Aws::Connect::Endpoints::DescribeContactEvaluation.build(context)
  when :describe_contact_flow
    Aws::Connect::Endpoints::DescribeContactFlow.build(context)
  when :describe_contact_flow_module
    Aws::Connect::Endpoints::DescribeContactFlowModule.build(context)
  when :describe_evaluation_form
    Aws::Connect::Endpoints::DescribeEvaluationForm.build(context)
  when :describe_hours_of_operation
    Aws::Connect::Endpoints::DescribeHoursOfOperation.build(context)
  when :describe_instance
    Aws::Connect::Endpoints::DescribeInstance.build(context)
  when :describe_instance_attribute
    Aws::Connect::Endpoints::DescribeInstanceAttribute.build(context)
  when :describe_instance_storage_config
    Aws::Connect::Endpoints::DescribeInstanceStorageConfig.build(context)
  when :describe_phone_number
    Aws::Connect::Endpoints::DescribePhoneNumber.build(context)
  when :describe_predefined_attribute
    Aws::Connect::Endpoints::DescribePredefinedAttribute.build(context)
  when :describe_prompt
    Aws::Connect::Endpoints::DescribePrompt.build(context)
  when :describe_queue
    Aws::Connect::Endpoints::DescribeQueue.build(context)
  when :describe_quick_connect
    Aws::Connect::Endpoints::DescribeQuickConnect.build(context)
  when :describe_routing_profile
    Aws::Connect::Endpoints::DescribeRoutingProfile.build(context)
  when :describe_rule
    Aws::Connect::Endpoints::DescribeRule.build(context)
  when :describe_security_profile
    Aws::Connect::Endpoints::DescribeSecurityProfile.build(context)
  when :describe_traffic_distribution_group
    Aws::Connect::Endpoints::DescribeTrafficDistributionGroup.build(context)
  when :describe_user
    Aws::Connect::Endpoints::DescribeUser.build(context)
  when :describe_user_hierarchy_group
    Aws::Connect::Endpoints::DescribeUserHierarchyGroup.build(context)
  when :describe_user_hierarchy_structure
    Aws::Connect::Endpoints::DescribeUserHierarchyStructure.build(context)
  when :describe_view
    Aws::Connect::Endpoints::DescribeView.build(context)
  when :describe_vocabulary
    Aws::Connect::Endpoints::DescribeVocabulary.build(context)
  when :disassociate_analytics_data_set
    Aws::Connect::Endpoints::DisassociateAnalyticsDataSet.build(context)
  when :disassociate_approved_origin
    Aws::Connect::Endpoints::DisassociateApprovedOrigin.build(context)
  when :disassociate_bot
    Aws::Connect::Endpoints::DisassociateBot.build(context)
  when :disassociate_flow
    Aws::Connect::Endpoints::DisassociateFlow.build(context)
  when :disassociate_instance_storage_config
    Aws::Connect::Endpoints::DisassociateInstanceStorageConfig.build(context)
  when :disassociate_lambda_function
    Aws::Connect::Endpoints::DisassociateLambdaFunction.build(context)
  when :disassociate_lex_bot
    Aws::Connect::Endpoints::DisassociateLexBot.build(context)
  when :disassociate_phone_number_contact_flow
    Aws::Connect::Endpoints::DisassociatePhoneNumberContactFlow.build(context)
  when :disassociate_queue_quick_connects
    Aws::Connect::Endpoints::DisassociateQueueQuickConnects.build(context)
  when :disassociate_routing_profile_queues
    Aws::Connect::Endpoints::DisassociateRoutingProfileQueues.build(context)
  when :disassociate_security_key
    Aws::Connect::Endpoints::DisassociateSecurityKey.build(context)
  when :disassociate_traffic_distribution_group_user
    Aws::Connect::Endpoints::DisassociateTrafficDistributionGroupUser.build(context)
  when :disassociate_user_proficiencies
    Aws::Connect::Endpoints::DisassociateUserProficiencies.build(context)
  when :dismiss_user_contact
    Aws::Connect::Endpoints::DismissUserContact.build(context)
  when :get_attached_file
    Aws::Connect::Endpoints::GetAttachedFile.build(context)
  when :get_contact_attributes
    Aws::Connect::Endpoints::GetContactAttributes.build(context)
  when :get_current_metric_data
    Aws::Connect::Endpoints::GetCurrentMetricData.build(context)
  when :get_current_user_data
    Aws::Connect::Endpoints::GetCurrentUserData.build(context)
  when :get_federation_token
    Aws::Connect::Endpoints::GetFederationToken.build(context)
  when :get_flow_association
    Aws::Connect::Endpoints::GetFlowAssociation.build(context)
  when :get_metric_data
    Aws::Connect::Endpoints::GetMetricData.build(context)
  when :get_metric_data_v2
    Aws::Connect::Endpoints::GetMetricDataV2.build(context)
  when :get_prompt_file
    Aws::Connect::Endpoints::GetPromptFile.build(context)
  when :get_task_template
    Aws::Connect::Endpoints::GetTaskTemplate.build(context)
  when :get_traffic_distribution
    Aws::Connect::Endpoints::GetTrafficDistribution.build(context)
  when :import_phone_number
    Aws::Connect::Endpoints::ImportPhoneNumber.build(context)
  when :list_agent_statuses
    Aws::Connect::Endpoints::ListAgentStatuses.build(context)
  when :list_analytics_data_associations
    Aws::Connect::Endpoints::ListAnalyticsDataAssociations.build(context)
  when :list_approved_origins
    Aws::Connect::Endpoints::ListApprovedOrigins.build(context)
  when :list_authentication_profiles
    Aws::Connect::Endpoints::ListAuthenticationProfiles.build(context)
  when :list_bots
    Aws::Connect::Endpoints::ListBots.build(context)
  when :list_contact_evaluations
    Aws::Connect::Endpoints::ListContactEvaluations.build(context)
  when :list_contact_flow_modules
    Aws::Connect::Endpoints::ListContactFlowModules.build(context)
  when :list_contact_flows
    Aws::Connect::Endpoints::ListContactFlows.build(context)
  when :list_contact_references
    Aws::Connect::Endpoints::ListContactReferences.build(context)
  when :list_default_vocabularies
    Aws::Connect::Endpoints::ListDefaultVocabularies.build(context)
  when :list_evaluation_form_versions
    Aws::Connect::Endpoints::ListEvaluationFormVersions.build(context)
  when :list_evaluation_forms
    Aws::Connect::Endpoints::ListEvaluationForms.build(context)
  when :list_flow_associations
    Aws::Connect::Endpoints::ListFlowAssociations.build(context)
  when :list_hours_of_operations
    Aws::Connect::Endpoints::ListHoursOfOperations.build(context)
  when :list_instance_attributes
    Aws::Connect::Endpoints::ListInstanceAttributes.build(context)
  when :list_instance_storage_configs
    Aws::Connect::Endpoints::ListInstanceStorageConfigs.build(context)
  when :list_instances
    Aws::Connect::Endpoints::ListInstances.build(context)
  when :list_integration_associations
    Aws::Connect::Endpoints::ListIntegrationAssociations.build(context)
  when :list_lambda_functions
    Aws::Connect::Endpoints::ListLambdaFunctions.build(context)
  when :list_lex_bots
    Aws::Connect::Endpoints::ListLexBots.build(context)
  when :list_phone_numbers
    Aws::Connect::Endpoints::ListPhoneNumbers.build(context)
  when :list_phone_numbers_v2
    Aws::Connect::Endpoints::ListPhoneNumbersV2.build(context)
  when :list_predefined_attributes
    Aws::Connect::Endpoints::ListPredefinedAttributes.build(context)
  when :list_prompts
    Aws::Connect::Endpoints::ListPrompts.build(context)
  when :list_queue_quick_connects
    Aws::Connect::Endpoints::ListQueueQuickConnects.build(context)
  when :list_queues
    Aws::Connect::Endpoints::ListQueues.build(context)
  when :list_quick_connects
    Aws::Connect::Endpoints::ListQuickConnects.build(context)
  when :list_realtime_contact_analysis_segments_v2
    Aws::Connect::Endpoints::ListRealtimeContactAnalysisSegmentsV2.build(context)
  when :list_routing_profile_queues
    Aws::Connect::Endpoints::ListRoutingProfileQueues.build(context)
  when :list_routing_profiles
    Aws::Connect::Endpoints::ListRoutingProfiles.build(context)
  when :list_rules
    Aws::Connect::Endpoints::ListRules.build(context)
  when :list_security_keys
    Aws::Connect::Endpoints::ListSecurityKeys.build(context)
  when :list_security_profile_applications
    Aws::Connect::Endpoints::ListSecurityProfileApplications.build(context)
  when :list_security_profile_permissions
    Aws::Connect::Endpoints::ListSecurityProfilePermissions.build(context)
  when :list_security_profiles
    Aws::Connect::Endpoints::ListSecurityProfiles.build(context)
  when :list_tags_for_resource
    Aws::Connect::Endpoints::ListTagsForResource.build(context)
  when :list_task_templates
    Aws::Connect::Endpoints::ListTaskTemplates.build(context)
  when :list_traffic_distribution_group_users
    Aws::Connect::Endpoints::ListTrafficDistributionGroupUsers.build(context)
  when :list_traffic_distribution_groups
    Aws::Connect::Endpoints::ListTrafficDistributionGroups.build(context)
  when :list_use_cases
    Aws::Connect::Endpoints::ListUseCases.build(context)
  when :list_user_hierarchy_groups
    Aws::Connect::Endpoints::ListUserHierarchyGroups.build(context)
  when :list_user_proficiencies
    Aws::Connect::Endpoints::ListUserProficiencies.build(context)
  when :list_users
    Aws::Connect::Endpoints::ListUsers.build(context)
  when :list_view_versions
    Aws::Connect::Endpoints::ListViewVersions.build(context)
  when :list_views
    Aws::Connect::Endpoints::ListViews.build(context)
  when :monitor_contact
    Aws::Connect::Endpoints::MonitorContact.build(context)
  when :pause_contact
    Aws::Connect::Endpoints::PauseContact.build(context)
  when :put_user_status
    Aws::Connect::Endpoints::PutUserStatus.build(context)
  when :release_phone_number
    Aws::Connect::Endpoints::ReleasePhoneNumber.build(context)
  when :replicate_instance
    Aws::Connect::Endpoints::ReplicateInstance.build(context)
  when :resume_contact
    Aws::Connect::Endpoints::ResumeContact.build(context)
  when :resume_contact_recording
    Aws::Connect::Endpoints::ResumeContactRecording.build(context)
  when :search_agent_statuses
    Aws::Connect::Endpoints::SearchAgentStatuses.build(context)
  when :search_available_phone_numbers
    Aws::Connect::Endpoints::SearchAvailablePhoneNumbers.build(context)
  when :search_contact_flow_modules
    Aws::Connect::Endpoints::SearchContactFlowModules.build(context)
  when :search_contact_flows
    Aws::Connect::Endpoints::SearchContactFlows.build(context)
  when :search_contacts
    Aws::Connect::Endpoints::SearchContacts.build(context)
  when :search_hours_of_operations
    Aws::Connect::Endpoints::SearchHoursOfOperations.build(context)
  when :search_predefined_attributes
    Aws::Connect::Endpoints::SearchPredefinedAttributes.build(context)
  when :search_prompts
    Aws::Connect::Endpoints::SearchPrompts.build(context)
  when :search_queues
    Aws::Connect::Endpoints::SearchQueues.build(context)
  when :search_quick_connects
    Aws::Connect::Endpoints::SearchQuickConnects.build(context)
  when :search_resource_tags
    Aws::Connect::Endpoints::SearchResourceTags.build(context)
  when :search_routing_profiles
    Aws::Connect::Endpoints::SearchRoutingProfiles.build(context)
  when :search_security_profiles
    Aws::Connect::Endpoints::SearchSecurityProfiles.build(context)
  when :search_user_hierarchy_groups
    Aws::Connect::Endpoints::SearchUserHierarchyGroups.build(context)
  when :search_users
    Aws::Connect::Endpoints::SearchUsers.build(context)
  when :search_vocabularies
    Aws::Connect::Endpoints::SearchVocabularies.build(context)
  when :send_chat_integration_event
    Aws::Connect::Endpoints::SendChatIntegrationEvent.build(context)
  when :start_attached_file_upload
    Aws::Connect::Endpoints::StartAttachedFileUpload.build(context)
  when :start_chat_contact
    Aws::Connect::Endpoints::StartChatContact.build(context)
  when :start_contact_evaluation
    Aws::Connect::Endpoints::StartContactEvaluation.build(context)
  when :start_contact_recording
    Aws::Connect::Endpoints::StartContactRecording.build(context)
  when :start_contact_streaming
    Aws::Connect::Endpoints::StartContactStreaming.build(context)
  when :start_outbound_voice_contact
    Aws::Connect::Endpoints::StartOutboundVoiceContact.build(context)
  when :start_task_contact
    Aws::Connect::Endpoints::StartTaskContact.build(context)
  when :start_web_rtc_contact
    Aws::Connect::Endpoints::StartWebRTCContact.build(context)
  when :stop_contact
    Aws::Connect::Endpoints::StopContact.build(context)
  when :stop_contact_recording
    Aws::Connect::Endpoints::StopContactRecording.build(context)
  when :stop_contact_streaming
    Aws::Connect::Endpoints::StopContactStreaming.build(context)
  when :submit_contact_evaluation
    Aws::Connect::Endpoints::SubmitContactEvaluation.build(context)
  when :suspend_contact_recording
    Aws::Connect::Endpoints::SuspendContactRecording.build(context)
  when :tag_contact
    Aws::Connect::Endpoints::TagContact.build(context)
  when :tag_resource
    Aws::Connect::Endpoints::TagResource.build(context)
  when :transfer_contact
    Aws::Connect::Endpoints::TransferContact.build(context)
  when :untag_contact
    Aws::Connect::Endpoints::UntagContact.build(context)
  when :untag_resource
    Aws::Connect::Endpoints::UntagResource.build(context)
  when :update_agent_status
    Aws::Connect::Endpoints::UpdateAgentStatus.build(context)
  when :update_authentication_profile
    Aws::Connect::Endpoints::UpdateAuthenticationProfile.build(context)
  when :update_contact
    Aws::Connect::Endpoints::UpdateContact.build(context)
  when :update_contact_attributes
    Aws::Connect::Endpoints::UpdateContactAttributes.build(context)
  when :update_contact_evaluation
    Aws::Connect::Endpoints::UpdateContactEvaluation.build(context)
  when :update_contact_flow_content
    Aws::Connect::Endpoints::UpdateContactFlowContent.build(context)
  when :update_contact_flow_metadata
    Aws::Connect::Endpoints::UpdateContactFlowMetadata.build(context)
  when :update_contact_flow_module_content
    Aws::Connect::Endpoints::UpdateContactFlowModuleContent.build(context)
  when :update_contact_flow_module_metadata
    Aws::Connect::Endpoints::UpdateContactFlowModuleMetadata.build(context)
  when :update_contact_flow_name
    Aws::Connect::Endpoints::UpdateContactFlowName.build(context)
  when :update_contact_routing_data
    Aws::Connect::Endpoints::UpdateContactRoutingData.build(context)
  when :update_contact_schedule
    Aws::Connect::Endpoints::UpdateContactSchedule.build(context)
  when :update_evaluation_form
    Aws::Connect::Endpoints::UpdateEvaluationForm.build(context)
  when :update_hours_of_operation
    Aws::Connect::Endpoints::UpdateHoursOfOperation.build(context)
  when :update_instance_attribute
    Aws::Connect::Endpoints::UpdateInstanceAttribute.build(context)
  when :update_instance_storage_config
    Aws::Connect::Endpoints::UpdateInstanceStorageConfig.build(context)
  when :update_participant_role_config
    Aws::Connect::Endpoints::UpdateParticipantRoleConfig.build(context)
  when :update_phone_number
    Aws::Connect::Endpoints::UpdatePhoneNumber.build(context)
  when :update_phone_number_metadata
    Aws::Connect::Endpoints::UpdatePhoneNumberMetadata.build(context)
  when :update_predefined_attribute
    Aws::Connect::Endpoints::UpdatePredefinedAttribute.build(context)
  when :update_prompt
    Aws::Connect::Endpoints::UpdatePrompt.build(context)
  when :update_queue_hours_of_operation
    Aws::Connect::Endpoints::UpdateQueueHoursOfOperation.build(context)
  when :update_queue_max_contacts
    Aws::Connect::Endpoints::UpdateQueueMaxContacts.build(context)
  when :update_queue_name
    Aws::Connect::Endpoints::UpdateQueueName.build(context)
  when :update_queue_outbound_caller_config
    Aws::Connect::Endpoints::UpdateQueueOutboundCallerConfig.build(context)
  when :update_queue_status
    Aws::Connect::Endpoints::UpdateQueueStatus.build(context)
  when :update_quick_connect_config
    Aws::Connect::Endpoints::UpdateQuickConnectConfig.build(context)
  when :update_quick_connect_name
    Aws::Connect::Endpoints::UpdateQuickConnectName.build(context)
  when :update_routing_profile_agent_availability_timer
    Aws::Connect::Endpoints::UpdateRoutingProfileAgentAvailabilityTimer.build(context)
  when :update_routing_profile_concurrency
    Aws::Connect::Endpoints::UpdateRoutingProfileConcurrency.build(context)
  when :update_routing_profile_default_outbound_queue
    Aws::Connect::Endpoints::UpdateRoutingProfileDefaultOutboundQueue.build(context)
  when :update_routing_profile_name
    Aws::Connect::Endpoints::UpdateRoutingProfileName.build(context)
  when :update_routing_profile_queues
    Aws::Connect::Endpoints::UpdateRoutingProfileQueues.build(context)
  when :update_rule
    Aws::Connect::Endpoints::UpdateRule.build(context)
  when :update_security_profile
    Aws::Connect::Endpoints::UpdateSecurityProfile.build(context)
  when :update_task_template
    Aws::Connect::Endpoints::UpdateTaskTemplate.build(context)
  when :update_traffic_distribution
    Aws::Connect::Endpoints::UpdateTrafficDistribution.build(context)
  when :update_user_hierarchy
    Aws::Connect::Endpoints::UpdateUserHierarchy.build(context)
  when :update_user_hierarchy_group_name
    Aws::Connect::Endpoints::UpdateUserHierarchyGroupName.build(context)
  when :update_user_hierarchy_structure
    Aws::Connect::Endpoints::UpdateUserHierarchyStructure.build(context)
  when :update_user_identity_info
    Aws::Connect::Endpoints::UpdateUserIdentityInfo.build(context)
  when :update_user_phone_config
    Aws::Connect::Endpoints::UpdateUserPhoneConfig.build(context)
  when :update_user_proficiencies
    Aws::Connect::Endpoints::UpdateUserProficiencies.build(context)
  when :update_user_routing_profile
    Aws::Connect::Endpoints::UpdateUserRoutingProfile.build(context)
  when :update_user_security_profiles
    Aws::Connect::Endpoints::UpdateUserSecurityProfiles.build(context)
  when :update_view_content
    Aws::Connect::Endpoints::UpdateViewContent.build(context)
  when :update_view_metadata
    Aws::Connect::Endpoints::UpdateViewMetadata.build(context)
  end
end

def with_metrics(context, &block)

def with_metrics(context, &block)
  metrics = []
  metrics << 'ENDPOINT_OVERRIDE' unless context.config.regional_endpoint
  if context[:auth_scheme] && context[:auth_scheme]['name'] == 'sigv4a'
    metrics << 'SIGV4A_SIGNING'
  end
  if context.config.credentials&.credentials&.account_id
    metrics << 'RESOLVED_ACCOUNT_ID'
  end
  Aws::Plugins::UserAgent.metric(*metrics, &block)
end