// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub(crate) fn type_erase_result<O, E>(
    result: ::std::result::Result<O, E>,
) -> ::std::result::Result<
    ::aws_smithy_runtime_api::client::interceptors::context::Output,
    ::aws_smithy_runtime_api::client::orchestrator::OrchestratorError<::aws_smithy_runtime_api::client::interceptors::context::Error>,
>
where
    O: ::std::fmt::Debug + ::std::marker::Send + ::std::marker::Sync + 'static,
    E: ::std::error::Error + std::fmt::Debug + ::std::marker::Send + ::std::marker::Sync + 'static,
{
    result
        .map(|output| ::aws_smithy_runtime_api::client::interceptors::context::Output::erase(output))
        .map_err(|error| ::aws_smithy_runtime_api::client::interceptors::context::Error::erase(error))
        .map_err(::std::convert::Into::into)
}

pub fn parse_http_error_metadata(
    response_status: u16,
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
    response_body: &[u8],
) -> ::std::result::Result<::aws_smithy_types::error::metadata::Builder, ::aws_smithy_xml::decode::XmlDecodeError> {
    // S3 HEAD responses have no response body to for an error code. Therefore,
    // check the HTTP response status and populate an error code for 404s.
    if response_body.is_empty() {
        let mut builder = ::aws_smithy_types::error::ErrorMetadata::builder();
        if response_status == 404 {
            builder = builder.code("NotFound");
        }
        Ok(builder)
    } else {
        crate::rest_xml_unwrapped_errors::parse_error_metadata(response_body)
    }
}

pub(crate) mod shape_abort_multipart_upload;

pub(crate) mod shape_complete_multipart_upload;

pub fn rest_xml_unset_struct_payload() -> ::std::vec::Vec<u8> {
    Vec::new()
}

pub(crate) mod shape_complete_multipart_upload_input;

pub(crate) mod shape_copy_object;

pub(crate) mod shape_create_bucket;

pub(crate) mod shape_create_bucket_input;

pub(crate) mod shape_create_bucket_metadata_configuration;

pub(crate) mod shape_create_bucket_metadata_configuration_input;

pub(crate) mod shape_create_bucket_metadata_table_configuration;

pub(crate) mod shape_create_bucket_metadata_table_configuration_input;

pub(crate) mod shape_create_multipart_upload;

pub(crate) mod shape_create_session;

pub(crate) mod shape_delete_bucket;

pub(crate) mod shape_delete_bucket_analytics_configuration;

pub(crate) mod shape_delete_bucket_cors;

pub(crate) mod shape_delete_bucket_encryption;

pub(crate) mod shape_delete_bucket_intelligent_tiering_configuration;

pub(crate) mod shape_delete_bucket_inventory_configuration;

pub(crate) mod shape_delete_bucket_lifecycle;

pub(crate) mod shape_delete_bucket_metadata_configuration;

pub(crate) mod shape_delete_bucket_metadata_table_configuration;

pub(crate) mod shape_delete_bucket_metrics_configuration;

pub(crate) mod shape_delete_bucket_ownership_controls;

pub(crate) mod shape_delete_bucket_policy;

pub(crate) mod shape_delete_bucket_replication;

pub(crate) mod shape_delete_bucket_tagging;

pub(crate) mod shape_delete_bucket_website;

pub(crate) mod shape_delete_object;

pub(crate) mod shape_delete_object_tagging;

pub(crate) mod shape_delete_objects;

pub(crate) mod shape_delete_objects_input;

pub(crate) mod shape_delete_public_access_block;

pub(crate) mod shape_get_bucket_accelerate_configuration;

pub(crate) mod shape_get_bucket_acl;

pub(crate) mod shape_get_bucket_analytics_configuration;

pub(crate) mod shape_get_bucket_cors;

pub(crate) mod shape_get_bucket_encryption;

pub(crate) mod shape_get_bucket_intelligent_tiering_configuration;

pub(crate) mod shape_get_bucket_inventory_configuration;

pub(crate) mod shape_get_bucket_lifecycle_configuration;

pub(crate) mod shape_get_bucket_location;

pub(crate) mod shape_get_bucket_logging;

pub(crate) mod shape_get_bucket_metadata_configuration;

pub(crate) mod shape_get_bucket_metadata_table_configuration;

pub(crate) mod shape_get_bucket_metrics_configuration;

pub(crate) mod shape_get_bucket_notification_configuration;

pub(crate) mod shape_get_bucket_ownership_controls;

pub(crate) mod shape_get_bucket_policy;

pub(crate) mod shape_get_bucket_policy_status;

pub(crate) mod shape_get_bucket_replication;

pub(crate) mod shape_get_bucket_request_payment;

pub(crate) mod shape_get_bucket_tagging;

pub(crate) mod shape_get_bucket_versioning;

pub(crate) mod shape_get_bucket_website;

pub(crate) mod shape_get_object;

pub(crate) mod shape_get_object_acl;

pub(crate) mod shape_get_object_attributes;

pub(crate) mod shape_get_object_legal_hold;

pub(crate) mod shape_get_object_lock_configuration;

pub(crate) mod shape_get_object_retention;

pub(crate) mod shape_get_object_tagging;

pub(crate) mod shape_get_object_torrent;

pub(crate) mod shape_get_public_access_block;

pub(crate) mod shape_head_bucket;

pub(crate) mod shape_head_object;

pub(crate) mod shape_list_bucket_analytics_configurations;

pub(crate) mod shape_list_bucket_intelligent_tiering_configurations;

pub(crate) mod shape_list_bucket_inventory_configurations;

pub(crate) mod shape_list_bucket_metrics_configurations;

pub(crate) mod shape_list_buckets;

pub(crate) mod shape_list_directory_buckets;

pub(crate) mod shape_list_multipart_uploads;

pub(crate) mod shape_list_object_versions;

pub(crate) mod shape_list_objects;

pub(crate) mod shape_list_objects_v2;

pub(crate) mod shape_list_parts;

pub(crate) mod shape_put_bucket_accelerate_configuration;

pub(crate) mod shape_put_bucket_accelerate_configuration_input;

pub(crate) mod shape_put_bucket_acl;

pub(crate) mod shape_put_bucket_acl_input;

pub(crate) mod shape_put_bucket_analytics_configuration;

pub(crate) mod shape_put_bucket_analytics_configuration_input;

pub(crate) mod shape_put_bucket_cors;

pub(crate) mod shape_put_bucket_cors_input;

pub(crate) mod shape_put_bucket_encryption;

pub(crate) mod shape_put_bucket_encryption_input;

pub(crate) mod shape_put_bucket_intelligent_tiering_configuration;

pub(crate) mod shape_put_bucket_intelligent_tiering_configuration_input;

pub(crate) mod shape_put_bucket_inventory_configuration;

pub(crate) mod shape_put_bucket_inventory_configuration_input;

pub(crate) mod shape_put_bucket_lifecycle_configuration;

pub(crate) mod shape_put_bucket_lifecycle_configuration_input;

pub(crate) mod shape_put_bucket_logging;

pub(crate) mod shape_put_bucket_logging_input;

pub(crate) mod shape_put_bucket_metrics_configuration;

pub(crate) mod shape_put_bucket_metrics_configuration_input;

pub(crate) mod shape_put_bucket_notification_configuration;

pub(crate) mod shape_put_bucket_notification_configuration_input;

pub(crate) mod shape_put_bucket_ownership_controls;

pub(crate) mod shape_put_bucket_ownership_controls_input;

pub(crate) mod shape_put_bucket_policy;

pub(crate) mod shape_put_bucket_policy_input;

pub(crate) mod shape_put_bucket_replication;

pub(crate) mod shape_put_bucket_replication_input;

pub(crate) mod shape_put_bucket_request_payment;

pub(crate) mod shape_put_bucket_request_payment_input;

pub(crate) mod shape_put_bucket_tagging;

pub(crate) mod shape_put_bucket_tagging_input;

pub(crate) mod shape_put_bucket_versioning;

pub(crate) mod shape_put_bucket_versioning_input;

pub(crate) mod shape_put_bucket_website;

pub(crate) mod shape_put_bucket_website_input;

pub(crate) mod shape_put_object;

pub(crate) mod shape_put_object_acl;

pub(crate) mod shape_put_object_acl_input;

pub(crate) mod shape_put_object_input;

pub(crate) mod shape_put_object_legal_hold;

pub(crate) mod shape_put_object_legal_hold_input;

pub(crate) mod shape_put_object_lock_configuration;

pub(crate) mod shape_put_object_lock_configuration_input;

pub(crate) mod shape_put_object_retention;

pub(crate) mod shape_put_object_retention_input;

pub(crate) mod shape_put_object_tagging;

pub(crate) mod shape_put_object_tagging_input;

pub(crate) mod shape_put_public_access_block;

pub(crate) mod shape_put_public_access_block_input;

pub(crate) mod shape_rename_object;

pub(crate) mod shape_restore_object;

pub(crate) mod shape_restore_object_input;

pub(crate) mod shape_select_object_content;

pub(crate) mod shape_update_bucket_metadata_inventory_table_configuration;

pub(crate) mod shape_update_bucket_metadata_inventory_table_configuration_input;

pub(crate) mod shape_update_bucket_metadata_journal_table_configuration;

pub(crate) mod shape_update_bucket_metadata_journal_table_configuration_input;

pub(crate) mod shape_upload_part;

pub(crate) mod shape_upload_part_copy;

pub(crate) mod shape_upload_part_input;

pub(crate) mod shape_write_get_object_response;

pub(crate) mod shape_write_get_object_response_input;

pub(crate) mod shape_abort_multipart_upload_output;

pub(crate) mod shape_bucket_already_exists;

pub(crate) mod shape_bucket_already_owned_by_you;

pub(crate) mod shape_complete_multipart_upload_output;

pub(crate) mod shape_copy_object_output;

pub(crate) mod shape_create_bucket_output;

pub(crate) mod shape_create_multipart_upload_output;

pub(crate) mod shape_create_session_output;

pub(crate) mod shape_delete_object_output;

pub(crate) mod shape_delete_object_tagging_output;

pub(crate) mod shape_delete_objects_output;

pub(crate) mod shape_encryption_type_mismatch;

pub(crate) mod shape_get_bucket_accelerate_configuration_output;

pub(crate) mod shape_get_bucket_analytics_configuration_output;

pub(crate) mod shape_get_bucket_encryption_output;

pub(crate) mod shape_get_bucket_intelligent_tiering_configuration_output;

pub(crate) mod shape_get_bucket_inventory_configuration_output;

pub(crate) mod shape_get_bucket_lifecycle_configuration_output;

pub(crate) mod shape_get_bucket_metadata_configuration_output;

pub(crate) mod shape_get_bucket_metadata_table_configuration_output;

pub(crate) mod shape_get_bucket_metrics_configuration_output;

pub(crate) mod shape_get_bucket_ownership_controls_output;

pub(crate) mod shape_get_bucket_policy_output;

pub(crate) mod shape_get_bucket_policy_status_output;

pub(crate) mod shape_get_bucket_replication_output;

pub(crate) mod shape_get_object_acl_output;

pub(crate) mod shape_get_object_attributes_output;

pub(crate) mod shape_get_object_legal_hold_output;

pub(crate) mod shape_get_object_lock_configuration_output;

pub(crate) mod shape_get_object_output;

pub(crate) mod shape_get_object_retention_output;

pub(crate) mod shape_get_object_tagging_output;

pub(crate) mod shape_get_object_torrent_output;

pub(crate) mod shape_get_public_access_block_output;

pub(crate) mod shape_head_bucket_output;

pub(crate) mod shape_head_object_output;

pub(crate) mod shape_idempotency_parameter_mismatch;

pub(crate) mod shape_invalid_object_state;

pub(crate) mod shape_invalid_request;

pub(crate) mod shape_invalid_write_offset;

pub(crate) mod shape_list_multipart_uploads_output;

pub(crate) mod shape_list_object_versions_output;

pub(crate) mod shape_list_objects_output;

pub(crate) mod shape_list_objects_v2_output;

pub(crate) mod shape_list_parts_output;

pub(crate) mod shape_no_such_bucket;

pub(crate) mod shape_no_such_key;

pub(crate) mod shape_no_such_upload;

pub(crate) mod shape_not_found;

pub(crate) mod shape_object_already_in_active_tier_error;

pub(crate) mod shape_object_not_in_active_tier_error;

pub(crate) mod shape_put_bucket_lifecycle_configuration_output;

pub(crate) mod shape_put_object_acl_output;

pub(crate) mod shape_put_object_legal_hold_output;

pub(crate) mod shape_put_object_lock_configuration_output;

pub(crate) mod shape_put_object_output;

pub(crate) mod shape_put_object_retention_output;

pub(crate) mod shape_put_object_tagging_output;

pub(crate) mod shape_restore_object_output;

pub(crate) mod shape_select_object_content_input;

pub(crate) mod shape_select_object_content_output;

pub(crate) mod shape_too_many_parts;

pub(crate) mod shape_upload_part_copy_output;

pub(crate) mod shape_upload_part_output;

pub fn parse_event_stream_error_metadata(
    payload: &::bytes::Bytes,
) -> ::std::result::Result<::aws_smithy_types::error::metadata::Builder, ::aws_smithy_xml::decode::XmlDecodeError> {
    crate::rest_xml_unwrapped_errors::parse_error_metadata(payload.as_ref())
}

pub(crate) mod shape_accelerate_configuration;

pub(crate) mod shape_access_control_policy;

pub(crate) mod shape_analytics_configuration;

pub(crate) mod shape_bucket_lifecycle_configuration;

pub(crate) mod shape_bucket_logging_status;

pub(crate) mod shape_buckets;

pub(crate) mod shape_checksum;

pub(crate) mod shape_common_prefix;

pub(crate) mod shape_completed_multipart_upload;

pub(crate) mod shape_cors_configuration;

pub(crate) mod shape_cors_rule;

pub(crate) mod shape_create_bucket_configuration;

pub(crate) mod shape_delete;

pub(crate) mod shape_delete_marker_entry;

pub(crate) mod shape_deleted_object;

pub(crate) mod shape_error;

pub(crate) mod shape_error_document;

pub(crate) mod shape_event_bridge_configuration;

pub(crate) mod shape_get_object_attributes_parts;

pub(crate) mod shape_grants;

pub(crate) mod shape_index_document;

pub(crate) mod shape_initiator;

pub(crate) mod shape_input_serialization;

pub(crate) mod shape_intelligent_tiering_configuration;

pub(crate) mod shape_inventory_configuration;

pub(crate) mod shape_inventory_table_configuration_updates;

pub(crate) mod shape_journal_table_configuration_updates;

pub(crate) mod shape_lambda_function_configuration;

pub(crate) mod shape_lifecycle_rule;

pub(crate) mod shape_logging_enabled;

pub(crate) mod shape_metadata_configuration;

pub(crate) mod shape_metadata_table_configuration;

pub(crate) mod shape_metrics_configuration;

pub(crate) mod shape_multipart_upload;

pub(crate) mod shape_notification_configuration;

pub(crate) mod shape_object;

pub(crate) mod shape_object_lock_configuration;

pub(crate) mod shape_object_lock_legal_hold;

pub(crate) mod shape_object_lock_retention;

pub(crate) mod shape_object_version;

pub(crate) mod shape_output_serialization;

pub(crate) mod shape_owner;

pub(crate) mod shape_ownership_controls;

pub(crate) mod shape_part;

pub(crate) mod shape_public_access_block_configuration;

pub(crate) mod shape_queue_configuration;

pub(crate) mod shape_redirect_all_requests_to;

pub(crate) mod shape_replication_configuration;

pub(crate) mod shape_request_payment_configuration;

pub(crate) mod shape_request_progress;

pub(crate) mod shape_restore_request;

pub(crate) mod shape_routing_rules;

pub(crate) mod shape_scan_range;

pub(crate) mod shape_server_side_encryption_configuration;

pub(crate) mod shape_session_credentials;

pub(crate) mod shape_tag_set;

pub(crate) mod shape_tagging;

pub(crate) mod shape_topic_configuration;

pub(crate) mod shape_versioning_configuration;

pub(crate) mod shape_website_configuration;

pub(crate) mod shape_abort_incomplete_multipart_upload;

pub(crate) mod shape_analytics_filter;

pub(crate) mod shape_bucket;

pub(crate) mod shape_bucket_info;

pub(crate) mod shape_completed_part;

pub(crate) mod shape_copy_object_result;

pub(crate) mod shape_copy_part_result;

pub(crate) mod shape_csv_input;

pub(crate) mod shape_csv_output;

pub(crate) mod shape_get_bucket_metadata_configuration_result;

pub(crate) mod shape_get_bucket_metadata_table_configuration_result;

pub(crate) mod shape_glacier_job_parameters;

pub(crate) mod shape_grant;

pub(crate) mod shape_intelligent_tiering_filter;

pub(crate) mod shape_inventory_destination;

pub(crate) mod shape_inventory_filter;

pub(crate) mod shape_inventory_optional_fields;

pub(crate) mod shape_inventory_schedule;

pub(crate) mod shape_inventory_table_configuration;

pub(crate) mod shape_journal_table_configuration;

pub(crate) mod shape_json_input;

pub(crate) mod shape_json_output;

pub(crate) mod shape_lifecycle_expiration;

pub(crate) mod shape_lifecycle_rule_filter;

pub(crate) mod shape_location_info;

pub(crate) mod shape_metadata_table_encryption_configuration;

pub(crate) mod shape_metrics_filter;

pub(crate) mod shape_noncurrent_version_expiration;

pub(crate) mod shape_noncurrent_version_transition;

pub(crate) mod shape_notification_configuration_filter;

pub(crate) mod shape_object_identifier;

pub(crate) mod shape_object_lock_rule;

pub(crate) mod shape_object_part;

pub(crate) mod shape_output_location;

pub(crate) mod shape_ownership_controls_rule;

pub(crate) mod shape_policy_status;

pub(crate) mod shape_progress_event;

pub(crate) mod shape_record_expiration;

pub(crate) mod shape_replication_rule;

pub(crate) mod shape_restore_status;

pub(crate) mod shape_routing_rule;

pub(crate) mod shape_s3_tables_destination;

pub(crate) mod shape_select_parameters;

pub(crate) mod shape_server_side_encryption_rule;

pub(crate) mod shape_stats_event;

pub(crate) mod shape_storage_class_analysis;

pub(crate) mod shape_tag;

pub(crate) mod shape_target_grants;

pub(crate) mod shape_target_object_key_format;

pub(crate) mod shape_tiering;

pub(crate) mod shape_transition;

pub(crate) mod shape_analytics_and_operator;

pub(crate) mod shape_condition;

pub(crate) mod shape_default_retention;

pub(crate) mod shape_delete_marker_replication;

pub(crate) mod shape_destination;

pub(crate) mod shape_error_details;

pub(crate) mod shape_existing_object_replication;

pub(crate) mod shape_grantee;

pub(crate) mod shape_intelligent_tiering_and_operator;

pub(crate) mod shape_inventory_s3_bucket_destination;

pub(crate) mod shape_lifecycle_rule_and_operator;

pub(crate) mod shape_metadata_configuration_result;

pub(crate) mod shape_metadata_table_configuration_result;

pub(crate) mod shape_metrics_and_operator;

pub(crate) mod shape_partitioned_prefix;

pub(crate) mod shape_progress;

pub(crate) mod shape_redirect;

pub(crate) mod shape_replication_rule_filter;

pub(crate) mod shape_s3_key_filter;

pub(crate) mod shape_s3_location;

pub(crate) mod shape_server_side_encryption_by_default;

pub(crate) mod shape_simple_prefix;

pub(crate) mod shape_source_selection_criteria;

pub(crate) mod shape_stats;

pub(crate) mod shape_storage_class_analysis_data_export;

pub(crate) mod shape_target_grant;

pub(crate) mod shape_access_control_translation;

pub(crate) mod shape_analytics_export_destination;

pub(crate) mod shape_destination_result;

pub(crate) mod shape_encryption;

pub(crate) mod shape_encryption_configuration;

pub(crate) mod shape_filter_rule;

pub(crate) mod shape_inventory_encryption;

pub(crate) mod shape_inventory_table_configuration_result;

pub(crate) mod shape_journal_table_configuration_result;

pub(crate) mod shape_metadata_entry;

pub(crate) mod shape_metrics;

pub(crate) mod shape_replica_modifications;

pub(crate) mod shape_replication_rule_and_operator;

pub(crate) mod shape_replication_time;

pub(crate) mod shape_s3_tables_destination_result;

pub(crate) mod shape_sse_kms_encrypted_objects;

pub(crate) mod shape_analytics_s3_bucket_destination;

pub(crate) mod shape_replication_time_value;

pub(crate) mod shape_ssekms;

pub(crate) mod shape_sses3;
