Skip to main content

src/aws@services@sqs.erl

-module(aws@services@sqs).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/aws/services/sqs.gleam").
-export([default_endpoint_params/0, new_with/2, new/0, client_config/1, shutdown/1, shutdown_sync/2, add_permission_request_default/4, encode_add_permission_request_struct/1, encode_add_permission_request_struct_top/1, decode_add_permission_request_struct/0, invalid_address_default/0, encode_invalid_address_struct/1, encode_invalid_address_struct_top/1, decode_invalid_address_struct/0, invalid_security_default/0, encode_invalid_security_struct/1, encode_invalid_security_struct_top/1, decode_invalid_security_struct/0, over_limit_default/0, encode_over_limit_struct/1, encode_over_limit_struct_top/1, decode_over_limit_struct/0, queue_does_not_exist_default/0, encode_queue_does_not_exist_struct/1, encode_queue_does_not_exist_struct_top/1, decode_queue_does_not_exist_struct/0, request_throttled_default/0, encode_request_throttled_struct/1, encode_request_throttled_struct_top/1, decode_request_throttled_struct/0, unsupported_operation_default/0, encode_unsupported_operation_struct/1, encode_unsupported_operation_struct_top/1, decode_unsupported_operation_struct/0, cancel_message_move_task_request_default/1, encode_cancel_message_move_task_request_struct/1, encode_cancel_message_move_task_request_struct_top/1, decode_cancel_message_move_task_request_struct/0, cancel_message_move_task_result_default/0, encode_cancel_message_move_task_result_struct/1, encode_cancel_message_move_task_result_struct_top/1, decode_cancel_message_move_task_result_struct/0, resource_not_found_exception_default/0, encode_resource_not_found_exception_struct/1, encode_resource_not_found_exception_struct_top/1, decode_resource_not_found_exception_struct/0, change_message_visibility_request_default/3, encode_change_message_visibility_request_struct/1, encode_change_message_visibility_request_struct_top/1, decode_change_message_visibility_request_struct/0, message_not_inflight_default/0, encode_message_not_inflight_struct/1, encode_message_not_inflight_struct_top/1, decode_message_not_inflight_struct/0, receipt_handle_is_invalid_default/0, encode_receipt_handle_is_invalid_struct/1, encode_receipt_handle_is_invalid_struct_top/1, decode_receipt_handle_is_invalid_struct/0, change_message_visibility_batch_request_default/2, encode_change_message_visibility_batch_request_entry_struct/1, encode_change_message_visibility_batch_request_struct/1, encode_change_message_visibility_batch_request_struct_top/1, decode_change_message_visibility_batch_request_entry_struct/0, decode_change_message_visibility_batch_request_struct/0, change_message_visibility_batch_request_entry_default/2, encode_change_message_visibility_batch_request_entry_struct_top/1, change_message_visibility_batch_result_default/0, encode_change_message_visibility_batch_result_entry_struct/1, encode_batch_result_error_entry_struct/1, encode_change_message_visibility_batch_result_struct/1, encode_change_message_visibility_batch_result_struct_top/1, decode_change_message_visibility_batch_result_entry_struct/0, decode_batch_result_error_entry_struct/0, decode_change_message_visibility_batch_result_struct/0, batch_result_error_entry_default/0, encode_batch_result_error_entry_struct_top/1, change_message_visibility_batch_result_entry_default/0, encode_change_message_visibility_batch_result_entry_struct_top/1, batch_entry_ids_not_distinct_default/0, encode_batch_entry_ids_not_distinct_struct/1, encode_batch_entry_ids_not_distinct_struct_top/1, decode_batch_entry_ids_not_distinct_struct/0, empty_batch_request_default/0, encode_empty_batch_request_struct/1, encode_empty_batch_request_struct_top/1, decode_empty_batch_request_struct/0, invalid_batch_entry_id_default/0, encode_invalid_batch_entry_id_struct/1, encode_invalid_batch_entry_id_struct_top/1, decode_invalid_batch_entry_id_struct/0, too_many_entries_in_batch_request_default/0, encode_too_many_entries_in_batch_request_struct/1, encode_too_many_entries_in_batch_request_struct_top/1, decode_too_many_entries_in_batch_request_struct/0, create_queue_request_default/1, encode_create_queue_request_struct/1, encode_create_queue_request_struct_top/1, decode_create_queue_request_struct/0, encode_queue_attribute_name_enum/1, decode_queue_attribute_name_enum/0, create_queue_result_default/0, encode_create_queue_result_struct/1, encode_create_queue_result_struct_top/1, decode_create_queue_result_struct/0, invalid_attribute_name_default/0, encode_invalid_attribute_name_struct/1, encode_invalid_attribute_name_struct_top/1, decode_invalid_attribute_name_struct/0, invalid_attribute_value_default/0, encode_invalid_attribute_value_struct/1, encode_invalid_attribute_value_struct_top/1, decode_invalid_attribute_value_struct/0, queue_deleted_recently_default/0, encode_queue_deleted_recently_struct/1, encode_queue_deleted_recently_struct_top/1, decode_queue_deleted_recently_struct/0, queue_name_exists_default/0, encode_queue_name_exists_struct/1, encode_queue_name_exists_struct_top/1, decode_queue_name_exists_struct/0, delete_message_request_default/2, encode_delete_message_request_struct/1, encode_delete_message_request_struct_top/1, decode_delete_message_request_struct/0, invalid_id_format_default/0, encode_invalid_id_format_struct/1, encode_invalid_id_format_struct_top/1, decode_invalid_id_format_struct/0, delete_message_batch_request_default/2, encode_delete_message_batch_request_entry_struct/1, encode_delete_message_batch_request_struct/1, encode_delete_message_batch_request_struct_top/1, decode_delete_message_batch_request_entry_struct/0, decode_delete_message_batch_request_struct/0, delete_message_batch_request_entry_default/2, encode_delete_message_batch_request_entry_struct_top/1, delete_message_batch_result_default/0, encode_delete_message_batch_result_entry_struct/1, encode_delete_message_batch_result_struct/1, encode_delete_message_batch_result_struct_top/1, decode_delete_message_batch_result_entry_struct/0, decode_delete_message_batch_result_struct/0, delete_message_batch_result_entry_default/0, encode_delete_message_batch_result_entry_struct_top/1, delete_queue_request_default/1, encode_delete_queue_request_struct/1, encode_delete_queue_request_struct_top/1, decode_delete_queue_request_struct/0, get_queue_attributes_request_default/1, encode_get_queue_attributes_request_struct/1, encode_get_queue_attributes_request_struct_top/1, decode_get_queue_attributes_request_struct/0, get_queue_attributes_result_default/0, encode_get_queue_attributes_result_struct/1, encode_get_queue_attributes_result_struct_top/1, decode_get_queue_attributes_result_struct/0, get_queue_url_request_default/1, encode_get_queue_url_request_struct/1, encode_get_queue_url_request_struct_top/1, decode_get_queue_url_request_struct/0, get_queue_url_result_default/0, encode_get_queue_url_result_struct/1, encode_get_queue_url_result_struct_top/1, decode_get_queue_url_result_struct/0, list_dead_letter_source_queues_request_default/1, encode_list_dead_letter_source_queues_request_struct/1, encode_list_dead_letter_source_queues_request_struct_top/1, decode_list_dead_letter_source_queues_request_struct/0, list_dead_letter_source_queues_result_default/0, encode_list_dead_letter_source_queues_result_struct/1, encode_list_dead_letter_source_queues_result_struct_top/1, decode_list_dead_letter_source_queues_result_struct/0, list_message_move_tasks_request_default/1, encode_list_message_move_tasks_request_struct/1, encode_list_message_move_tasks_request_struct_top/1, decode_list_message_move_tasks_request_struct/0, list_message_move_tasks_result_default/0, encode_list_message_move_tasks_result_entry_struct/1, encode_list_message_move_tasks_result_struct/1, encode_list_message_move_tasks_result_struct_top/1, decode_list_message_move_tasks_result_entry_struct/0, decode_list_message_move_tasks_result_struct/0, list_message_move_tasks_result_entry_default/0, encode_list_message_move_tasks_result_entry_struct_top/1, list_queues_request_default/0, encode_list_queues_request_struct/1, encode_list_queues_request_struct_top/1, decode_list_queues_request_struct/0, list_queues_result_default/0, encode_list_queues_result_struct/1, encode_list_queues_result_struct_top/1, decode_list_queues_result_struct/0, list_queue_tags_request_default/1, encode_list_queue_tags_request_struct/1, encode_list_queue_tags_request_struct_top/1, decode_list_queue_tags_request_struct/0, list_queue_tags_result_default/0, encode_list_queue_tags_result_struct/1, encode_list_queue_tags_result_struct_top/1, decode_list_queue_tags_result_struct/0, purge_queue_request_default/1, encode_purge_queue_request_struct/1, encode_purge_queue_request_struct_top/1, decode_purge_queue_request_struct/0, purge_queue_in_progress_default/0, encode_purge_queue_in_progress_struct/1, encode_purge_queue_in_progress_struct_top/1, decode_purge_queue_in_progress_struct/0, receive_message_request_default/1, encode_message_system_attribute_name_enum/1, encode_receive_message_request_struct/1, encode_receive_message_request_struct_top/1, decode_message_system_attribute_name_enum/0, decode_receive_message_request_struct/0, receive_message_result_default/0, encode_message_attribute_value_struct/1, encode_message_struct/1, encode_receive_message_result_struct/1, encode_receive_message_result_struct_top/1, decode_message_attribute_value_struct/0, decode_message_struct/0, decode_receive_message_result_struct/0, message_default/0, encode_message_struct_top/1, message_attribute_value_default/1, encode_message_attribute_value_struct_top/1, kms_access_denied_default/0, encode_kms_access_denied_struct/1, encode_kms_access_denied_struct_top/1, decode_kms_access_denied_struct/0, kms_disabled_default/0, encode_kms_disabled_struct/1, encode_kms_disabled_struct_top/1, decode_kms_disabled_struct/0, kms_invalid_key_usage_default/0, encode_kms_invalid_key_usage_struct/1, encode_kms_invalid_key_usage_struct_top/1, decode_kms_invalid_key_usage_struct/0, kms_invalid_state_default/0, encode_kms_invalid_state_struct/1, encode_kms_invalid_state_struct_top/1, decode_kms_invalid_state_struct/0, kms_not_found_default/0, encode_kms_not_found_struct/1, encode_kms_not_found_struct_top/1, decode_kms_not_found_struct/0, kms_opt_in_required_default/0, encode_kms_opt_in_required_struct/1, encode_kms_opt_in_required_struct_top/1, decode_kms_opt_in_required_struct/0, kms_throttled_default/0, encode_kms_throttled_struct/1, encode_kms_throttled_struct_top/1, decode_kms_throttled_struct/0, remove_permission_request_default/2, encode_remove_permission_request_struct/1, encode_remove_permission_request_struct_top/1, decode_remove_permission_request_struct/0, send_message_request_default/2, encode_message_system_attribute_value_struct/1, encode_send_message_request_struct/1, encode_send_message_request_struct_top/1, decode_message_system_attribute_value_struct/0, decode_send_message_request_struct/0, encode_message_system_attribute_name_for_sends_enum/1, decode_message_system_attribute_name_for_sends_enum/0, message_system_attribute_value_default/1, encode_message_system_attribute_value_struct_top/1, send_message_result_default/0, encode_send_message_result_struct/1, encode_send_message_result_struct_top/1, decode_send_message_result_struct/0, invalid_message_contents_default/0, encode_invalid_message_contents_struct/1, encode_invalid_message_contents_struct_top/1, decode_invalid_message_contents_struct/0, send_message_batch_request_default/2, encode_send_message_batch_request_entry_struct/1, encode_send_message_batch_request_struct/1, encode_send_message_batch_request_struct_top/1, decode_send_message_batch_request_entry_struct/0, decode_send_message_batch_request_struct/0, send_message_batch_request_entry_default/2, encode_send_message_batch_request_entry_struct_top/1, send_message_batch_result_default/0, encode_send_message_batch_result_entry_struct/1, encode_send_message_batch_result_struct/1, encode_send_message_batch_result_struct_top/1, decode_send_message_batch_result_entry_struct/0, decode_send_message_batch_result_struct/0, send_message_batch_result_entry_default/0, encode_send_message_batch_result_entry_struct_top/1, batch_request_too_long_default/0, encode_batch_request_too_long_struct/1, encode_batch_request_too_long_struct_top/1, decode_batch_request_too_long_struct/0, set_queue_attributes_request_default/2, encode_set_queue_attributes_request_struct/1, encode_set_queue_attributes_request_struct_top/1, decode_set_queue_attributes_request_struct/0, start_message_move_task_request_default/1, encode_start_message_move_task_request_struct/1, encode_start_message_move_task_request_struct_top/1, decode_start_message_move_task_request_struct/0, start_message_move_task_result_default/0, encode_start_message_move_task_result_struct/1, encode_start_message_move_task_result_struct_top/1, decode_start_message_move_task_result_struct/0, tag_queue_request_default/2, encode_tag_queue_request_struct/1, encode_tag_queue_request_struct_top/1, decode_tag_queue_request_struct/0, untag_queue_request_default/2, encode_untag_queue_request_struct/1, encode_untag_queue_request_struct_top/1, decode_untag_queue_request_struct/0, add_permission_output_default/0, decode_add_permission_output_struct/0, encode_add_permission_input/1, decode_add_permission_output/1, build_add_permission_request/1, parse_add_permission_response/3, encode_cancel_message_move_task_input/1, decode_cancel_message_move_task_output/1, build_cancel_message_move_task_request/1, parse_cancel_message_move_task_response/3, change_message_visibility_output_default/0, decode_change_message_visibility_output_struct/0, encode_change_message_visibility_input/1, decode_change_message_visibility_output/1, build_change_message_visibility_request/1, parse_change_message_visibility_response/3, encode_change_message_visibility_batch_input/1, decode_change_message_visibility_batch_output/1, build_change_message_visibility_batch_request/1, parse_change_message_visibility_batch_response/3, encode_create_queue_input/1, decode_create_queue_output/1, build_create_queue_request/1, parse_create_queue_response/3, delete_message_output_default/0, decode_delete_message_output_struct/0, encode_delete_message_input/1, decode_delete_message_output/1, build_delete_message_request/1, parse_delete_message_response/3, encode_delete_message_batch_input/1, decode_delete_message_batch_output/1, build_delete_message_batch_request/1, parse_delete_message_batch_response/3, delete_queue_output_default/0, decode_delete_queue_output_struct/0, encode_delete_queue_input/1, decode_delete_queue_output/1, build_delete_queue_request/1, parse_delete_queue_response/3, encode_get_queue_attributes_input/1, decode_get_queue_attributes_output/1, build_get_queue_attributes_request/1, parse_get_queue_attributes_response/3, encode_get_queue_url_input/1, decode_get_queue_url_output/1, build_get_queue_url_request/1, parse_get_queue_url_response/3, encode_list_dead_letter_source_queues_input/1, decode_list_dead_letter_source_queues_output/1, build_list_dead_letter_source_queues_request/1, parse_list_dead_letter_source_queues_response/3, encode_list_message_move_tasks_input/1, decode_list_message_move_tasks_output/1, build_list_message_move_tasks_request/1, parse_list_message_move_tasks_response/3, encode_list_queues_input/1, decode_list_queues_output/1, build_list_queues_request/1, parse_list_queues_response/3, encode_list_queue_tags_input/1, decode_list_queue_tags_output/1, build_list_queue_tags_request/1, parse_list_queue_tags_response/3, purge_queue_output_default/0, decode_purge_queue_output_struct/0, encode_purge_queue_input/1, decode_purge_queue_output/1, build_purge_queue_request/1, parse_purge_queue_response/3, encode_receive_message_input/1, decode_receive_message_output/1, build_receive_message_request/1, parse_receive_message_response/3, remove_permission_output_default/0, decode_remove_permission_output_struct/0, encode_remove_permission_input/1, decode_remove_permission_output/1, build_remove_permission_request/1, parse_remove_permission_response/3, encode_send_message_input/1, decode_send_message_output/1, build_send_message_request/1, parse_send_message_response/3, encode_send_message_batch_input/1, decode_send_message_batch_output/1, build_send_message_batch_request/1, parse_send_message_batch_response/3, set_queue_attributes_output_default/0, decode_set_queue_attributes_output_struct/0, encode_set_queue_attributes_input/1, decode_set_queue_attributes_output/1, build_set_queue_attributes_request/1, parse_set_queue_attributes_response/3, encode_start_message_move_task_input/1, decode_start_message_move_task_output/1, build_start_message_move_task_request/1, parse_start_message_move_task_response/3, tag_queue_output_default/0, decode_tag_queue_output_struct/0, encode_tag_queue_input/1, decode_tag_queue_output/1, build_tag_queue_request/1, parse_tag_queue_response/3, untag_queue_output_default/0, decode_untag_queue_output_struct/0, encode_untag_queue_input/1, decode_untag_queue_output/1, build_untag_queue_request/1, parse_untag_queue_response/3, add_permission/2, cancel_message_move_task/2, change_message_visibility/2, change_message_visibility_batch/2, create_queue/2, delete_message/2, delete_message_batch/2, delete_queue/2, get_queue_attributes/2, get_queue_url/2, list_dead_letter_source_queues/2, list_message_move_tasks/2, list_queues/2, list_queue_tags/2, purge_queue/2, receive_message/2, remove_permission/2, send_message/2, send_message_batch/2, set_queue_attributes/2, start_message_move_task/2, tag_queue/2, untag_queue/2, paginate_list_dead_letter_source_queues/4, paginate_list_queues/4, parse_invalid_address_response/3, parse_invalid_security_response/3, parse_over_limit_response/3, parse_queue_does_not_exist_response/3, parse_request_throttled_response/3, parse_unsupported_operation_response/3, parse_resource_not_found_exception_response/3, parse_message_not_inflight_response/3, parse_receipt_handle_is_invalid_response/3, parse_batch_entry_ids_not_distinct_response/3, parse_empty_batch_request_response/3, parse_invalid_batch_entry_id_response/3, parse_too_many_entries_in_batch_request_response/3, parse_invalid_attribute_name_response/3, parse_invalid_attribute_value_response/3, parse_queue_deleted_recently_response/3, parse_queue_name_exists_response/3, parse_invalid_id_format_response/3, parse_purge_queue_in_progress_response/3, parse_kms_access_denied_response/3, parse_kms_disabled_response/3, parse_kms_invalid_key_usage_response/3, parse_kms_invalid_state_response/3, parse_kms_not_found_response/3, parse_kms_opt_in_required_response/3, parse_kms_throttled_response/3, parse_invalid_message_contents_response/3, parse_batch_request_too_long_response/3]).
-export_type([client/0, endpoint_params/0, add_permission_request/0, invalid_address/0, invalid_security/0, over_limit/0, queue_does_not_exist/0, request_throttled/0, unsupported_operation/0, cancel_message_move_task_request/0, cancel_message_move_task_result/0, resource_not_found_exception/0, change_message_visibility_request/0, message_not_inflight/0, receipt_handle_is_invalid/0, change_message_visibility_batch_request/0, change_message_visibility_batch_request_entry/0, change_message_visibility_batch_result/0, batch_result_error_entry/0, change_message_visibility_batch_result_entry/0, batch_entry_ids_not_distinct/0, empty_batch_request/0, invalid_batch_entry_id/0, too_many_entries_in_batch_request/0, create_queue_request/0, queue_attribute_name/0, create_queue_result/0, invalid_attribute_name/0, invalid_attribute_value/0, queue_deleted_recently/0, queue_name_exists/0, delete_message_request/0, invalid_id_format/0, delete_message_batch_request/0, delete_message_batch_request_entry/0, delete_message_batch_result/0, delete_message_batch_result_entry/0, delete_queue_request/0, get_queue_attributes_request/0, get_queue_attributes_result/0, get_queue_url_request/0, get_queue_url_result/0, list_dead_letter_source_queues_request/0, list_dead_letter_source_queues_result/0, list_message_move_tasks_request/0, list_message_move_tasks_result/0, list_message_move_tasks_result_entry/0, list_queues_request/0, list_queues_result/0, list_queue_tags_request/0, list_queue_tags_result/0, purge_queue_request/0, purge_queue_in_progress/0, receive_message_request/0, message_system_attribute_name/0, receive_message_result/0, message/0, message_attribute_value/0, kms_access_denied/0, kms_disabled/0, kms_invalid_key_usage/0, kms_invalid_state/0, kms_not_found/0, kms_opt_in_required/0, kms_throttled/0, remove_permission_request/0, send_message_request/0, message_system_attribute_name_for_sends/0, message_system_attribute_value/0, send_message_result/0, invalid_message_contents/0, send_message_batch_request/0, send_message_batch_request_entry/0, send_message_batch_result/0, send_message_batch_result_entry/0, batch_request_too_long/0, set_queue_attributes_request/0, start_message_move_task_request/0, start_message_move_task_result/0, tag_queue_request/0, untag_queue_request/0, add_permission_output/0, add_permission_error/0, cancel_message_move_task_error/0, change_message_visibility_output/0, change_message_visibility_error/0, change_message_visibility_batch_error/0, create_queue_error/0, delete_message_output/0, delete_message_error/0, delete_message_batch_error/0, delete_queue_output/0, delete_queue_error/0, get_queue_attributes_error/0, get_queue_url_error/0, list_dead_letter_source_queues_error/0, list_message_move_tasks_error/0, list_queues_error/0, list_queue_tags_error/0, purge_queue_output/0, purge_queue_error/0, receive_message_error/0, remove_permission_output/0, remove_permission_error/0, send_message_error/0, send_message_batch_error/0, set_queue_attributes_output/0, set_queue_attributes_error/0, start_message_move_task_error/0, tag_queue_output/0, tag_queue_error/0, untag_queue_output/0, untag_queue_error/0]).

-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.

?MODULEDOC(
    " Generated from com.amazonaws.sqs#AmazonSQS (awsJson1_0).\n"
    " DO NOT EDIT. Re-generate via the codegen subproject.\n"
).

-opaque client() :: {client,
        aws@internal@client@runtime:client_config(),
        aws@internal@credentials_cache:cache()}.

-type endpoint_params() :: {endpoint_params,
        gleam@option:option(boolean()),
        gleam@option:option(boolean())}.

-type add_permission_request() :: {add_permission_request,
        list(binary()),
        list(binary()),
        binary(),
        binary()}.

-type invalid_address() :: {invalid_address, gleam@option:option(binary())}.

-type invalid_security() :: {invalid_security, gleam@option:option(binary())}.

-type over_limit() :: {over_limit, gleam@option:option(binary())}.

-type queue_does_not_exist() :: {queue_does_not_exist,
        gleam@option:option(binary())}.

-type request_throttled() :: {request_throttled, gleam@option:option(binary())}.

-type unsupported_operation() :: {unsupported_operation,
        gleam@option:option(binary())}.

-type cancel_message_move_task_request() :: {cancel_message_move_task_request,
        binary()}.

-type cancel_message_move_task_result() :: {cancel_message_move_task_result,
        gleam@option:option(integer())}.

-type resource_not_found_exception() :: {resource_not_found_exception,
        gleam@option:option(binary())}.

-type change_message_visibility_request() :: {change_message_visibility_request,
        binary(),
        binary(),
        integer()}.

-type message_not_inflight() :: message_not_inflight.

-type receipt_handle_is_invalid() :: {receipt_handle_is_invalid,
        gleam@option:option(binary())}.

-type change_message_visibility_batch_request() :: {change_message_visibility_batch_request,
        list(change_message_visibility_batch_request_entry()),
        binary()}.

-type change_message_visibility_batch_request_entry() :: {change_message_visibility_batch_request_entry,
        binary(),
        binary(),
        gleam@option:option(integer())}.

-type change_message_visibility_batch_result() :: {change_message_visibility_batch_result,
        gleam@option:option(list(batch_result_error_entry())),
        gleam@option:option(list(change_message_visibility_batch_result_entry()))}.

-type batch_result_error_entry() :: {batch_result_error_entry,
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(boolean())}.

-type change_message_visibility_batch_result_entry() :: {change_message_visibility_batch_result_entry,
        gleam@option:option(binary())}.

-type batch_entry_ids_not_distinct() :: {batch_entry_ids_not_distinct,
        gleam@option:option(binary())}.

-type empty_batch_request() :: {empty_batch_request,
        gleam@option:option(binary())}.

-type invalid_batch_entry_id() :: {invalid_batch_entry_id,
        gleam@option:option(binary())}.

-type too_many_entries_in_batch_request() :: {too_many_entries_in_batch_request,
        gleam@option:option(binary())}.

-type create_queue_request() :: {create_queue_request,
        gleam@option:option(gleam@dict:dict(binary(), binary())),
        binary(),
        gleam@option:option(gleam@dict:dict(binary(), binary()))}.

-type queue_attribute_name() :: queue_attribute_name_all |
    queue_attribute_name_approximatenumberofmessages |
    queue_attribute_name_approximatenumberofmessagesdelayed |
    queue_attribute_name_approximatenumberofmessagesnotvisible |
    queue_attribute_name_contentbaseddeduplication |
    queue_attribute_name_createdtimestamp |
    queue_attribute_name_deduplicationscope |
    queue_attribute_name_delayseconds |
    queue_attribute_name_fifoqueue |
    queue_attribute_name_fifothroughputlimit |
    queue_attribute_name_kmsdatakeyreuseperiodseconds |
    queue_attribute_name_kmsmasterkeyid |
    queue_attribute_name_lastmodifiedtimestamp |
    queue_attribute_name_maximummessagesize |
    queue_attribute_name_messageretentionperiod |
    queue_attribute_name_policy |
    queue_attribute_name_queuearn |
    queue_attribute_name_receivemessagewaittimeseconds |
    queue_attribute_name_redriveallowpolicy |
    queue_attribute_name_redrivepolicy |
    queue_attribute_name_sqsmanagedsseenabled |
    queue_attribute_name_visibilitytimeout.

-type create_queue_result() :: {create_queue_result,
        gleam@option:option(binary())}.

-type invalid_attribute_name() :: {invalid_attribute_name,
        gleam@option:option(binary())}.

-type invalid_attribute_value() :: {invalid_attribute_value,
        gleam@option:option(binary())}.

-type queue_deleted_recently() :: {queue_deleted_recently,
        gleam@option:option(binary())}.

-type queue_name_exists() :: {queue_name_exists, gleam@option:option(binary())}.

-type delete_message_request() :: {delete_message_request, binary(), binary()}.

-type invalid_id_format() :: invalid_id_format.

-type delete_message_batch_request() :: {delete_message_batch_request,
        list(delete_message_batch_request_entry()),
        binary()}.

-type delete_message_batch_request_entry() :: {delete_message_batch_request_entry,
        binary(),
        binary()}.

-type delete_message_batch_result() :: {delete_message_batch_result,
        gleam@option:option(list(batch_result_error_entry())),
        gleam@option:option(list(delete_message_batch_result_entry()))}.

-type delete_message_batch_result_entry() :: {delete_message_batch_result_entry,
        gleam@option:option(binary())}.

-type delete_queue_request() :: {delete_queue_request, binary()}.

-type get_queue_attributes_request() :: {get_queue_attributes_request,
        gleam@option:option(list(queue_attribute_name())),
        binary()}.

-type get_queue_attributes_result() :: {get_queue_attributes_result,
        gleam@option:option(gleam@dict:dict(binary(), binary()))}.

-type get_queue_url_request() :: {get_queue_url_request,
        binary(),
        gleam@option:option(binary())}.

-type get_queue_url_result() :: {get_queue_url_result,
        gleam@option:option(binary())}.

-type list_dead_letter_source_queues_request() :: {list_dead_letter_source_queues_request,
        gleam@option:option(integer()),
        gleam@option:option(binary()),
        binary()}.

-type list_dead_letter_source_queues_result() :: {list_dead_letter_source_queues_result,
        gleam@option:option(binary()),
        gleam@option:option(list(binary()))}.

-type list_message_move_tasks_request() :: {list_message_move_tasks_request,
        gleam@option:option(integer()),
        binary()}.

-type list_message_move_tasks_result() :: {list_message_move_tasks_result,
        gleam@option:option(list(list_message_move_tasks_result_entry()))}.

-type list_message_move_tasks_result_entry() :: {list_message_move_tasks_result_entry,
        gleam@option:option(integer()),
        gleam@option:option(integer()),
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(integer()),
        gleam@option:option(binary()),
        gleam@option:option(integer()),
        gleam@option:option(binary()),
        gleam@option:option(binary())}.

-type list_queues_request() :: {list_queues_request,
        gleam@option:option(integer()),
        gleam@option:option(binary()),
        gleam@option:option(binary())}.

-type list_queues_result() :: {list_queues_result,
        gleam@option:option(binary()),
        gleam@option:option(list(binary()))}.

-type list_queue_tags_request() :: {list_queue_tags_request, binary()}.

-type list_queue_tags_result() :: {list_queue_tags_result,
        gleam@option:option(gleam@dict:dict(binary(), binary()))}.

-type purge_queue_request() :: {purge_queue_request, binary()}.

-type purge_queue_in_progress() :: {purge_queue_in_progress,
        gleam@option:option(binary())}.

-type receive_message_request() :: {receive_message_request,
        gleam@option:option(list(queue_attribute_name())),
        gleam@option:option(integer()),
        gleam@option:option(list(binary())),
        gleam@option:option(list(message_system_attribute_name())),
        binary(),
        gleam@option:option(binary()),
        gleam@option:option(integer()),
        gleam@option:option(integer())}.

-type message_system_attribute_name() :: message_system_attribute_name_awstraceheader |
    message_system_attribute_name_all |
    message_system_attribute_name_approximatefirstreceivetimestamp |
    message_system_attribute_name_approximatereceivecount |
    message_system_attribute_name_deadletterqueuesourcearn |
    message_system_attribute_name_messagededuplicationid |
    message_system_attribute_name_messagegroupid |
    message_system_attribute_name_senderid |
    message_system_attribute_name_senttimestamp |
    message_system_attribute_name_sequencenumber.

-type receive_message_result() :: {receive_message_result,
        gleam@option:option(list(message()))}.

-type message() :: {message,
        gleam@option:option(gleam@dict:dict(binary(), binary())),
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(gleam@dict:dict(binary(), message_attribute_value())),
        gleam@option:option(binary()),
        gleam@option:option(binary())}.

-type message_attribute_value() :: {message_attribute_value,
        gleam@option:option(list(bitstring())),
        gleam@option:option(bitstring()),
        binary(),
        gleam@option:option(list(binary())),
        gleam@option:option(binary())}.

-type kms_access_denied() :: {kms_access_denied, gleam@option:option(binary())}.

-type kms_disabled() :: {kms_disabled, gleam@option:option(binary())}.

-type kms_invalid_key_usage() :: {kms_invalid_key_usage,
        gleam@option:option(binary())}.

-type kms_invalid_state() :: {kms_invalid_state, gleam@option:option(binary())}.

-type kms_not_found() :: {kms_not_found, gleam@option:option(binary())}.

-type kms_opt_in_required() :: {kms_opt_in_required,
        gleam@option:option(binary())}.

-type kms_throttled() :: {kms_throttled, gleam@option:option(binary())}.

-type remove_permission_request() :: {remove_permission_request,
        binary(),
        binary()}.

-type send_message_request() :: {send_message_request,
        gleam@option:option(integer()),
        gleam@option:option(gleam@dict:dict(binary(), message_attribute_value())),
        binary(),
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(gleam@dict:dict(binary(), message_system_attribute_value())),
        binary()}.

-type message_system_attribute_name_for_sends() :: message_system_attribute_name_for_sends_awstraceheader.

-type message_system_attribute_value() :: {message_system_attribute_value,
        gleam@option:option(list(bitstring())),
        gleam@option:option(bitstring()),
        binary(),
        gleam@option:option(list(binary())),
        gleam@option:option(binary())}.

-type send_message_result() :: {send_message_result,
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(binary())}.

-type invalid_message_contents() :: {invalid_message_contents,
        gleam@option:option(binary())}.

-type send_message_batch_request() :: {send_message_batch_request,
        list(send_message_batch_request_entry()),
        binary()}.

-type send_message_batch_request_entry() :: {send_message_batch_request_entry,
        gleam@option:option(integer()),
        binary(),
        gleam@option:option(gleam@dict:dict(binary(), message_attribute_value())),
        binary(),
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(gleam@dict:dict(binary(), message_system_attribute_value()))}.

-type send_message_batch_result() :: {send_message_batch_result,
        gleam@option:option(list(batch_result_error_entry())),
        gleam@option:option(list(send_message_batch_result_entry()))}.

-type send_message_batch_result_entry() :: {send_message_batch_result_entry,
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(binary()),
        gleam@option:option(binary())}.

-type batch_request_too_long() :: {batch_request_too_long,
        gleam@option:option(binary())}.

-type set_queue_attributes_request() :: {set_queue_attributes_request,
        gleam@dict:dict(binary(), binary()),
        binary()}.

-type start_message_move_task_request() :: {start_message_move_task_request,
        gleam@option:option(binary()),
        gleam@option:option(integer()),
        binary()}.

-type start_message_move_task_result() :: {start_message_move_task_result,
        gleam@option:option(binary())}.

-type tag_queue_request() :: {tag_queue_request,
        binary(),
        gleam@dict:dict(binary(), binary())}.

-type untag_queue_request() :: {untag_queue_request, binary(), list(binary())}.

-type add_permission_output() :: add_permission_output.

-type add_permission_error() :: {add_permission_error_invalid_address,
        invalid_address()} |
    {add_permission_error_invalid_security, invalid_security()} |
    {add_permission_error_over_limit, over_limit()} |
    {add_permission_error_queue_does_not_exist, queue_does_not_exist()} |
    {add_permission_error_request_throttled, request_throttled()} |
    {add_permission_error_unsupported_operation, unsupported_operation()} |
    {add_permission_error_transport, binary()} |
    {add_permission_error_unknown, binary(), integer(), binary()}.

-type cancel_message_move_task_error() :: {cancel_message_move_task_error_invalid_address,
        invalid_address()} |
    {cancel_message_move_task_error_invalid_security, invalid_security()} |
    {cancel_message_move_task_error_request_throttled, request_throttled()} |
    {cancel_message_move_task_error_resource_not_found_exception,
        resource_not_found_exception()} |
    {cancel_message_move_task_error_unsupported_operation,
        unsupported_operation()} |
    {cancel_message_move_task_error_transport, binary()} |
    {cancel_message_move_task_error_unknown, binary(), integer(), binary()}.

-type change_message_visibility_output() :: change_message_visibility_output.

-type change_message_visibility_error() :: {change_message_visibility_error_invalid_address,
        invalid_address()} |
    {change_message_visibility_error_invalid_security, invalid_security()} |
    {change_message_visibility_error_message_not_inflight,
        message_not_inflight()} |
    {change_message_visibility_error_queue_does_not_exist,
        queue_does_not_exist()} |
    {change_message_visibility_error_receipt_handle_is_invalid,
        receipt_handle_is_invalid()} |
    {change_message_visibility_error_request_throttled, request_throttled()} |
    {change_message_visibility_error_unsupported_operation,
        unsupported_operation()} |
    {change_message_visibility_error_transport, binary()} |
    {change_message_visibility_error_unknown, binary(), integer(), binary()}.

-type change_message_visibility_batch_error() :: {change_message_visibility_batch_error_batch_entry_ids_not_distinct,
        batch_entry_ids_not_distinct()} |
    {change_message_visibility_batch_error_empty_batch_request,
        empty_batch_request()} |
    {change_message_visibility_batch_error_invalid_address, invalid_address()} |
    {change_message_visibility_batch_error_invalid_batch_entry_id,
        invalid_batch_entry_id()} |
    {change_message_visibility_batch_error_invalid_security, invalid_security()} |
    {change_message_visibility_batch_error_queue_does_not_exist,
        queue_does_not_exist()} |
    {change_message_visibility_batch_error_request_throttled,
        request_throttled()} |
    {change_message_visibility_batch_error_too_many_entries_in_batch_request,
        too_many_entries_in_batch_request()} |
    {change_message_visibility_batch_error_unsupported_operation,
        unsupported_operation()} |
    {change_message_visibility_batch_error_transport, binary()} |
    {change_message_visibility_batch_error_unknown,
        binary(),
        integer(),
        binary()}.

-type create_queue_error() :: {create_queue_error_invalid_address,
        invalid_address()} |
    {create_queue_error_invalid_attribute_name, invalid_attribute_name()} |
    {create_queue_error_invalid_attribute_value, invalid_attribute_value()} |
    {create_queue_error_invalid_security, invalid_security()} |
    {create_queue_error_queue_deleted_recently, queue_deleted_recently()} |
    {create_queue_error_queue_name_exists, queue_name_exists()} |
    {create_queue_error_request_throttled, request_throttled()} |
    {create_queue_error_unsupported_operation, unsupported_operation()} |
    {create_queue_error_transport, binary()} |
    {create_queue_error_unknown, binary(), integer(), binary()}.

-type delete_message_output() :: delete_message_output.

-type delete_message_error() :: {delete_message_error_invalid_address,
        invalid_address()} |
    {delete_message_error_invalid_id_format, invalid_id_format()} |
    {delete_message_error_invalid_security, invalid_security()} |
    {delete_message_error_queue_does_not_exist, queue_does_not_exist()} |
    {delete_message_error_receipt_handle_is_invalid,
        receipt_handle_is_invalid()} |
    {delete_message_error_request_throttled, request_throttled()} |
    {delete_message_error_unsupported_operation, unsupported_operation()} |
    {delete_message_error_transport, binary()} |
    {delete_message_error_unknown, binary(), integer(), binary()}.

-type delete_message_batch_error() :: {delete_message_batch_error_batch_entry_ids_not_distinct,
        batch_entry_ids_not_distinct()} |
    {delete_message_batch_error_empty_batch_request, empty_batch_request()} |
    {delete_message_batch_error_invalid_address, invalid_address()} |
    {delete_message_batch_error_invalid_batch_entry_id,
        invalid_batch_entry_id()} |
    {delete_message_batch_error_invalid_security, invalid_security()} |
    {delete_message_batch_error_queue_does_not_exist, queue_does_not_exist()} |
    {delete_message_batch_error_request_throttled, request_throttled()} |
    {delete_message_batch_error_too_many_entries_in_batch_request,
        too_many_entries_in_batch_request()} |
    {delete_message_batch_error_unsupported_operation, unsupported_operation()} |
    {delete_message_batch_error_transport, binary()} |
    {delete_message_batch_error_unknown, binary(), integer(), binary()}.

-type delete_queue_output() :: delete_queue_output.

-type delete_queue_error() :: {delete_queue_error_invalid_address,
        invalid_address()} |
    {delete_queue_error_invalid_security, invalid_security()} |
    {delete_queue_error_queue_does_not_exist, queue_does_not_exist()} |
    {delete_queue_error_request_throttled, request_throttled()} |
    {delete_queue_error_unsupported_operation, unsupported_operation()} |
    {delete_queue_error_transport, binary()} |
    {delete_queue_error_unknown, binary(), integer(), binary()}.

-type get_queue_attributes_error() :: {get_queue_attributes_error_invalid_address,
        invalid_address()} |
    {get_queue_attributes_error_invalid_attribute_name,
        invalid_attribute_name()} |
    {get_queue_attributes_error_invalid_security, invalid_security()} |
    {get_queue_attributes_error_queue_does_not_exist, queue_does_not_exist()} |
    {get_queue_attributes_error_request_throttled, request_throttled()} |
    {get_queue_attributes_error_unsupported_operation, unsupported_operation()} |
    {get_queue_attributes_error_transport, binary()} |
    {get_queue_attributes_error_unknown, binary(), integer(), binary()}.

-type get_queue_url_error() :: {get_queue_url_error_invalid_address,
        invalid_address()} |
    {get_queue_url_error_invalid_security, invalid_security()} |
    {get_queue_url_error_queue_does_not_exist, queue_does_not_exist()} |
    {get_queue_url_error_request_throttled, request_throttled()} |
    {get_queue_url_error_unsupported_operation, unsupported_operation()} |
    {get_queue_url_error_transport, binary()} |
    {get_queue_url_error_unknown, binary(), integer(), binary()}.

-type list_dead_letter_source_queues_error() :: {list_dead_letter_source_queues_error_invalid_address,
        invalid_address()} |
    {list_dead_letter_source_queues_error_invalid_security, invalid_security()} |
    {list_dead_letter_source_queues_error_queue_does_not_exist,
        queue_does_not_exist()} |
    {list_dead_letter_source_queues_error_request_throttled,
        request_throttled()} |
    {list_dead_letter_source_queues_error_unsupported_operation,
        unsupported_operation()} |
    {list_dead_letter_source_queues_error_transport, binary()} |
    {list_dead_letter_source_queues_error_unknown,
        binary(),
        integer(),
        binary()}.

-type list_message_move_tasks_error() :: {list_message_move_tasks_error_invalid_address,
        invalid_address()} |
    {list_message_move_tasks_error_invalid_security, invalid_security()} |
    {list_message_move_tasks_error_request_throttled, request_throttled()} |
    {list_message_move_tasks_error_resource_not_found_exception,
        resource_not_found_exception()} |
    {list_message_move_tasks_error_unsupported_operation,
        unsupported_operation()} |
    {list_message_move_tasks_error_transport, binary()} |
    {list_message_move_tasks_error_unknown, binary(), integer(), binary()}.

-type list_queues_error() :: {list_queues_error_invalid_address,
        invalid_address()} |
    {list_queues_error_invalid_security, invalid_security()} |
    {list_queues_error_request_throttled, request_throttled()} |
    {list_queues_error_unsupported_operation, unsupported_operation()} |
    {list_queues_error_transport, binary()} |
    {list_queues_error_unknown, binary(), integer(), binary()}.

-type list_queue_tags_error() :: {list_queue_tags_error_invalid_address,
        invalid_address()} |
    {list_queue_tags_error_invalid_security, invalid_security()} |
    {list_queue_tags_error_queue_does_not_exist, queue_does_not_exist()} |
    {list_queue_tags_error_request_throttled, request_throttled()} |
    {list_queue_tags_error_unsupported_operation, unsupported_operation()} |
    {list_queue_tags_error_transport, binary()} |
    {list_queue_tags_error_unknown, binary(), integer(), binary()}.

-type purge_queue_output() :: purge_queue_output.

-type purge_queue_error() :: {purge_queue_error_invalid_address,
        invalid_address()} |
    {purge_queue_error_invalid_security, invalid_security()} |
    {purge_queue_error_purge_queue_in_progress, purge_queue_in_progress()} |
    {purge_queue_error_queue_does_not_exist, queue_does_not_exist()} |
    {purge_queue_error_request_throttled, request_throttled()} |
    {purge_queue_error_unsupported_operation, unsupported_operation()} |
    {purge_queue_error_transport, binary()} |
    {purge_queue_error_unknown, binary(), integer(), binary()}.

-type receive_message_error() :: {receive_message_error_invalid_address,
        invalid_address()} |
    {receive_message_error_invalid_security, invalid_security()} |
    {receive_message_error_kms_access_denied, kms_access_denied()} |
    {receive_message_error_kms_disabled, kms_disabled()} |
    {receive_message_error_kms_invalid_key_usage, kms_invalid_key_usage()} |
    {receive_message_error_kms_invalid_state, kms_invalid_state()} |
    {receive_message_error_kms_not_found, kms_not_found()} |
    {receive_message_error_kms_opt_in_required, kms_opt_in_required()} |
    {receive_message_error_kms_throttled, kms_throttled()} |
    {receive_message_error_over_limit, over_limit()} |
    {receive_message_error_queue_does_not_exist, queue_does_not_exist()} |
    {receive_message_error_request_throttled, request_throttled()} |
    {receive_message_error_unsupported_operation, unsupported_operation()} |
    {receive_message_error_transport, binary()} |
    {receive_message_error_unknown, binary(), integer(), binary()}.

-type remove_permission_output() :: remove_permission_output.

-type remove_permission_error() :: {remove_permission_error_invalid_address,
        invalid_address()} |
    {remove_permission_error_invalid_security, invalid_security()} |
    {remove_permission_error_queue_does_not_exist, queue_does_not_exist()} |
    {remove_permission_error_request_throttled, request_throttled()} |
    {remove_permission_error_unsupported_operation, unsupported_operation()} |
    {remove_permission_error_transport, binary()} |
    {remove_permission_error_unknown, binary(), integer(), binary()}.

-type send_message_error() :: {send_message_error_invalid_address,
        invalid_address()} |
    {send_message_error_invalid_message_contents, invalid_message_contents()} |
    {send_message_error_invalid_security, invalid_security()} |
    {send_message_error_kms_access_denied, kms_access_denied()} |
    {send_message_error_kms_disabled, kms_disabled()} |
    {send_message_error_kms_invalid_key_usage, kms_invalid_key_usage()} |
    {send_message_error_kms_invalid_state, kms_invalid_state()} |
    {send_message_error_kms_not_found, kms_not_found()} |
    {send_message_error_kms_opt_in_required, kms_opt_in_required()} |
    {send_message_error_kms_throttled, kms_throttled()} |
    {send_message_error_queue_does_not_exist, queue_does_not_exist()} |
    {send_message_error_request_throttled, request_throttled()} |
    {send_message_error_unsupported_operation, unsupported_operation()} |
    {send_message_error_transport, binary()} |
    {send_message_error_unknown, binary(), integer(), binary()}.

-type send_message_batch_error() :: {send_message_batch_error_batch_entry_ids_not_distinct,
        batch_entry_ids_not_distinct()} |
    {send_message_batch_error_batch_request_too_long, batch_request_too_long()} |
    {send_message_batch_error_empty_batch_request, empty_batch_request()} |
    {send_message_batch_error_invalid_address, invalid_address()} |
    {send_message_batch_error_invalid_batch_entry_id, invalid_batch_entry_id()} |
    {send_message_batch_error_invalid_security, invalid_security()} |
    {send_message_batch_error_kms_access_denied, kms_access_denied()} |
    {send_message_batch_error_kms_disabled, kms_disabled()} |
    {send_message_batch_error_kms_invalid_key_usage, kms_invalid_key_usage()} |
    {send_message_batch_error_kms_invalid_state, kms_invalid_state()} |
    {send_message_batch_error_kms_not_found, kms_not_found()} |
    {send_message_batch_error_kms_opt_in_required, kms_opt_in_required()} |
    {send_message_batch_error_kms_throttled, kms_throttled()} |
    {send_message_batch_error_queue_does_not_exist, queue_does_not_exist()} |
    {send_message_batch_error_request_throttled, request_throttled()} |
    {send_message_batch_error_too_many_entries_in_batch_request,
        too_many_entries_in_batch_request()} |
    {send_message_batch_error_unsupported_operation, unsupported_operation()} |
    {send_message_batch_error_transport, binary()} |
    {send_message_batch_error_unknown, binary(), integer(), binary()}.

-type set_queue_attributes_output() :: set_queue_attributes_output.

-type set_queue_attributes_error() :: {set_queue_attributes_error_invalid_address,
        invalid_address()} |
    {set_queue_attributes_error_invalid_attribute_name,
        invalid_attribute_name()} |
    {set_queue_attributes_error_invalid_attribute_value,
        invalid_attribute_value()} |
    {set_queue_attributes_error_invalid_security, invalid_security()} |
    {set_queue_attributes_error_over_limit, over_limit()} |
    {set_queue_attributes_error_queue_does_not_exist, queue_does_not_exist()} |
    {set_queue_attributes_error_request_throttled, request_throttled()} |
    {set_queue_attributes_error_unsupported_operation, unsupported_operation()} |
    {set_queue_attributes_error_transport, binary()} |
    {set_queue_attributes_error_unknown, binary(), integer(), binary()}.

-type start_message_move_task_error() :: {start_message_move_task_error_invalid_address,
        invalid_address()} |
    {start_message_move_task_error_invalid_security, invalid_security()} |
    {start_message_move_task_error_request_throttled, request_throttled()} |
    {start_message_move_task_error_resource_not_found_exception,
        resource_not_found_exception()} |
    {start_message_move_task_error_unsupported_operation,
        unsupported_operation()} |
    {start_message_move_task_error_transport, binary()} |
    {start_message_move_task_error_unknown, binary(), integer(), binary()}.

-type tag_queue_output() :: tag_queue_output.

-type tag_queue_error() :: {tag_queue_error_invalid_address, invalid_address()} |
    {tag_queue_error_invalid_security, invalid_security()} |
    {tag_queue_error_queue_does_not_exist, queue_does_not_exist()} |
    {tag_queue_error_request_throttled, request_throttled()} |
    {tag_queue_error_unsupported_operation, unsupported_operation()} |
    {tag_queue_error_transport, binary()} |
    {tag_queue_error_unknown, binary(), integer(), binary()}.

-type untag_queue_output() :: untag_queue_output.

-type untag_queue_error() :: {untag_queue_error_invalid_address,
        invalid_address()} |
    {untag_queue_error_invalid_security, invalid_security()} |
    {untag_queue_error_queue_does_not_exist, queue_does_not_exist()} |
    {untag_queue_error_request_throttled, request_throttled()} |
    {untag_queue_error_unsupported_operation, unsupported_operation()} |
    {untag_queue_error_transport, binary()} |
    {untag_queue_error_unknown, binary(), integer(), binary()}.

-file("src/aws/services/sqs.gleam", 40).
?DOC(
    " The all-default `EndpointParams`: every parameter left to the rule\n"
    " set's default. Spread it and override only the params you need.\n"
).
-spec default_endpoint_params() -> endpoint_params().
default_endpoint_params() ->
    {endpoint_params, none, none}.

-file("src/aws/services/sqs.gleam", 60).
?DOC(
    " Build a Client from explicit customer `config.Settings` and this\n"
    " service's AWS `EndpointParams`. Start each from its defaults\n"
    " (`config.default_settings()` / `default_endpoint_params()`) and\n"
    " override only the fields you need. Region auto-resolves when\n"
    " `settings.region` is `None` — the only failure path; credentials\n"
    " resolve lazily on the first request.\n"
).
-spec new_with(aws@config:settings(), endpoint_params()) -> {ok, client()} |
    {error, aws@region:resolve_error()}.
new_with(Settings, Endpoint_params) ->
    gleam@result:map(
        aws@config:resolve(Settings, <<"sqs"/utf8>>, <<"sqs"/utf8>>),
        fun(Cfg) ->
            Rule_set@1 = case aws@endpoints:parse_rule_set(
                <<"{\"parameters\":{\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"documentation\":\"Override the endpoint used to send this request\",\"required\":false,\"type\":\"string\"},\"Region\":{\"builtIn\":\"AWS::Region\",\"documentation\":\"The AWS region used to dispatch the request.\",\"required\":false,\"type\":\"string\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"required\":true,\"type\":\"boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"required\":true,\"type\":\"boolean\"}},\"rules\":[{\"conditions\":[{\"argv\":[{\"ref\":\"Endpoint\"}],\"fn\":\"isSet\"}],\"rules\":[{\"conditions\":[{\"argv\":[{\"ref\":\"UseFIPS\"},true],\"fn\":\"booleanEquals\"}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[{\"argv\":[{\"ref\":\"UseDualStack\"},true],\"fn\":\"booleanEquals\"}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"headers\":{},\"properties\":{},\"url\":{\"ref\":\"Endpoint\"}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[{\"argv\":[{\"ref\":\"Region\"}],\"fn\":\"isSet\"}],\"rules\":[{\"conditions\":[{\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\",\"fn\":\"aws.partition\"}],\"rules\":[{\"conditions\":[{\"argv\":[{\"ref\":\"UseFIPS\"},true],\"fn\":\"booleanEquals\"},{\"argv\":[{\"ref\":\"UseDualStack\"},true],\"fn\":\"booleanEquals\"}],\"rules\":[{\"conditions\":[{\"argv\":[true,{\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"],\"fn\":\"getAttr\"}],\"fn\":\"booleanEquals\"},{\"argv\":[true,{\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"],\"fn\":\"getAttr\"}],\"fn\":\"booleanEquals\"}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"headers\":{},\"properties\":{},\"url\":\"https://sqs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\"},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"argv\":[{\"ref\":\"UseFIPS\"},true],\"fn\":\"booleanEquals\"}],\"rules\":[{\"conditions\":[{\"argv\":[{\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"],\"fn\":\"getAttr\"},true],\"fn\":\"booleanEquals\"}],\"rules\":[{\"conditions\":[{\"argv\":[{\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"],\"fn\":\"getAttr\"},\"aws-us-gov\"],\"fn\":\"stringEquals\"}],\"endpoint\":{\"headers\":{},\"properties\":{},\"url\":\"https://sqs.{Region}.amazonaws.com\"},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"headers\":{},\"properties\":{},\"url\":\"https://sqs-fips.{Region}.{PartitionResult#dnsSuffix}\"},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"argv\":[{\"ref\":\"UseDualStack\"},true],\"fn\":\"booleanEquals\"}],\"rules\":[{\"conditions\":[{\"argv\":[true,{\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"],\"fn\":\"getAttr\"}],\"fn\":\"booleanEquals\"}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"headers\":{},\"properties\":{},\"url\":\"https://sqs.{Region}.{PartitionResult#dualStackDnsSuffix}\"},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[],\"endpoint\":{\"headers\":{},\"properties\":{},\"url\":\"https://sqs.{Region}.{PartitionResult#dnsSuffix}\"},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"Invalid Configuration: Missing Region\",\"type\":\"error\"}],\"version\":\"1.0\"}"/utf8>>
            ) of
                {ok, Rule_set} -> Rule_set;
                _assert_fail ->
                    erlang:error(#{gleam_error => let_assert,
                                message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
                                file => <<?FILEPATH/utf8>>,
                                module => <<"aws/services/sqs"/utf8>>,
                                function => <<"new_with"/utf8>>,
                                line => 69,
                                value => _assert_fail,
                                start => 6694,
                                'end' => 6768,
                                pattern_start => 6705,
                                pattern_end => 6717})
            end,
            Cfg@1 = aws@internal@client@runtime:with_endpoint_rule_set(
                Cfg,
                Rule_set@1
            ),
            Cfg@2 = case erlang:element(2, Endpoint_params) of
                {some, Value} ->
                    aws@internal@client@runtime:with_endpoint_param(
                        Cfg@1,
                        <<"UseDualStack"/utf8>>,
                        {bool_val, Value}
                    );

                none ->
                    Cfg@1
            end,
            Cfg@3 = case erlang:element(3, Endpoint_params) of
                {some, Value@1} ->
                    aws@internal@client@runtime:with_endpoint_param(
                        Cfg@2,
                        <<"UseFIPS"/utf8>>,
                        {bool_val, Value@1}
                    );

                none ->
                    Cfg@2
            end,
            Cache@1 = case aws@internal@credentials_cache:start_default(
                erlang:element(2, Cfg@3)
            ) of
                {ok, Cache} -> Cache;
                _assert_fail@1 ->
                    erlang:error(#{gleam_error => let_assert,
                                message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
                                file => <<?FILEPATH/utf8>>,
                                module => <<"aws/services/sqs"/utf8>>,
                                function => <<"new_with"/utf8>>,
                                line => 81,
                                value => _assert_fail@1,
                                start => 7186,
                                'end' => 7254,
                                pattern_start => 7197,
                                pattern_end => 7206})
            end,
            Cfg@4 = aws@internal@client@runtime:with_credentials_provider(
                Cfg@3,
                aws@internal@credentials_cache:as_provider(Cache@1)
            ),
            {client, Cfg@4, Cache@1}
        end
    ).

-file("src/aws/services/sqs.gleam", 50).
?DOC(
    " Build a Client with everything resolved automatically: the region\n"
    " from the standard AWS sources (`AWS_REGION`, `AWS_DEFAULT_REGION`,\n"
    " `~/.aws/config`) and credentials from the default chain. Zero\n"
    " config — the path you want in Lambda / ECS / EC2, where the\n"
    " environment always supplies a region. `Error(_)` only when no\n"
    " source provides one; pass explicit settings via `new_with` then.\n"
).
-spec new() -> {ok, client()} | {error, aws@region:resolve_error()}.
new() ->
    new_with(aws@config:default_settings(), default_endpoint_params()).

-file("src/aws/services/sqs.gleam", 94).
?DOC(
    " Read the underlying `runtime.ClientConfig` out of an existing\n"
    " `Client`. Use this when you want to dispatch a request through\n"
    " `runtime.invoke` / `runtime.invoke_streaming` directly — e.g. to\n"
    " build a service-specific streaming wrapper around a `@streaming`\n"
    " output operation that the per-op codegen hasn't surfaced yet.\n"
    " The returned config is a value (Gleam records are immutable);\n"
    " callers cannot mutate the Client through it.\n"
).
-spec client_config(client()) -> aws@internal@client@runtime:client_config().
client_config(Client) ->
    erlang:element(2, Client).

-file("src/aws/services/sqs.gleam", 104).
?DOC(
    " Release the per-Client credentials cache actor. Call this when a\n"
    " Client value is no longer needed — long-running processes that\n"
    " build many Clients (tests, scripts, multi-tenant servers) will\n"
    " otherwise accumulate one BEAM process per construction. Fire-and-\n"
    " forget; safe to call multiple times. For tests or graceful\n"
    " shutdown that must observe the actor's exit, use `shutdown_sync`.\n"
).
-spec shutdown(client()) -> nil.
shutdown(Client) ->
    aws@internal@credentials_cache:shutdown(erlang:element(3, Client)).

-file("src/aws/services/sqs.gleam", 112).
?DOC(
    " Like `shutdown` but blocks until the credentials cache actor has\n"
    " actually exited (or `timeout_ms` elapses). `Ok(Nil)` indicates a\n"
    " clean exit; `Error(Nil)` indicates the timeout fired and the\n"
    " actor was still alive when the caller gave up.\n"
).
-spec shutdown_sync(client(), integer()) -> {ok, nil} | {error, nil}.
shutdown_sync(Client, Timeout_ms) ->
    aws@internal@credentials_cache:shutdown_sync(
        erlang:element(3, Client),
        Timeout_ms
    ).

-file("src/aws/services/sqs.gleam", 128).
-spec add_permission_request_default(
    list(binary()),
    list(binary()),
    binary(),
    binary()
) -> add_permission_request().
add_permission_request_default(Aws_account_ids, Actions, Label, Queue_url) ->
    {add_permission_request, Aws_account_ids, Actions, Label, Queue_url}.

-file("src/aws/services/sqs.gleam", 142).
-spec encode_add_permission_request_struct(add_permission_request()) -> gleam@json:json().
encode_add_permission_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"AWSAccountIds"/utf8>>,
                (fun(Xs) -> gleam@json:array(Xs, fun gleam@json:string/1) end)(
                    V
                )} |
            Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"Actions"/utf8>>,
                (fun(Xs@1) ->
                    gleam@json:array(Xs@1, fun gleam@json:string/1)
                end)(V@1)} |
            Pairs@1]
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"Label"/utf8>>, gleam@json:string(V@2)} | Pairs@2]
    end,
    Pairs@4 = begin
        V@3 = erlang:element(5, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@3)} | Pairs@3]
    end,
    gleam@json:object(Pairs@4).

-file("src/aws/services/sqs.gleam", 165).
-spec encode_add_permission_request_struct_top(add_permission_request()) -> gleam@json:json().
encode_add_permission_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"AWSAccountIds"/utf8>>,
                (fun(Xs) -> gleam@json:array(Xs, fun gleam@json:string/1) end)(
                    V
                )} |
            Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"Actions"/utf8>>,
                (fun(Xs@1) ->
                    gleam@json:array(Xs@1, fun gleam@json:string/1)
                end)(V@1)} |
            Pairs@1]
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"Label"/utf8>>, gleam@json:string(V@2)} | Pairs@2]
    end,
    Pairs@4 = begin
        V@3 = erlang:element(5, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@3)} | Pairs@3]
    end,
    gleam@json:object(Pairs@4).

-file("src/aws/services/sqs.gleam", 188).
-spec decode_add_permission_request_struct() -> gleam@dynamic@decode:decoder(add_permission_request()).
decode_add_permission_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"AWSAccountIds"/utf8>>,
                gleam@dynamic@decode:list(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Aws_account_ids) ->
                    gleam@dynamic@decode:field(
                        <<"Actions"/utf8>>,
                        gleam@dynamic@decode:list(
                            {decoder, fun gleam@dynamic@decode:decode_string/1}
                        ),
                        fun(Actions) ->
                            gleam@dynamic@decode:field(
                                <<"Label"/utf8>>,
                                {decoder,
                                    fun gleam@dynamic@decode:decode_string/1},
                                fun(Label) ->
                                    gleam@dynamic@decode:field(
                                        <<"QueueUrl"/utf8>>,
                                        {decoder,
                                            fun gleam@dynamic@decode:decode_string/1},
                                        fun(Queue_url) ->
                                            gleam@dynamic@decode:success(
                                                {add_permission_request,
                                                    Aws_account_ids,
                                                    Actions,
                                                    Label,
                                                    Queue_url}
                                            )
                                        end
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 211).
-spec invalid_address_default() -> invalid_address().
invalid_address_default() ->
    {invalid_address, none}.

-file("src/aws/services/sqs.gleam", 215).
-spec encode_invalid_address_struct(invalid_address()) -> gleam@json:json().
encode_invalid_address_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 224).
-spec encode_invalid_address_struct_top(invalid_address()) -> gleam@json:json().
encode_invalid_address_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 233).
-spec decode_invalid_address_struct() -> gleam@dynamic@decode:decoder(invalid_address()).
decode_invalid_address_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success({invalid_address, Message})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 247).
-spec invalid_security_default() -> invalid_security().
invalid_security_default() ->
    {invalid_security, none}.

-file("src/aws/services/sqs.gleam", 251).
-spec encode_invalid_security_struct(invalid_security()) -> gleam@json:json().
encode_invalid_security_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 260).
-spec encode_invalid_security_struct_top(invalid_security()) -> gleam@json:json().
encode_invalid_security_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 269).
-spec decode_invalid_security_struct() -> gleam@dynamic@decode:decoder(invalid_security()).
decode_invalid_security_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success({invalid_security, Message})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 283).
-spec over_limit_default() -> over_limit().
over_limit_default() ->
    {over_limit, none}.

-file("src/aws/services/sqs.gleam", 287).
-spec encode_over_limit_struct(over_limit()) -> gleam@json:json().
encode_over_limit_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 296).
-spec encode_over_limit_struct_top(over_limit()) -> gleam@json:json().
encode_over_limit_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 305).
-spec decode_over_limit_struct() -> gleam@dynamic@decode:decoder(over_limit()).
decode_over_limit_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success({over_limit, Message})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 319).
-spec queue_does_not_exist_default() -> queue_does_not_exist().
queue_does_not_exist_default() ->
    {queue_does_not_exist, none}.

-file("src/aws/services/sqs.gleam", 323).
-spec encode_queue_does_not_exist_struct(queue_does_not_exist()) -> gleam@json:json().
encode_queue_does_not_exist_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 334).
-spec encode_queue_does_not_exist_struct_top(queue_does_not_exist()) -> gleam@json:json().
encode_queue_does_not_exist_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 345).
-spec decode_queue_does_not_exist_struct() -> gleam@dynamic@decode:decoder(queue_does_not_exist()).
decode_queue_does_not_exist_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {queue_does_not_exist, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 359).
-spec request_throttled_default() -> request_throttled().
request_throttled_default() ->
    {request_throttled, none}.

-file("src/aws/services/sqs.gleam", 363).
-spec encode_request_throttled_struct(request_throttled()) -> gleam@json:json().
encode_request_throttled_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 372).
-spec encode_request_throttled_struct_top(request_throttled()) -> gleam@json:json().
encode_request_throttled_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 383).
-spec decode_request_throttled_struct() -> gleam@dynamic@decode:decoder(request_throttled()).
decode_request_throttled_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success({request_throttled, Message})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 397).
-spec unsupported_operation_default() -> unsupported_operation().
unsupported_operation_default() ->
    {unsupported_operation, none}.

-file("src/aws/services/sqs.gleam", 401).
-spec encode_unsupported_operation_struct(unsupported_operation()) -> gleam@json:json().
encode_unsupported_operation_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 412).
-spec encode_unsupported_operation_struct_top(unsupported_operation()) -> gleam@json:json().
encode_unsupported_operation_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 423).
-spec decode_unsupported_operation_struct() -> gleam@dynamic@decode:decoder(unsupported_operation()).
decode_unsupported_operation_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {unsupported_operation, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 439).
-spec cancel_message_move_task_request_default(binary()) -> cancel_message_move_task_request().
cancel_message_move_task_request_default(Task_handle) ->
    {cancel_message_move_task_request, Task_handle}.

-file("src/aws/services/sqs.gleam", 445).
-spec encode_cancel_message_move_task_request_struct(
    cancel_message_move_task_request()
) -> gleam@json:json().
encode_cancel_message_move_task_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"TaskHandle"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 456).
-spec encode_cancel_message_move_task_request_struct_top(
    cancel_message_move_task_request()
) -> gleam@json:json().
encode_cancel_message_move_task_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"TaskHandle"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 467).
-spec decode_cancel_message_move_task_request_struct() -> gleam@dynamic@decode:decoder(cancel_message_move_task_request()).
decode_cancel_message_move_task_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"TaskHandle"/utf8>>,
                {decoder, fun gleam@dynamic@decode:decode_string/1},
                fun(Task_handle) ->
                    gleam@dynamic@decode:success(
                        {cancel_message_move_task_request, Task_handle}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 481).
-spec cancel_message_move_task_result_default() -> cancel_message_move_task_result().
cancel_message_move_task_result_default() ->
    {cancel_message_move_task_result, none}.

-file("src/aws/services/sqs.gleam", 485).
-spec encode_cancel_message_move_task_result_struct(
    cancel_message_move_task_result()
) -> gleam@json:json().
encode_cancel_message_move_task_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"ApproximateNumberOfMessagesMoved"/utf8>>, gleam@json:int(V)} |
                Pairs];

        none ->
            [{<<"ApproximateNumberOfMessagesMoved"/utf8>>, gleam@json:int(0)} |
                Pairs]
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 499).
-spec encode_cancel_message_move_task_result_struct_top(
    cancel_message_move_task_result()
) -> gleam@json:json().
encode_cancel_message_move_task_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"ApproximateNumberOfMessagesMoved"/utf8>>, gleam@json:int(V)} |
                Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 513).
-spec decode_cancel_message_move_task_result_struct() -> gleam@dynamic@decode:decoder(cancel_message_move_task_result()).
decode_cancel_message_move_task_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"ApproximateNumberOfMessagesMoved"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_int/1}
                ),
                fun(Approximate_number_of_messages_moved) ->
                    gleam@dynamic@decode:success(
                        {cancel_message_move_task_result,
                            Approximate_number_of_messages_moved}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 531).
-spec resource_not_found_exception_default() -> resource_not_found_exception().
resource_not_found_exception_default() ->
    {resource_not_found_exception, none}.

-file("src/aws/services/sqs.gleam", 535).
-spec encode_resource_not_found_exception_struct(resource_not_found_exception()) -> gleam@json:json().
encode_resource_not_found_exception_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 546).
-spec encode_resource_not_found_exception_struct_top(
    resource_not_found_exception()
) -> gleam@json:json().
encode_resource_not_found_exception_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 557).
-spec decode_resource_not_found_exception_struct() -> gleam@dynamic@decode:decoder(resource_not_found_exception()).
decode_resource_not_found_exception_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {resource_not_found_exception, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 577).
-spec change_message_visibility_request_default(binary(), binary(), integer()) -> change_message_visibility_request().
change_message_visibility_request_default(
    Queue_url,
    Receipt_handle,
    Visibility_timeout
) ->
    {change_message_visibility_request,
        Queue_url,
        Receipt_handle,
        Visibility_timeout}.

-file("src/aws/services/sqs.gleam", 589).
-spec encode_change_message_visibility_request_struct(
    change_message_visibility_request()
) -> gleam@json:json().
encode_change_message_visibility_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"ReceiptHandle"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"VisibilityTimeout"/utf8>>, gleam@json:int(V@2)} | Pairs@2]
    end,
    gleam@json:object(Pairs@3).

-file("src/aws/services/sqs.gleam", 608).
-spec encode_change_message_visibility_request_struct_top(
    change_message_visibility_request()
) -> gleam@json:json().
encode_change_message_visibility_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"ReceiptHandle"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"VisibilityTimeout"/utf8>>, gleam@json:int(V@2)} | Pairs@2]
    end,
    gleam@json:object(Pairs@3).

-file("src/aws/services/sqs.gleam", 627).
-spec decode_change_message_visibility_request_struct() -> gleam@dynamic@decode:decoder(change_message_visibility_request()).
decode_change_message_visibility_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"QueueUrl"/utf8>>,
                {decoder, fun gleam@dynamic@decode:decode_string/1},
                fun(Queue_url) ->
                    gleam@dynamic@decode:field(
                        <<"ReceiptHandle"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Receipt_handle) ->
                            gleam@dynamic@decode:field(
                                <<"VisibilityTimeout"/utf8>>,
                                {decoder, fun gleam@dynamic@decode:decode_int/1},
                                fun(Visibility_timeout) ->
                                    gleam@dynamic@decode:success(
                                        {change_message_visibility_request,
                                            Queue_url,
                                            Receipt_handle,
                                            Visibility_timeout}
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 645).
-spec message_not_inflight_default() -> message_not_inflight().
message_not_inflight_default() ->
    message_not_inflight.

-file("src/aws/services/sqs.gleam", 649).
-spec encode_message_not_inflight_struct(message_not_inflight()) -> gleam@json:json().
encode_message_not_inflight_struct(_) ->
    gleam@json:object([]).

-file("src/aws/services/sqs.gleam", 653).
-spec encode_message_not_inflight_struct_top(message_not_inflight()) -> gleam@json:json().
encode_message_not_inflight_struct_top(_) ->
    gleam@json:object([]).

-file("src/aws/services/sqs.gleam", 659).
-spec decode_message_not_inflight_struct() -> gleam@dynamic@decode:decoder(message_not_inflight()).
decode_message_not_inflight_struct() ->
    gleam@dynamic@decode:success(message_not_inflight).

-file("src/aws/services/sqs.gleam", 669).
-spec receipt_handle_is_invalid_default() -> receipt_handle_is_invalid().
receipt_handle_is_invalid_default() ->
    {receipt_handle_is_invalid, none}.

-file("src/aws/services/sqs.gleam", 673).
-spec encode_receipt_handle_is_invalid_struct(receipt_handle_is_invalid()) -> gleam@json:json().
encode_receipt_handle_is_invalid_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 684).
-spec encode_receipt_handle_is_invalid_struct_top(receipt_handle_is_invalid()) -> gleam@json:json().
encode_receipt_handle_is_invalid_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 695).
-spec decode_receipt_handle_is_invalid_struct() -> gleam@dynamic@decode:decoder(receipt_handle_is_invalid()).
decode_receipt_handle_is_invalid_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {receipt_handle_is_invalid, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 714).
-spec change_message_visibility_batch_request_default(
    list(change_message_visibility_batch_request_entry()),
    binary()
) -> change_message_visibility_batch_request().
change_message_visibility_batch_request_default(Entries, Queue_url) ->
    {change_message_visibility_batch_request, Entries, Queue_url}.

-file("src/aws/services/sqs.gleam", 807).
-spec encode_change_message_visibility_batch_request_entry_struct(
    change_message_visibility_batch_request_entry()
) -> gleam@json:json().
encode_change_message_visibility_batch_request_entry_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Id"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"ReceiptHandle"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"VisibilityTimeout"/utf8>>, gleam@json:int(V@2)} | Pairs@2];

        none ->
            Pairs@2
    end,
    gleam@json:object(Pairs@3).

-file("src/aws/services/sqs.gleam", 721).
-spec encode_change_message_visibility_batch_request_struct(
    change_message_visibility_batch_request()
) -> gleam@json:json().
encode_change_message_visibility_batch_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Entries"/utf8>>,
                (fun(Xs) ->
                    gleam@json:array(
                        Xs,
                        fun encode_change_message_visibility_batch_request_entry_struct/1
                    )
                end)(V)} |
            Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 747).
-spec encode_change_message_visibility_batch_request_struct_top(
    change_message_visibility_batch_request()
) -> gleam@json:json().
encode_change_message_visibility_batch_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Entries"/utf8>>,
                (fun(Xs) ->
                    gleam@json:array(
                        Xs,
                        fun encode_change_message_visibility_batch_request_entry_struct/1
                    )
                end)(V)} |
            Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 845).
-spec decode_change_message_visibility_batch_request_entry_struct() -> gleam@dynamic@decode:decoder(change_message_visibility_batch_request_entry()).
decode_change_message_visibility_batch_request_entry_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"Id"/utf8>>,
                {decoder, fun gleam@dynamic@decode:decode_string/1},
                fun(Id) ->
                    gleam@dynamic@decode:field(
                        <<"ReceiptHandle"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Receipt_handle) ->
                            gleam@dynamic@decode:optional_field(
                                <<"VisibilityTimeout"/utf8>>,
                                none,
                                gleam@dynamic@decode:optional(
                                    {decoder,
                                        fun gleam@dynamic@decode:decode_int/1}
                                ),
                                fun(Visibility_timeout) ->
                                    gleam@dynamic@decode:success(
                                        {change_message_visibility_batch_request_entry,
                                            Id,
                                            Receipt_handle,
                                            Visibility_timeout}
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 773).
-spec decode_change_message_visibility_batch_request_struct() -> gleam@dynamic@decode:decoder(change_message_visibility_batch_request()).
decode_change_message_visibility_batch_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"Entries"/utf8>>,
                gleam@dynamic@decode:list(
                    decode_change_message_visibility_batch_request_entry_struct(
                        
                    )
                ),
                fun(Entries) ->
                    gleam@dynamic@decode:field(
                        <<"QueueUrl"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Queue_url) ->
                            gleam@dynamic@decode:success(
                                {change_message_visibility_batch_request,
                                    Entries,
                                    Queue_url}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 796).
-spec change_message_visibility_batch_request_entry_default(binary(), binary()) -> change_message_visibility_batch_request_entry().
change_message_visibility_batch_request_entry_default(Id, Receipt_handle) ->
    {change_message_visibility_batch_request_entry, Id, Receipt_handle, none}.

-file("src/aws/services/sqs.gleam", 826).
-spec encode_change_message_visibility_batch_request_entry_struct_top(
    change_message_visibility_batch_request_entry()
) -> gleam@json:json().
encode_change_message_visibility_batch_request_entry_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Id"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"ReceiptHandle"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"VisibilityTimeout"/utf8>>, gleam@json:int(V@2)} | Pairs@2];

        none ->
            Pairs@2
    end,
    gleam@json:object(Pairs@3).

-file("src/aws/services/sqs.gleam", 870).
-spec change_message_visibility_batch_result_default() -> change_message_visibility_batch_result().
change_message_visibility_batch_result_default() ->
    {change_message_visibility_batch_result, none, none}.

-file("src/aws/services/sqs.gleam", 1067).
-spec encode_change_message_visibility_batch_result_entry_struct(
    change_message_visibility_batch_result_entry()
) -> gleam@json:json().
encode_change_message_visibility_batch_result_entry_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Id"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 981).
-spec encode_batch_result_error_entry_struct(batch_result_error_entry()) -> gleam@json:json().
encode_batch_result_error_entry_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Code"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"Id"/utf8>>, gleam@json:string(V@1)} | Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"Message"/utf8>>, gleam@json:string(V@2)} | Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"SenderFault"/utf8>>, gleam@json:bool(V@3)} | Pairs@3];

        none ->
            [{<<"SenderFault"/utf8>>, gleam@json:bool(false)} | Pairs@3]
    end,
    gleam@json:object(Pairs@4).

-file("src/aws/services/sqs.gleam", 877).
-spec encode_change_message_visibility_batch_result_struct(
    change_message_visibility_batch_result()
) -> gleam@json:json().
encode_change_message_visibility_batch_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Failed"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun encode_batch_result_error_entry_struct/1
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"Successful"/utf8>>,
                    (fun(Xs@1) ->
                        gleam@json:array(
                            Xs@1,
                            fun encode_change_message_visibility_batch_result_entry_struct/1
                        )
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 909).
-spec encode_change_message_visibility_batch_result_struct_top(
    change_message_visibility_batch_result()
) -> gleam@json:json().
encode_change_message_visibility_batch_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Failed"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun encode_batch_result_error_entry_struct/1
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"Successful"/utf8>>,
                    (fun(Xs@1) ->
                        gleam@json:array(
                            Xs@1,
                            fun encode_change_message_visibility_batch_result_entry_struct/1
                        )
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 1089).
-spec decode_change_message_visibility_batch_result_entry_struct() -> gleam@dynamic@decode:decoder(change_message_visibility_batch_result_entry()).
decode_change_message_visibility_batch_result_entry_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Id"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Id) ->
                    gleam@dynamic@decode:success(
                        {change_message_visibility_batch_result_entry, Id}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1027).
-spec decode_batch_result_error_entry_struct() -> gleam@dynamic@decode:decoder(batch_result_error_entry()).
decode_batch_result_error_entry_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Code"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Code) ->
                    gleam@dynamic@decode:optional_field(
                        <<"Id"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            {decoder, fun gleam@dynamic@decode:decode_string/1}
                        ),
                        fun(Id) ->
                            gleam@dynamic@decode:optional_field(
                                <<"Message"/utf8>>,
                                none,
                                gleam@dynamic@decode:optional(
                                    {decoder,
                                        fun gleam@dynamic@decode:decode_string/1}
                                ),
                                fun(Message) ->
                                    gleam@dynamic@decode:optional_field(
                                        <<"SenderFault"/utf8>>,
                                        none,
                                        gleam@dynamic@decode:optional(
                                            {decoder,
                                                fun gleam@dynamic@decode:decode_bool/1}
                                        ),
                                        fun(Sender_fault) ->
                                            gleam@dynamic@decode:success(
                                                {batch_result_error_entry,
                                                    Code,
                                                    Id,
                                                    Message,
                                                    Sender_fault}
                                            )
                                        end
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 941).
-spec decode_change_message_visibility_batch_result_struct() -> gleam@dynamic@decode:decoder(change_message_visibility_batch_result()).
decode_change_message_visibility_batch_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Failed"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:list(
                        decode_batch_result_error_entry_struct()
                    )
                ),
                fun(Failed) ->
                    gleam@dynamic@decode:optional_field(
                        <<"Successful"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            gleam@dynamic@decode:list(
                                decode_change_message_visibility_batch_result_entry_struct(
                                    
                                )
                            )
                        ),
                        fun(Successful) ->
                            gleam@dynamic@decode:success(
                                {change_message_visibility_batch_result,
                                    Failed,
                                    Successful}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 972).
-spec batch_result_error_entry_default() -> batch_result_error_entry().
batch_result_error_entry_default() ->
    {batch_result_error_entry, none, none, none, none}.

-file("src/aws/services/sqs.gleam", 1004).
-spec encode_batch_result_error_entry_struct_top(batch_result_error_entry()) -> gleam@json:json().
encode_batch_result_error_entry_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Code"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"Id"/utf8>>, gleam@json:string(V@1)} | Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"Message"/utf8>>, gleam@json:string(V@2)} | Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"SenderFault"/utf8>>, gleam@json:bool(V@3)} | Pairs@3];

        none ->
            Pairs@3
    end,
    gleam@json:object(Pairs@4).

-file("src/aws/services/sqs.gleam", 1063).
-spec change_message_visibility_batch_result_entry_default() -> change_message_visibility_batch_result_entry().
change_message_visibility_batch_result_entry_default() ->
    {change_message_visibility_batch_result_entry, none}.

-file("src/aws/services/sqs.gleam", 1078).
-spec encode_change_message_visibility_batch_result_entry_struct_top(
    change_message_visibility_batch_result_entry()
) -> gleam@json:json().
encode_change_message_visibility_batch_result_entry_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Id"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1105).
-spec batch_entry_ids_not_distinct_default() -> batch_entry_ids_not_distinct().
batch_entry_ids_not_distinct_default() ->
    {batch_entry_ids_not_distinct, none}.

-file("src/aws/services/sqs.gleam", 1109).
-spec encode_batch_entry_ids_not_distinct_struct(batch_entry_ids_not_distinct()) -> gleam@json:json().
encode_batch_entry_ids_not_distinct_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1120).
-spec encode_batch_entry_ids_not_distinct_struct_top(
    batch_entry_ids_not_distinct()
) -> gleam@json:json().
encode_batch_entry_ids_not_distinct_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1131).
-spec decode_batch_entry_ids_not_distinct_struct() -> gleam@dynamic@decode:decoder(batch_entry_ids_not_distinct()).
decode_batch_entry_ids_not_distinct_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {batch_entry_ids_not_distinct, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1147).
-spec empty_batch_request_default() -> empty_batch_request().
empty_batch_request_default() ->
    {empty_batch_request, none}.

-file("src/aws/services/sqs.gleam", 1151).
-spec encode_empty_batch_request_struct(empty_batch_request()) -> gleam@json:json().
encode_empty_batch_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1162).
-spec encode_empty_batch_request_struct_top(empty_batch_request()) -> gleam@json:json().
encode_empty_batch_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1173).
-spec decode_empty_batch_request_struct() -> gleam@dynamic@decode:decoder(empty_batch_request()).
decode_empty_batch_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success({empty_batch_request, Message})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1187).
-spec invalid_batch_entry_id_default() -> invalid_batch_entry_id().
invalid_batch_entry_id_default() ->
    {invalid_batch_entry_id, none}.

-file("src/aws/services/sqs.gleam", 1191).
-spec encode_invalid_batch_entry_id_struct(invalid_batch_entry_id()) -> gleam@json:json().
encode_invalid_batch_entry_id_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1202).
-spec encode_invalid_batch_entry_id_struct_top(invalid_batch_entry_id()) -> gleam@json:json().
encode_invalid_batch_entry_id_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1213).
-spec decode_invalid_batch_entry_id_struct() -> gleam@dynamic@decode:decoder(invalid_batch_entry_id()).
decode_invalid_batch_entry_id_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {invalid_batch_entry_id, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1229).
-spec too_many_entries_in_batch_request_default() -> too_many_entries_in_batch_request().
too_many_entries_in_batch_request_default() ->
    {too_many_entries_in_batch_request, none}.

-file("src/aws/services/sqs.gleam", 1233).
-spec encode_too_many_entries_in_batch_request_struct(
    too_many_entries_in_batch_request()
) -> gleam@json:json().
encode_too_many_entries_in_batch_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1244).
-spec encode_too_many_entries_in_batch_request_struct_top(
    too_many_entries_in_batch_request()
) -> gleam@json:json().
encode_too_many_entries_in_batch_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1255).
-spec decode_too_many_entries_in_batch_request_struct() -> gleam@dynamic@decode:decoder(too_many_entries_in_batch_request()).
decode_too_many_entries_in_batch_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {too_many_entries_in_batch_request, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1275).
-spec create_queue_request_default(binary()) -> create_queue_request().
create_queue_request_default(Queue_name) ->
    {create_queue_request, none, Queue_name, none}.

-file("src/aws/services/sqs.gleam", 1285).
-spec encode_create_queue_request_struct(create_queue_request()) -> gleam@json:json().
encode_create_queue_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Attributes"/utf8>>,
                    (fun(D) ->
                        gleam@json:object(
                            begin
                                _pipe = maps:to_list(D),
                                gleam@list:map(
                                    _pipe,
                                    fun(Pair) ->
                                        {erlang:element(1, Pair),
                                            gleam@json:string(
                                                erlang:element(2, Pair)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueName"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"tags"/utf8>>,
                    (fun(D@1) ->
                        gleam@json:object(
                            begin
                                _pipe@1 = maps:to_list(D@1),
                                gleam@list:map(
                                    _pipe@1,
                                    fun(Pair@1) ->
                                        {erlang:element(1, Pair@1),
                                            gleam@json:string(
                                                erlang:element(2, Pair@1)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V@2)} |
                Pairs@2];

        none ->
            Pairs@2
    end,
    gleam@json:object(Pairs@3).

-file("src/aws/services/sqs.gleam", 1326).
-spec encode_create_queue_request_struct_top(create_queue_request()) -> gleam@json:json().
encode_create_queue_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Attributes"/utf8>>,
                    (fun(D) ->
                        gleam@json:object(
                            begin
                                _pipe = maps:to_list(D),
                                gleam@list:map(
                                    _pipe,
                                    fun(Pair) ->
                                        {erlang:element(1, Pair),
                                            gleam@json:string(
                                                erlang:element(2, Pair)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueName"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"tags"/utf8>>,
                    (fun(D@1) ->
                        gleam@json:object(
                            begin
                                _pipe@1 = maps:to_list(D@1),
                                gleam@list:map(
                                    _pipe@1,
                                    fun(Pair@1) ->
                                        {erlang:element(1, Pair@1),
                                            gleam@json:string(
                                                erlang:element(2, Pair@1)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V@2)} |
                Pairs@2];

        none ->
            Pairs@2
    end,
    gleam@json:object(Pairs@3).

-file("src/aws/services/sqs.gleam", 1367).
-spec decode_create_queue_request_struct() -> gleam@dynamic@decode:decoder(create_queue_request()).
decode_create_queue_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Attributes"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:dict(
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        {decoder, fun gleam@dynamic@decode:decode_string/1}
                    )
                ),
                fun(Attributes) ->
                    gleam@dynamic@decode:field(
                        <<"QueueName"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Queue_name) ->
                            gleam@dynamic@decode:optional_field(
                                <<"tags"/utf8>>,
                                none,
                                gleam@dynamic@decode:optional(
                                    gleam@dynamic@decode:dict(
                                        {decoder,
                                            fun gleam@dynamic@decode:decode_string/1},
                                        {decoder,
                                            fun gleam@dynamic@decode:decode_string/1}
                                    )
                                ),
                                fun(Tags) ->
                                    gleam@dynamic@decode:success(
                                        {create_queue_request,
                                            Attributes,
                                            Queue_name,
                                            Tags}
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1414).
-spec encode_queue_attribute_name_enum(queue_attribute_name()) -> gleam@json:json().
encode_queue_attribute_name_enum(V) ->
    case V of
        queue_attribute_name_all ->
            gleam@json:string(<<"All"/utf8>>);

        queue_attribute_name_approximatenumberofmessages ->
            gleam@json:string(<<"ApproximateNumberOfMessages"/utf8>>);

        queue_attribute_name_approximatenumberofmessagesdelayed ->
            gleam@json:string(<<"ApproximateNumberOfMessagesDelayed"/utf8>>);

        queue_attribute_name_approximatenumberofmessagesnotvisible ->
            gleam@json:string(<<"ApproximateNumberOfMessagesNotVisible"/utf8>>);

        queue_attribute_name_contentbaseddeduplication ->
            gleam@json:string(<<"ContentBasedDeduplication"/utf8>>);

        queue_attribute_name_createdtimestamp ->
            gleam@json:string(<<"CreatedTimestamp"/utf8>>);

        queue_attribute_name_deduplicationscope ->
            gleam@json:string(<<"DeduplicationScope"/utf8>>);

        queue_attribute_name_delayseconds ->
            gleam@json:string(<<"DelaySeconds"/utf8>>);

        queue_attribute_name_fifoqueue ->
            gleam@json:string(<<"FifoQueue"/utf8>>);

        queue_attribute_name_fifothroughputlimit ->
            gleam@json:string(<<"FifoThroughputLimit"/utf8>>);

        queue_attribute_name_kmsdatakeyreuseperiodseconds ->
            gleam@json:string(<<"KmsDataKeyReusePeriodSeconds"/utf8>>);

        queue_attribute_name_kmsmasterkeyid ->
            gleam@json:string(<<"KmsMasterKeyId"/utf8>>);

        queue_attribute_name_lastmodifiedtimestamp ->
            gleam@json:string(<<"LastModifiedTimestamp"/utf8>>);

        queue_attribute_name_maximummessagesize ->
            gleam@json:string(<<"MaximumMessageSize"/utf8>>);

        queue_attribute_name_messageretentionperiod ->
            gleam@json:string(<<"MessageRetentionPeriod"/utf8>>);

        queue_attribute_name_policy ->
            gleam@json:string(<<"Policy"/utf8>>);

        queue_attribute_name_queuearn ->
            gleam@json:string(<<"QueueArn"/utf8>>);

        queue_attribute_name_receivemessagewaittimeseconds ->
            gleam@json:string(<<"ReceiveMessageWaitTimeSeconds"/utf8>>);

        queue_attribute_name_redriveallowpolicy ->
            gleam@json:string(<<"RedriveAllowPolicy"/utf8>>);

        queue_attribute_name_redrivepolicy ->
            gleam@json:string(<<"RedrivePolicy"/utf8>>);

        queue_attribute_name_sqsmanagedsseenabled ->
            gleam@json:string(<<"SqsManagedSseEnabled"/utf8>>);

        queue_attribute_name_visibilitytimeout ->
            gleam@json:string(<<"VisibilityTimeout"/utf8>>)
    end.

-file("src/aws/services/sqs.gleam", 1450).
-spec decode_queue_attribute_name_enum() -> gleam@dynamic@decode:decoder(queue_attribute_name()).
decode_queue_attribute_name_enum() ->
    gleam@dynamic@decode:then(
        {decoder, fun gleam@dynamic@decode:decode_string/1},
        fun(S) -> case S of
                <<"All"/utf8>> ->
                    gleam@dynamic@decode:success(queue_attribute_name_all);

                <<"ApproximateNumberOfMessages"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_approximatenumberofmessages
                    );

                <<"ApproximateNumberOfMessagesDelayed"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_approximatenumberofmessagesdelayed
                    );

                <<"ApproximateNumberOfMessagesNotVisible"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_approximatenumberofmessagesnotvisible
                    );

                <<"ContentBasedDeduplication"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_contentbaseddeduplication
                    );

                <<"CreatedTimestamp"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_createdtimestamp
                    );

                <<"DeduplicationScope"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_deduplicationscope
                    );

                <<"DelaySeconds"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_delayseconds
                    );

                <<"FifoQueue"/utf8>> ->
                    gleam@dynamic@decode:success(queue_attribute_name_fifoqueue);

                <<"FifoThroughputLimit"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_fifothroughputlimit
                    );

                <<"KmsDataKeyReusePeriodSeconds"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_kmsdatakeyreuseperiodseconds
                    );

                <<"KmsMasterKeyId"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_kmsmasterkeyid
                    );

                <<"LastModifiedTimestamp"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_lastmodifiedtimestamp
                    );

                <<"MaximumMessageSize"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_maximummessagesize
                    );

                <<"MessageRetentionPeriod"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_messageretentionperiod
                    );

                <<"Policy"/utf8>> ->
                    gleam@dynamic@decode:success(queue_attribute_name_policy);

                <<"QueueArn"/utf8>> ->
                    gleam@dynamic@decode:success(queue_attribute_name_queuearn);

                <<"ReceiveMessageWaitTimeSeconds"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_receivemessagewaittimeseconds
                    );

                <<"RedriveAllowPolicy"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_redriveallowpolicy
                    );

                <<"RedrivePolicy"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_redrivepolicy
                    );

                <<"SqsManagedSseEnabled"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_sqsmanagedsseenabled
                    );

                <<"VisibilityTimeout"/utf8>> ->
                    gleam@dynamic@decode:success(
                        queue_attribute_name_visibilitytimeout
                    );

                _ ->
                    gleam@dynamic@decode:failure(
                        queue_attribute_name_all,
                        <<"unknown enum value"/utf8>>
                    )
            end end
    ).

-file("src/aws/services/sqs.gleam", 1497).
-spec create_queue_result_default() -> create_queue_result().
create_queue_result_default() ->
    {create_queue_result, none}.

-file("src/aws/services/sqs.gleam", 1501).
-spec encode_create_queue_result_struct(create_queue_result()) -> gleam@json:json().
encode_create_queue_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1512).
-spec encode_create_queue_result_struct_top(create_queue_result()) -> gleam@json:json().
encode_create_queue_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1523).
-spec decode_create_queue_result_struct() -> gleam@dynamic@decode:decoder(create_queue_result()).
decode_create_queue_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"QueueUrl"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Queue_url) ->
                    gleam@dynamic@decode:success(
                        {create_queue_result, Queue_url}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1537).
-spec invalid_attribute_name_default() -> invalid_attribute_name().
invalid_attribute_name_default() ->
    {invalid_attribute_name, none}.

-file("src/aws/services/sqs.gleam", 1541).
-spec encode_invalid_attribute_name_struct(invalid_attribute_name()) -> gleam@json:json().
encode_invalid_attribute_name_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1552).
-spec encode_invalid_attribute_name_struct_top(invalid_attribute_name()) -> gleam@json:json().
encode_invalid_attribute_name_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1563).
-spec decode_invalid_attribute_name_struct() -> gleam@dynamic@decode:decoder(invalid_attribute_name()).
decode_invalid_attribute_name_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {invalid_attribute_name, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1579).
-spec invalid_attribute_value_default() -> invalid_attribute_value().
invalid_attribute_value_default() ->
    {invalid_attribute_value, none}.

-file("src/aws/services/sqs.gleam", 1583).
-spec encode_invalid_attribute_value_struct(invalid_attribute_value()) -> gleam@json:json().
encode_invalid_attribute_value_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1594).
-spec encode_invalid_attribute_value_struct_top(invalid_attribute_value()) -> gleam@json:json().
encode_invalid_attribute_value_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1605).
-spec decode_invalid_attribute_value_struct() -> gleam@dynamic@decode:decoder(invalid_attribute_value()).
decode_invalid_attribute_value_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {invalid_attribute_value, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1621).
-spec queue_deleted_recently_default() -> queue_deleted_recently().
queue_deleted_recently_default() ->
    {queue_deleted_recently, none}.

-file("src/aws/services/sqs.gleam", 1625).
-spec encode_queue_deleted_recently_struct(queue_deleted_recently()) -> gleam@json:json().
encode_queue_deleted_recently_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1636).
-spec encode_queue_deleted_recently_struct_top(queue_deleted_recently()) -> gleam@json:json().
encode_queue_deleted_recently_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1647).
-spec decode_queue_deleted_recently_struct() -> gleam@dynamic@decode:decoder(queue_deleted_recently()).
decode_queue_deleted_recently_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {queue_deleted_recently, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1663).
-spec queue_name_exists_default() -> queue_name_exists().
queue_name_exists_default() ->
    {queue_name_exists, none}.

-file("src/aws/services/sqs.gleam", 1667).
-spec encode_queue_name_exists_struct(queue_name_exists()) -> gleam@json:json().
encode_queue_name_exists_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1676).
-spec encode_queue_name_exists_struct_top(queue_name_exists()) -> gleam@json:json().
encode_queue_name_exists_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1687).
-spec decode_queue_name_exists_struct() -> gleam@dynamic@decode:decoder(queue_name_exists()).
decode_queue_name_exists_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success({queue_name_exists, Message})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1701).
-spec delete_message_request_default(binary(), binary()) -> delete_message_request().
delete_message_request_default(Queue_url, Receipt_handle) ->
    {delete_message_request, Queue_url, Receipt_handle}.

-file("src/aws/services/sqs.gleam", 1708).
-spec encode_delete_message_request_struct(delete_message_request()) -> gleam@json:json().
encode_delete_message_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"ReceiptHandle"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 1723).
-spec encode_delete_message_request_struct_top(delete_message_request()) -> gleam@json:json().
encode_delete_message_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"ReceiptHandle"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 1738).
-spec decode_delete_message_request_struct() -> gleam@dynamic@decode:decoder(delete_message_request()).
decode_delete_message_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"QueueUrl"/utf8>>,
                {decoder, fun gleam@dynamic@decode:decode_string/1},
                fun(Queue_url) ->
                    gleam@dynamic@decode:field(
                        <<"ReceiptHandle"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Receipt_handle) ->
                            gleam@dynamic@decode:success(
                                {delete_message_request,
                                    Queue_url,
                                    Receipt_handle}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1754).
-spec invalid_id_format_default() -> invalid_id_format().
invalid_id_format_default() ->
    invalid_id_format.

-file("src/aws/services/sqs.gleam", 1758).
-spec encode_invalid_id_format_struct(invalid_id_format()) -> gleam@json:json().
encode_invalid_id_format_struct(_) ->
    gleam@json:object([]).

-file("src/aws/services/sqs.gleam", 1762).
-spec encode_invalid_id_format_struct_top(invalid_id_format()) -> gleam@json:json().
encode_invalid_id_format_struct_top(_) ->
    gleam@json:object([]).

-file("src/aws/services/sqs.gleam", 1766).
-spec decode_invalid_id_format_struct() -> gleam@dynamic@decode:decoder(invalid_id_format()).
decode_invalid_id_format_struct() ->
    gleam@dynamic@decode:success(invalid_id_format).

-file("src/aws/services/sqs.gleam", 1777).
-spec delete_message_batch_request_default(
    list(delete_message_batch_request_entry()),
    binary()
) -> delete_message_batch_request().
delete_message_batch_request_default(Entries, Queue_url) ->
    {delete_message_batch_request, Entries, Queue_url}.

-file("src/aws/services/sqs.gleam", 1856).
-spec encode_delete_message_batch_request_entry_struct(
    delete_message_batch_request_entry()
) -> gleam@json:json().
encode_delete_message_batch_request_entry_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Id"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"ReceiptHandle"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 1784).
-spec encode_delete_message_batch_request_struct(delete_message_batch_request()) -> gleam@json:json().
encode_delete_message_batch_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Entries"/utf8>>,
                (fun(Xs) ->
                    gleam@json:array(
                        Xs,
                        fun encode_delete_message_batch_request_entry_struct/1
                    )
                end)(V)} |
            Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 1807).
-spec encode_delete_message_batch_request_struct_top(
    delete_message_batch_request()
) -> gleam@json:json().
encode_delete_message_batch_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Entries"/utf8>>,
                (fun(Xs) ->
                    gleam@json:array(
                        Xs,
                        fun encode_delete_message_batch_request_entry_struct/1
                    )
                end)(V)} |
            Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 1886).
-spec decode_delete_message_batch_request_entry_struct() -> gleam@dynamic@decode:decoder(delete_message_batch_request_entry()).
decode_delete_message_batch_request_entry_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"Id"/utf8>>,
                {decoder, fun gleam@dynamic@decode:decode_string/1},
                fun(Id) ->
                    gleam@dynamic@decode:field(
                        <<"ReceiptHandle"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Receipt_handle) ->
                            gleam@dynamic@decode:success(
                                {delete_message_batch_request_entry,
                                    Id,
                                    Receipt_handle}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1830).
-spec decode_delete_message_batch_request_struct() -> gleam@dynamic@decode:decoder(delete_message_batch_request()).
decode_delete_message_batch_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"Entries"/utf8>>,
                gleam@dynamic@decode:list(
                    decode_delete_message_batch_request_entry_struct()
                ),
                fun(Entries) ->
                    gleam@dynamic@decode:field(
                        <<"QueueUrl"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Queue_url) ->
                            gleam@dynamic@decode:success(
                                {delete_message_batch_request,
                                    Entries,
                                    Queue_url}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1849).
-spec delete_message_batch_request_entry_default(binary(), binary()) -> delete_message_batch_request_entry().
delete_message_batch_request_entry_default(Id, Receipt_handle) ->
    {delete_message_batch_request_entry, Id, Receipt_handle}.

-file("src/aws/services/sqs.gleam", 1871).
-spec encode_delete_message_batch_request_entry_struct_top(
    delete_message_batch_request_entry()
) -> gleam@json:json().
encode_delete_message_batch_request_entry_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Id"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"ReceiptHandle"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 1905).
-spec delete_message_batch_result_default() -> delete_message_batch_result().
delete_message_batch_result_default() ->
    {delete_message_batch_result, none, none}.

-file("src/aws/services/sqs.gleam", 1997).
-spec encode_delete_message_batch_result_entry_struct(
    delete_message_batch_result_entry()
) -> gleam@json:json().
encode_delete_message_batch_result_entry_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Id"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 1909).
-spec encode_delete_message_batch_result_struct(delete_message_batch_result()) -> gleam@json:json().
encode_delete_message_batch_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Failed"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun encode_batch_result_error_entry_struct/1
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"Successful"/utf8>>,
                    (fun(Xs@1) ->
                        gleam@json:array(
                            Xs@1,
                            fun encode_delete_message_batch_result_entry_struct/1
                        )
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 1938).
-spec encode_delete_message_batch_result_struct_top(
    delete_message_batch_result()
) -> gleam@json:json().
encode_delete_message_batch_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Failed"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun encode_batch_result_error_entry_struct/1
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"Successful"/utf8>>,
                    (fun(Xs@1) ->
                        gleam@json:array(
                            Xs@1,
                            fun encode_delete_message_batch_result_entry_struct/1
                        )
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 2019).
-spec decode_delete_message_batch_result_entry_struct() -> gleam@dynamic@decode:decoder(delete_message_batch_result_entry()).
decode_delete_message_batch_result_entry_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Id"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Id) ->
                    gleam@dynamic@decode:success(
                        {delete_message_batch_result_entry, Id}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1967).
-spec decode_delete_message_batch_result_struct() -> gleam@dynamic@decode:decoder(delete_message_batch_result()).
decode_delete_message_batch_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Failed"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:list(
                        decode_batch_result_error_entry_struct()
                    )
                ),
                fun(Failed) ->
                    gleam@dynamic@decode:optional_field(
                        <<"Successful"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            gleam@dynamic@decode:list(
                                decode_delete_message_batch_result_entry_struct(
                                    
                                )
                            )
                        ),
                        fun(Successful) ->
                            gleam@dynamic@decode:success(
                                {delete_message_batch_result,
                                    Failed,
                                    Successful}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 1993).
-spec delete_message_batch_result_entry_default() -> delete_message_batch_result_entry().
delete_message_batch_result_entry_default() ->
    {delete_message_batch_result_entry, none}.

-file("src/aws/services/sqs.gleam", 2008).
-spec encode_delete_message_batch_result_entry_struct_top(
    delete_message_batch_result_entry()
) -> gleam@json:json().
encode_delete_message_batch_result_entry_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Id"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2035).
-spec delete_queue_request_default(binary()) -> delete_queue_request().
delete_queue_request_default(Queue_url) ->
    {delete_queue_request, Queue_url}.

-file("src/aws/services/sqs.gleam", 2041).
-spec encode_delete_queue_request_struct(delete_queue_request()) -> gleam@json:json().
encode_delete_queue_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2052).
-spec encode_delete_queue_request_struct_top(delete_queue_request()) -> gleam@json:json().
encode_delete_queue_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2063).
-spec decode_delete_queue_request_struct() -> gleam@dynamic@decode:decoder(delete_queue_request()).
decode_delete_queue_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"QueueUrl"/utf8>>,
                {decoder, fun gleam@dynamic@decode:decode_string/1},
                fun(Queue_url) ->
                    gleam@dynamic@decode:success(
                        {delete_queue_request, Queue_url}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2078).
-spec get_queue_attributes_request_default(binary()) -> get_queue_attributes_request().
get_queue_attributes_request_default(Queue_url) ->
    {get_queue_attributes_request, none, Queue_url}.

-file("src/aws/services/sqs.gleam", 2084).
-spec encode_get_queue_attributes_request_struct(get_queue_attributes_request()) -> gleam@json:json().
encode_get_queue_attributes_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"AttributeNames"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun encode_queue_attribute_name_enum/1
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 2105).
-spec encode_get_queue_attributes_request_struct_top(
    get_queue_attributes_request()
) -> gleam@json:json().
encode_get_queue_attributes_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"AttributeNames"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun encode_queue_attribute_name_enum/1
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 2126).
-spec decode_get_queue_attributes_request_struct() -> gleam@dynamic@decode:decoder(get_queue_attributes_request()).
decode_get_queue_attributes_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"AttributeNames"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:list(
                        decode_queue_attribute_name_enum()
                    )
                ),
                fun(Attribute_names) ->
                    gleam@dynamic@decode:field(
                        <<"QueueUrl"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Queue_url) ->
                            gleam@dynamic@decode:success(
                                {get_queue_attributes_request,
                                    Attribute_names,
                                    Queue_url}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2146).
-spec get_queue_attributes_result_default() -> get_queue_attributes_result().
get_queue_attributes_result_default() ->
    {get_queue_attributes_result, none}.

-file("src/aws/services/sqs.gleam", 2150).
-spec encode_get_queue_attributes_result_struct(get_queue_attributes_result()) -> gleam@json:json().
encode_get_queue_attributes_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Attributes"/utf8>>,
                    (fun(D) ->
                        gleam@json:object(
                            begin
                                _pipe = maps:to_list(D),
                                gleam@list:map(
                                    _pipe,
                                    fun(Pair) ->
                                        {erlang:element(1, Pair),
                                            gleam@json:string(
                                                erlang:element(2, Pair)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2172).
-spec encode_get_queue_attributes_result_struct_top(
    get_queue_attributes_result()
) -> gleam@json:json().
encode_get_queue_attributes_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Attributes"/utf8>>,
                    (fun(D) ->
                        gleam@json:object(
                            begin
                                _pipe = maps:to_list(D),
                                gleam@list:map(
                                    _pipe,
                                    fun(Pair) ->
                                        {erlang:element(1, Pair),
                                            gleam@json:string(
                                                erlang:element(2, Pair)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2194).
-spec decode_get_queue_attributes_result_struct() -> gleam@dynamic@decode:decoder(get_queue_attributes_result()).
decode_get_queue_attributes_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Attributes"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:dict(
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        {decoder, fun gleam@dynamic@decode:decode_string/1}
                    )
                ),
                fun(Attributes) ->
                    gleam@dynamic@decode:success(
                        {get_queue_attributes_result, Attributes}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2213).
-spec get_queue_url_request_default(binary()) -> get_queue_url_request().
get_queue_url_request_default(Queue_name) ->
    {get_queue_url_request, Queue_name, none}.

-file("src/aws/services/sqs.gleam", 2222).
-spec encode_get_queue_url_request_struct(get_queue_url_request()) -> gleam@json:json().
encode_get_queue_url_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueName"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"QueueOwnerAWSAccountId"/utf8>>, gleam@json:string(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 2237).
-spec encode_get_queue_url_request_struct_top(get_queue_url_request()) -> gleam@json:json().
encode_get_queue_url_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueName"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"QueueOwnerAWSAccountId"/utf8>>, gleam@json:string(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 2252).
-spec decode_get_queue_url_request_struct() -> gleam@dynamic@decode:decoder(get_queue_url_request()).
decode_get_queue_url_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"QueueName"/utf8>>,
                {decoder, fun gleam@dynamic@decode:decode_string/1},
                fun(Queue_name) ->
                    gleam@dynamic@decode:optional_field(
                        <<"QueueOwnerAWSAccountId"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            {decoder, fun gleam@dynamic@decode:decode_string/1}
                        ),
                        fun(Queue_owner_aws_account_id) ->
                            gleam@dynamic@decode:success(
                                {get_queue_url_request,
                                    Queue_name,
                                    Queue_owner_aws_account_id}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2272).
-spec get_queue_url_result_default() -> get_queue_url_result().
get_queue_url_result_default() ->
    {get_queue_url_result, none}.

-file("src/aws/services/sqs.gleam", 2276).
-spec encode_get_queue_url_result_struct(get_queue_url_result()) -> gleam@json:json().
encode_get_queue_url_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2287).
-spec encode_get_queue_url_result_struct_top(get_queue_url_result()) -> gleam@json:json().
encode_get_queue_url_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2298).
-spec decode_get_queue_url_result_struct() -> gleam@dynamic@decode:decoder(get_queue_url_result()).
decode_get_queue_url_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"QueueUrl"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Queue_url) ->
                    gleam@dynamic@decode:success(
                        {get_queue_url_result, Queue_url}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2316).
-spec list_dead_letter_source_queues_request_default(binary()) -> list_dead_letter_source_queues_request().
list_dead_letter_source_queues_request_default(Queue_url) ->
    {list_dead_letter_source_queues_request, none, none, Queue_url}.

-file("src/aws/services/sqs.gleam", 2326).
-spec encode_list_dead_letter_source_queues_request_struct(
    list_dead_letter_source_queues_request()
) -> gleam@json:json().
encode_list_dead_letter_source_queues_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"MaxResults"/utf8>>, gleam@json:int(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"NextToken"/utf8>>, gleam@json:string(V@1)} | Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@2)} | Pairs@2]
    end,
    gleam@json:object(Pairs@3).

-file("src/aws/services/sqs.gleam", 2345).
-spec encode_list_dead_letter_source_queues_request_struct_top(
    list_dead_letter_source_queues_request()
) -> gleam@json:json().
encode_list_dead_letter_source_queues_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"MaxResults"/utf8>>, gleam@json:int(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"NextToken"/utf8>>, gleam@json:string(V@1)} | Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@2)} | Pairs@2]
    end,
    gleam@json:object(Pairs@3).

-file("src/aws/services/sqs.gleam", 2364).
-spec decode_list_dead_letter_source_queues_request_struct() -> gleam@dynamic@decode:decoder(list_dead_letter_source_queues_request()).
decode_list_dead_letter_source_queues_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"MaxResults"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_int/1}
                ),
                fun(Max_results) ->
                    gleam@dynamic@decode:optional_field(
                        <<"NextToken"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            {decoder, fun gleam@dynamic@decode:decode_string/1}
                        ),
                        fun(Next_token) ->
                            gleam@dynamic@decode:field(
                                <<"QueueUrl"/utf8>>,
                                {decoder,
                                    fun gleam@dynamic@decode:decode_string/1},
                                fun(Queue_url) ->
                                    gleam@dynamic@decode:success(
                                        {list_dead_letter_source_queues_request,
                                            Max_results,
                                            Next_token,
                                            Queue_url}
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2393).
-spec list_dead_letter_source_queues_result_default() -> list_dead_letter_source_queues_result().
list_dead_letter_source_queues_result_default() ->
    {list_dead_letter_source_queues_result, none, none}.

-file("src/aws/services/sqs.gleam", 2400).
-spec encode_list_dead_letter_source_queues_result_struct(
    list_dead_letter_source_queues_result()
) -> gleam@json:json().
encode_list_dead_letter_source_queues_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"NextToken"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"queueUrls"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(Xs, fun gleam@json:string/1)
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 2418).
-spec encode_list_dead_letter_source_queues_result_struct_top(
    list_dead_letter_source_queues_result()
) -> gleam@json:json().
encode_list_dead_letter_source_queues_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"NextToken"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"queueUrls"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(Xs, fun gleam@json:string/1)
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 2436).
-spec decode_list_dead_letter_source_queues_result_struct() -> gleam@dynamic@decode:decoder(list_dead_letter_source_queues_result()).
decode_list_dead_letter_source_queues_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"NextToken"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Next_token) ->
                    gleam@dynamic@decode:optional_field(
                        <<"queueUrls"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            gleam@dynamic@decode:list(
                                {decoder,
                                    fun gleam@dynamic@decode:decode_string/1}
                            )
                        ),
                        fun(Queue_urls) ->
                            gleam@dynamic@decode:success(
                                {list_dead_letter_source_queues_result,
                                    Next_token,
                                    Queue_urls}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2463).
-spec list_message_move_tasks_request_default(binary()) -> list_message_move_tasks_request().
list_message_move_tasks_request_default(Source_arn) ->
    {list_message_move_tasks_request, none, Source_arn}.

-file("src/aws/services/sqs.gleam", 2469).
-spec encode_list_message_move_tasks_request_struct(
    list_message_move_tasks_request()
) -> gleam@json:json().
encode_list_message_move_tasks_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"MaxResults"/utf8>>, gleam@json:int(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"SourceArn"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 2484).
-spec encode_list_message_move_tasks_request_struct_top(
    list_message_move_tasks_request()
) -> gleam@json:json().
encode_list_message_move_tasks_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"MaxResults"/utf8>>, gleam@json:int(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"SourceArn"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 2499).
-spec decode_list_message_move_tasks_request_struct() -> gleam@dynamic@decode:decoder(list_message_move_tasks_request()).
decode_list_message_move_tasks_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"MaxResults"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_int/1}
                ),
                fun(Max_results) ->
                    gleam@dynamic@decode:field(
                        <<"SourceArn"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Source_arn) ->
                            gleam@dynamic@decode:success(
                                {list_message_move_tasks_request,
                                    Max_results,
                                    Source_arn}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2521).
-spec list_message_move_tasks_result_default() -> list_message_move_tasks_result().
list_message_move_tasks_result_default() ->
    {list_message_move_tasks_result, none}.

-file("src/aws/services/sqs.gleam", 2605).
-spec encode_list_message_move_tasks_result_entry_struct(
    list_message_move_tasks_result_entry()
) -> gleam@json:json().
encode_list_message_move_tasks_result_entry_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"ApproximateNumberOfMessagesMoved"/utf8>>, gleam@json:int(V)} |
                Pairs];

        none ->
            [{<<"ApproximateNumberOfMessagesMoved"/utf8>>, gleam@json:int(0)} |
                Pairs]
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"ApproximateNumberOfMessagesToMove"/utf8>>, gleam@json:int(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"DestinationArn"/utf8>>, gleam@json:string(V@2)} | Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"FailureReason"/utf8>>, gleam@json:string(V@3)} | Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"MaxNumberOfMessagesPerSecond"/utf8>>, gleam@json:int(V@4)} |
                Pairs@4];

        none ->
            Pairs@4
    end,
    Pairs@6 = case erlang:element(7, Input) of
        {some, V@5} ->
            [{<<"SourceArn"/utf8>>, gleam@json:string(V@5)} | Pairs@5];

        none ->
            Pairs@5
    end,
    Pairs@7 = case erlang:element(8, Input) of
        {some, V@6} ->
            [{<<"StartedTimestamp"/utf8>>, gleam@json:int(V@6)} | Pairs@6];

        none ->
            [{<<"StartedTimestamp"/utf8>>, gleam@json:int(0)} | Pairs@6]
    end,
    Pairs@8 = case erlang:element(9, Input) of
        {some, V@7} ->
            [{<<"Status"/utf8>>, gleam@json:string(V@7)} | Pairs@7];

        none ->
            Pairs@7
    end,
    Pairs@9 = case erlang:element(10, Input) of
        {some, V@8} ->
            [{<<"TaskHandle"/utf8>>, gleam@json:string(V@8)} | Pairs@8];

        none ->
            Pairs@8
    end,
    gleam@json:object(Pairs@9).

-file("src/aws/services/sqs.gleam", 2525).
-spec encode_list_message_move_tasks_result_struct(
    list_message_move_tasks_result()
) -> gleam@json:json().
encode_list_message_move_tasks_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Results"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun encode_list_message_move_tasks_result_entry_struct/1
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2544).
-spec encode_list_message_move_tasks_result_struct_top(
    list_message_move_tasks_result()
) -> gleam@json:json().
encode_list_message_move_tasks_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Results"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun encode_list_message_move_tasks_result_entry_struct/1
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2703).
-spec decode_list_message_move_tasks_result_entry_struct() -> gleam@dynamic@decode:decoder(list_message_move_tasks_result_entry()).
decode_list_message_move_tasks_result_entry_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"ApproximateNumberOfMessagesMoved"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_int/1}
                ),
                fun(Approximate_number_of_messages_moved) ->
                    gleam@dynamic@decode:optional_field(
                        <<"ApproximateNumberOfMessagesToMove"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            {decoder, fun gleam@dynamic@decode:decode_int/1}
                        ),
                        fun(Approximate_number_of_messages_to_move) ->
                            gleam@dynamic@decode:optional_field(
                                <<"DestinationArn"/utf8>>,
                                none,
                                gleam@dynamic@decode:optional(
                                    {decoder,
                                        fun gleam@dynamic@decode:decode_string/1}
                                ),
                                fun(Destination_arn) ->
                                    gleam@dynamic@decode:optional_field(
                                        <<"FailureReason"/utf8>>,
                                        none,
                                        gleam@dynamic@decode:optional(
                                            {decoder,
                                                fun gleam@dynamic@decode:decode_string/1}
                                        ),
                                        fun(Failure_reason) ->
                                            gleam@dynamic@decode:optional_field(
                                                <<"MaxNumberOfMessagesPerSecond"/utf8>>,
                                                none,
                                                gleam@dynamic@decode:optional(
                                                    {decoder,
                                                        fun gleam@dynamic@decode:decode_int/1}
                                                ),
                                                fun(
                                                    Max_number_of_messages_per_second
                                                ) ->
                                                    gleam@dynamic@decode:optional_field(
                                                        <<"SourceArn"/utf8>>,
                                                        none,
                                                        gleam@dynamic@decode:optional(
                                                            {decoder,
                                                                fun gleam@dynamic@decode:decode_string/1}
                                                        ),
                                                        fun(Source_arn) ->
                                                            gleam@dynamic@decode:optional_field(
                                                                <<"StartedTimestamp"/utf8>>,
                                                                none,
                                                                gleam@dynamic@decode:optional(
                                                                    {decoder,
                                                                        fun gleam@dynamic@decode:decode_int/1}
                                                                ),
                                                                fun(
                                                                    Started_timestamp
                                                                ) ->
                                                                    gleam@dynamic@decode:optional_field(
                                                                        <<"Status"/utf8>>,
                                                                        none,
                                                                        gleam@dynamic@decode:optional(
                                                                            {decoder,
                                                                                fun gleam@dynamic@decode:decode_string/1}
                                                                        ),
                                                                        fun(
                                                                            Status
                                                                        ) ->
                                                                            gleam@dynamic@decode:optional_field(
                                                                                <<"TaskHandle"/utf8>>,
                                                                                none,
                                                                                gleam@dynamic@decode:optional(
                                                                                    {decoder,
                                                                                        fun gleam@dynamic@decode:decode_string/1}
                                                                                ),
                                                                                fun(
                                                                                    Task_handle
                                                                                ) ->
                                                                                    gleam@dynamic@decode:success(
                                                                                        {list_message_move_tasks_result_entry,
                                                                                            Approximate_number_of_messages_moved,
                                                                                            Approximate_number_of_messages_to_move,
                                                                                            Destination_arn,
                                                                                            Failure_reason,
                                                                                            Max_number_of_messages_per_second,
                                                                                            Source_arn,
                                                                                            Started_timestamp,
                                                                                            Status,
                                                                                            Task_handle}
                                                                                    )
                                                                                end
                                                                            )
                                                                        end
                                                                    )
                                                                end
                                                            )
                                                        end
                                                    )
                                                end
                                            )
                                        end
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2563).
-spec decode_list_message_move_tasks_result_struct() -> gleam@dynamic@decode:decoder(list_message_move_tasks_result()).
decode_list_message_move_tasks_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Results"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:list(
                        decode_list_message_move_tasks_result_entry_struct()
                    )
                ),
                fun(Results) ->
                    gleam@dynamic@decode:success(
                        {list_message_move_tasks_result, Results}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2591).
-spec list_message_move_tasks_result_entry_default() -> list_message_move_tasks_result_entry().
list_message_move_tasks_result_entry_default() ->
    {list_message_move_tasks_result_entry,
        none,
        none,
        none,
        none,
        none,
        none,
        none,
        none,
        none}.

-file("src/aws/services/sqs.gleam", 2654).
-spec encode_list_message_move_tasks_result_entry_struct_top(
    list_message_move_tasks_result_entry()
) -> gleam@json:json().
encode_list_message_move_tasks_result_entry_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"ApproximateNumberOfMessagesMoved"/utf8>>, gleam@json:int(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"ApproximateNumberOfMessagesToMove"/utf8>>, gleam@json:int(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"DestinationArn"/utf8>>, gleam@json:string(V@2)} | Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"FailureReason"/utf8>>, gleam@json:string(V@3)} | Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"MaxNumberOfMessagesPerSecond"/utf8>>, gleam@json:int(V@4)} |
                Pairs@4];

        none ->
            Pairs@4
    end,
    Pairs@6 = case erlang:element(7, Input) of
        {some, V@5} ->
            [{<<"SourceArn"/utf8>>, gleam@json:string(V@5)} | Pairs@5];

        none ->
            Pairs@5
    end,
    Pairs@7 = case erlang:element(8, Input) of
        {some, V@6} ->
            [{<<"StartedTimestamp"/utf8>>, gleam@json:int(V@6)} | Pairs@6];

        none ->
            Pairs@6
    end,
    Pairs@8 = case erlang:element(9, Input) of
        {some, V@7} ->
            [{<<"Status"/utf8>>, gleam@json:string(V@7)} | Pairs@7];

        none ->
            Pairs@7
    end,
    Pairs@9 = case erlang:element(10, Input) of
        {some, V@8} ->
            [{<<"TaskHandle"/utf8>>, gleam@json:string(V@8)} | Pairs@8];

        none ->
            Pairs@8
    end,
    gleam@json:object(Pairs@9).

-file("src/aws/services/sqs.gleam", 2773).
-spec list_queues_request_default() -> list_queues_request().
list_queues_request_default() ->
    {list_queues_request, none, none, none}.

-file("src/aws/services/sqs.gleam", 2781).
-spec encode_list_queues_request_struct(list_queues_request()) -> gleam@json:json().
encode_list_queues_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"MaxResults"/utf8>>, gleam@json:int(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"NextToken"/utf8>>, gleam@json:string(V@1)} | Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"QueueNamePrefix"/utf8>>, gleam@json:string(V@2)} | Pairs@2];

        none ->
            Pairs@2
    end,
    gleam@json:object(Pairs@3).

-file("src/aws/services/sqs.gleam", 2800).
-spec encode_list_queues_request_struct_top(list_queues_request()) -> gleam@json:json().
encode_list_queues_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"MaxResults"/utf8>>, gleam@json:int(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"NextToken"/utf8>>, gleam@json:string(V@1)} | Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"QueueNamePrefix"/utf8>>, gleam@json:string(V@2)} | Pairs@2];

        none ->
            Pairs@2
    end,
    gleam@json:object(Pairs@3).

-file("src/aws/services/sqs.gleam", 2819).
-spec decode_list_queues_request_struct() -> gleam@dynamic@decode:decoder(list_queues_request()).
decode_list_queues_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"MaxResults"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_int/1}
                ),
                fun(Max_results) ->
                    gleam@dynamic@decode:optional_field(
                        <<"NextToken"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            {decoder, fun gleam@dynamic@decode:decode_string/1}
                        ),
                        fun(Next_token) ->
                            gleam@dynamic@decode:optional_field(
                                <<"QueueNamePrefix"/utf8>>,
                                none,
                                gleam@dynamic@decode:optional(
                                    {decoder,
                                        fun gleam@dynamic@decode:decode_string/1}
                                ),
                                fun(Queue_name_prefix) ->
                                    gleam@dynamic@decode:success(
                                        {list_queues_request,
                                            Max_results,
                                            Next_token,
                                            Queue_name_prefix}
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2850).
-spec list_queues_result_default() -> list_queues_result().
list_queues_result_default() ->
    {list_queues_result, none, none}.

-file("src/aws/services/sqs.gleam", 2854).
-spec encode_list_queues_result_struct(list_queues_result()) -> gleam@json:json().
encode_list_queues_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"NextToken"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"QueueUrls"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(Xs, fun gleam@json:string/1)
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 2870).
-spec encode_list_queues_result_struct_top(list_queues_result()) -> gleam@json:json().
encode_list_queues_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"NextToken"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"QueueUrls"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(Xs, fun gleam@json:string/1)
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 2888).
-spec decode_list_queues_result_struct() -> gleam@dynamic@decode:decoder(list_queues_result()).
decode_list_queues_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"NextToken"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Next_token) ->
                    gleam@dynamic@decode:optional_field(
                        <<"QueueUrls"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            gleam@dynamic@decode:list(
                                {decoder,
                                    fun gleam@dynamic@decode:decode_string/1}
                            )
                        ),
                        fun(Queue_urls) ->
                            gleam@dynamic@decode:success(
                                {list_queues_result, Next_token, Queue_urls}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2910).
-spec list_queue_tags_request_default(binary()) -> list_queue_tags_request().
list_queue_tags_request_default(Queue_url) ->
    {list_queue_tags_request, Queue_url}.

-file("src/aws/services/sqs.gleam", 2916).
-spec encode_list_queue_tags_request_struct(list_queue_tags_request()) -> gleam@json:json().
encode_list_queue_tags_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2927).
-spec encode_list_queue_tags_request_struct_top(list_queue_tags_request()) -> gleam@json:json().
encode_list_queue_tags_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2938).
-spec decode_list_queue_tags_request_struct() -> gleam@dynamic@decode:decoder(list_queue_tags_request()).
decode_list_queue_tags_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"QueueUrl"/utf8>>,
                {decoder, fun gleam@dynamic@decode:decode_string/1},
                fun(Queue_url) ->
                    gleam@dynamic@decode:success(
                        {list_queue_tags_request, Queue_url}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 2950).
-spec list_queue_tags_result_default() -> list_queue_tags_result().
list_queue_tags_result_default() ->
    {list_queue_tags_result, none}.

-file("src/aws/services/sqs.gleam", 2954).
-spec encode_list_queue_tags_result_struct(list_queue_tags_result()) -> gleam@json:json().
encode_list_queue_tags_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Tags"/utf8>>,
                    (fun(D) ->
                        gleam@json:object(
                            begin
                                _pipe = maps:to_list(D),
                                gleam@list:map(
                                    _pipe,
                                    fun(Pair) ->
                                        {erlang:element(1, Pair),
                                            gleam@json:string(
                                                erlang:element(2, Pair)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2976).
-spec encode_list_queue_tags_result_struct_top(list_queue_tags_result()) -> gleam@json:json().
encode_list_queue_tags_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Tags"/utf8>>,
                    (fun(D) ->
                        gleam@json:object(
                            begin
                                _pipe = maps:to_list(D),
                                gleam@list:map(
                                    _pipe,
                                    fun(Pair) ->
                                        {erlang:element(1, Pair),
                                            gleam@json:string(
                                                erlang:element(2, Pair)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 2998).
-spec decode_list_queue_tags_result_struct() -> gleam@dynamic@decode:decoder(list_queue_tags_result()).
decode_list_queue_tags_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Tags"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:dict(
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        {decoder, fun gleam@dynamic@decode:decode_string/1}
                    )
                ),
                fun(Tags) ->
                    gleam@dynamic@decode:success({list_queue_tags_result, Tags})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3014).
-spec purge_queue_request_default(binary()) -> purge_queue_request().
purge_queue_request_default(Queue_url) ->
    {purge_queue_request, Queue_url}.

-file("src/aws/services/sqs.gleam", 3020).
-spec encode_purge_queue_request_struct(purge_queue_request()) -> gleam@json:json().
encode_purge_queue_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3031).
-spec encode_purge_queue_request_struct_top(purge_queue_request()) -> gleam@json:json().
encode_purge_queue_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3042).
-spec decode_purge_queue_request_struct() -> gleam@dynamic@decode:decoder(purge_queue_request()).
decode_purge_queue_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"QueueUrl"/utf8>>,
                {decoder, fun gleam@dynamic@decode:decode_string/1},
                fun(Queue_url) ->
                    gleam@dynamic@decode:success(
                        {purge_queue_request, Queue_url}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3052).
-spec purge_queue_in_progress_default() -> purge_queue_in_progress().
purge_queue_in_progress_default() ->
    {purge_queue_in_progress, none}.

-file("src/aws/services/sqs.gleam", 3056).
-spec encode_purge_queue_in_progress_struct(purge_queue_in_progress()) -> gleam@json:json().
encode_purge_queue_in_progress_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3067).
-spec encode_purge_queue_in_progress_struct_top(purge_queue_in_progress()) -> gleam@json:json().
encode_purge_queue_in_progress_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3078).
-spec decode_purge_queue_in_progress_struct() -> gleam@dynamic@decode:decoder(purge_queue_in_progress()).
decode_purge_queue_in_progress_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {purge_queue_in_progress, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3105).
-spec receive_message_request_default(binary()) -> receive_message_request().
receive_message_request_default(Queue_url) ->
    {receive_message_request,
        none,
        none,
        none,
        none,
        Queue_url,
        none,
        none,
        none}.

-file("src/aws/services/sqs.gleam", 3293).
-spec encode_message_system_attribute_name_enum(message_system_attribute_name()) -> gleam@json:json().
encode_message_system_attribute_name_enum(V) ->
    case V of
        message_system_attribute_name_awstraceheader ->
            gleam@json:string(<<"AWSTraceHeader"/utf8>>);

        message_system_attribute_name_all ->
            gleam@json:string(<<"All"/utf8>>);

        message_system_attribute_name_approximatefirstreceivetimestamp ->
            gleam@json:string(<<"ApproximateFirstReceiveTimestamp"/utf8>>);

        message_system_attribute_name_approximatereceivecount ->
            gleam@json:string(<<"ApproximateReceiveCount"/utf8>>);

        message_system_attribute_name_deadletterqueuesourcearn ->
            gleam@json:string(<<"DeadLetterQueueSourceArn"/utf8>>);

        message_system_attribute_name_messagededuplicationid ->
            gleam@json:string(<<"MessageDeduplicationId"/utf8>>);

        message_system_attribute_name_messagegroupid ->
            gleam@json:string(<<"MessageGroupId"/utf8>>);

        message_system_attribute_name_senderid ->
            gleam@json:string(<<"SenderId"/utf8>>);

        message_system_attribute_name_senttimestamp ->
            gleam@json:string(<<"SentTimestamp"/utf8>>);

        message_system_attribute_name_sequencenumber ->
            gleam@json:string(<<"SequenceNumber"/utf8>>)
    end.

-file("src/aws/services/sqs.gleam", 3120).
-spec encode_receive_message_request_struct(receive_message_request()) -> gleam@json:json().
encode_receive_message_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"AttributeNames"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun encode_queue_attribute_name_enum/1
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"MaxNumberOfMessages"/utf8>>, gleam@json:int(V@1)} | Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"MessageAttributeNames"/utf8>>,
                    (fun(Xs@1) ->
                        gleam@json:array(Xs@1, fun gleam@json:string/1)
                    end)(V@2)} |
                Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"MessageSystemAttributeNames"/utf8>>,
                    (fun(Xs@2) ->
                        gleam@json:array(
                            Xs@2,
                            fun encode_message_system_attribute_name_enum/1
                        )
                    end)(V@3)} |
                Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = begin
        V@4 = erlang:element(6, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@4)} | Pairs@4]
    end,
    Pairs@6 = case erlang:element(7, Input) of
        {some, V@5} ->
            [{<<"ReceiveRequestAttemptId"/utf8>>, gleam@json:string(V@5)} |
                Pairs@5];

        none ->
            Pairs@5
    end,
    Pairs@7 = case erlang:element(8, Input) of
        {some, V@6} ->
            [{<<"VisibilityTimeout"/utf8>>, gleam@json:int(V@6)} | Pairs@6];

        none ->
            Pairs@6
    end,
    Pairs@8 = case erlang:element(9, Input) of
        {some, V@7} ->
            [{<<"WaitTimeSeconds"/utf8>>, gleam@json:int(V@7)} | Pairs@7];

        none ->
            Pairs@7
    end,
    gleam@json:object(Pairs@8).

-file("src/aws/services/sqs.gleam", 3174).
-spec encode_receive_message_request_struct_top(receive_message_request()) -> gleam@json:json().
encode_receive_message_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"AttributeNames"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun encode_queue_attribute_name_enum/1
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"MaxNumberOfMessages"/utf8>>, gleam@json:int(V@1)} | Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"MessageAttributeNames"/utf8>>,
                    (fun(Xs@1) ->
                        gleam@json:array(Xs@1, fun gleam@json:string/1)
                    end)(V@2)} |
                Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"MessageSystemAttributeNames"/utf8>>,
                    (fun(Xs@2) ->
                        gleam@json:array(
                            Xs@2,
                            fun encode_message_system_attribute_name_enum/1
                        )
                    end)(V@3)} |
                Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = begin
        V@4 = erlang:element(6, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@4)} | Pairs@4]
    end,
    Pairs@6 = case erlang:element(7, Input) of
        {some, V@5} ->
            [{<<"ReceiveRequestAttemptId"/utf8>>, gleam@json:string(V@5)} |
                Pairs@5];

        none ->
            Pairs@5
    end,
    Pairs@7 = case erlang:element(8, Input) of
        {some, V@6} ->
            [{<<"VisibilityTimeout"/utf8>>, gleam@json:int(V@6)} | Pairs@6];

        none ->
            Pairs@6
    end,
    Pairs@8 = case erlang:element(9, Input) of
        {some, V@7} ->
            [{<<"WaitTimeSeconds"/utf8>>, gleam@json:int(V@7)} | Pairs@7];

        none ->
            Pairs@7
    end,
    gleam@json:object(Pairs@8).

-file("src/aws/services/sqs.gleam", 3314).
-spec decode_message_system_attribute_name_enum() -> gleam@dynamic@decode:decoder(message_system_attribute_name()).
decode_message_system_attribute_name_enum() ->
    gleam@dynamic@decode:then(
        {decoder, fun gleam@dynamic@decode:decode_string/1},
        fun(S) -> case S of
                <<"AWSTraceHeader"/utf8>> ->
                    gleam@dynamic@decode:success(
                        message_system_attribute_name_awstraceheader
                    );

                <<"All"/utf8>> ->
                    gleam@dynamic@decode:success(
                        message_system_attribute_name_all
                    );

                <<"ApproximateFirstReceiveTimestamp"/utf8>> ->
                    gleam@dynamic@decode:success(
                        message_system_attribute_name_approximatefirstreceivetimestamp
                    );

                <<"ApproximateReceiveCount"/utf8>> ->
                    gleam@dynamic@decode:success(
                        message_system_attribute_name_approximatereceivecount
                    );

                <<"DeadLetterQueueSourceArn"/utf8>> ->
                    gleam@dynamic@decode:success(
                        message_system_attribute_name_deadletterqueuesourcearn
                    );

                <<"MessageDeduplicationId"/utf8>> ->
                    gleam@dynamic@decode:success(
                        message_system_attribute_name_messagededuplicationid
                    );

                <<"MessageGroupId"/utf8>> ->
                    gleam@dynamic@decode:success(
                        message_system_attribute_name_messagegroupid
                    );

                <<"SenderId"/utf8>> ->
                    gleam@dynamic@decode:success(
                        message_system_attribute_name_senderid
                    );

                <<"SentTimestamp"/utf8>> ->
                    gleam@dynamic@decode:success(
                        message_system_attribute_name_senttimestamp
                    );

                <<"SequenceNumber"/utf8>> ->
                    gleam@dynamic@decode:success(
                        message_system_attribute_name_sequencenumber
                    );

                _ ->
                    gleam@dynamic@decode:failure(
                        message_system_attribute_name_awstraceheader,
                        <<"unknown enum value"/utf8>>
                    )
            end end
    ).

-file("src/aws/services/sqs.gleam", 3228).
-spec decode_receive_message_request_struct() -> gleam@dynamic@decode:decoder(receive_message_request()).
decode_receive_message_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"AttributeNames"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:list(
                        decode_queue_attribute_name_enum()
                    )
                ),
                fun(Attribute_names) ->
                    gleam@dynamic@decode:optional_field(
                        <<"MaxNumberOfMessages"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            {decoder, fun gleam@dynamic@decode:decode_int/1}
                        ),
                        fun(Max_number_of_messages) ->
                            gleam@dynamic@decode:optional_field(
                                <<"MessageAttributeNames"/utf8>>,
                                none,
                                gleam@dynamic@decode:optional(
                                    gleam@dynamic@decode:list(
                                        {decoder,
                                            fun gleam@dynamic@decode:decode_string/1}
                                    )
                                ),
                                fun(Message_attribute_names) ->
                                    gleam@dynamic@decode:optional_field(
                                        <<"MessageSystemAttributeNames"/utf8>>,
                                        none,
                                        gleam@dynamic@decode:optional(
                                            gleam@dynamic@decode:list(
                                                decode_message_system_attribute_name_enum(
                                                    
                                                )
                                            )
                                        ),
                                        fun(Message_system_attribute_names) ->
                                            gleam@dynamic@decode:field(
                                                <<"QueueUrl"/utf8>>,
                                                {decoder,
                                                    fun gleam@dynamic@decode:decode_string/1},
                                                fun(Queue_url) ->
                                                    gleam@dynamic@decode:optional_field(
                                                        <<"ReceiveRequestAttemptId"/utf8>>,
                                                        none,
                                                        gleam@dynamic@decode:optional(
                                                            {decoder,
                                                                fun gleam@dynamic@decode:decode_string/1}
                                                        ),
                                                        fun(
                                                            Receive_request_attempt_id
                                                        ) ->
                                                            gleam@dynamic@decode:optional_field(
                                                                <<"VisibilityTimeout"/utf8>>,
                                                                none,
                                                                gleam@dynamic@decode:optional(
                                                                    {decoder,
                                                                        fun gleam@dynamic@decode:decode_int/1}
                                                                ),
                                                                fun(
                                                                    Visibility_timeout
                                                                ) ->
                                                                    gleam@dynamic@decode:optional_field(
                                                                        <<"WaitTimeSeconds"/utf8>>,
                                                                        none,
                                                                        gleam@dynamic@decode:optional(
                                                                            {decoder,
                                                                                fun gleam@dynamic@decode:decode_int/1}
                                                                        ),
                                                                        fun(
                                                                            Wait_time_seconds
                                                                        ) ->
                                                                            gleam@dynamic@decode:success(
                                                                                {receive_message_request,
                                                                                    Attribute_names,
                                                                                    Max_number_of_messages,
                                                                                    Message_attribute_names,
                                                                                    Message_system_attribute_names,
                                                                                    Queue_url,
                                                                                    Receive_request_attempt_id,
                                                                                    Visibility_timeout,
                                                                                    Wait_time_seconds}
                                                                            )
                                                                        end
                                                                    )
                                                                end
                                                            )
                                                        end
                                                    )
                                                end
                                            )
                                        end
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3351).
-spec receive_message_result_default() -> receive_message_result().
receive_message_result_default() ->
    {receive_message_result, none}.

-file("src/aws/services/sqs.gleam", 3606).
-spec encode_message_attribute_value_struct(message_attribute_value()) -> gleam@json:json().
encode_message_attribute_value_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"BinaryListValues"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun(B) ->
                                gleam@json:string(
                                    gleam_stdlib:base64_encode(B, true)
                                )
                            end
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"BinaryValue"/utf8>>,
                    (fun(B@1) ->
                        gleam@json:string(gleam_stdlib:base64_encode(B@1, true))
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"DataType"/utf8>>, gleam@json:string(V@2)} | Pairs@2]
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"StringListValues"/utf8>>,
                    (fun(Xs@1) ->
                        gleam@json:array(Xs@1, fun gleam@json:string/1)
                    end)(V@3)} |
                Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"StringValue"/utf8>>, gleam@json:string(V@4)} | Pairs@4];

        none ->
            Pairs@4
    end,
    gleam@json:object(Pairs@5).

-file("src/aws/services/sqs.gleam", 3419).
-spec encode_message_struct(message()) -> gleam@json:json().
encode_message_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Attributes"/utf8>>,
                    (fun(D) ->
                        gleam@json:object(
                            begin
                                _pipe = maps:to_list(D),
                                gleam@list:map(
                                    _pipe,
                                    fun(Pair) ->
                                        {erlang:element(1, Pair),
                                            gleam@json:string(
                                                erlang:element(2, Pair)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"Body"/utf8>>, gleam@json:string(V@1)} | Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"MD5OfBody"/utf8>>, gleam@json:string(V@2)} | Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"MD5OfMessageAttributes"/utf8>>, gleam@json:string(V@3)} |
                Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"MessageAttributes"/utf8>>,
                    (fun(D@1) ->
                        gleam@json:object(
                            begin
                                _pipe@1 = maps:to_list(D@1),
                                gleam@list:map(
                                    _pipe@1,
                                    fun(Pair@1) ->
                                        {erlang:element(1, Pair@1),
                                            encode_message_attribute_value_struct(
                                                erlang:element(2, Pair@1)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V@4)} |
                Pairs@4];

        none ->
            Pairs@4
    end,
    Pairs@6 = case erlang:element(7, Input) of
        {some, V@5} ->
            [{<<"MessageId"/utf8>>, gleam@json:string(V@5)} | Pairs@5];

        none ->
            Pairs@5
    end,
    Pairs@7 = case erlang:element(8, Input) of
        {some, V@6} ->
            [{<<"ReceiptHandle"/utf8>>, gleam@json:string(V@6)} | Pairs@6];

        none ->
            Pairs@6
    end,
    gleam@json:object(Pairs@7).

-file("src/aws/services/sqs.gleam", 3355).
-spec encode_receive_message_result_struct(receive_message_result()) -> gleam@json:json().
encode_receive_message_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Messages"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(Xs, fun encode_message_struct/1)
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3369).
-spec encode_receive_message_result_struct_top(receive_message_result()) -> gleam@json:json().
encode_receive_message_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Messages"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(Xs, fun encode_message_struct/1)
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3694).
-spec decode_message_attribute_value_struct() -> gleam@dynamic@decode:decoder(message_attribute_value()).
decode_message_attribute_value_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"BinaryListValues"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:list(
                        gleam@dynamic@decode:then(
                            {decoder, fun gleam@dynamic@decode:decode_string/1},
                            fun(S) ->
                                gleam@dynamic@decode:success(
                                    gleam_stdlib:identity(S)
                                )
                            end
                        )
                    )
                ),
                fun(Binary_list_values) ->
                    gleam@dynamic@decode:optional_field(
                        <<"BinaryValue"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            gleam@dynamic@decode:then(
                                {decoder,
                                    fun gleam@dynamic@decode:decode_string/1},
                                fun(S@1) ->
                                    gleam@dynamic@decode:success(
                                        gleam_stdlib:identity(S@1)
                                    )
                                end
                            )
                        ),
                        fun(Binary_value) ->
                            gleam@dynamic@decode:field(
                                <<"DataType"/utf8>>,
                                {decoder,
                                    fun gleam@dynamic@decode:decode_string/1},
                                fun(Data_type) ->
                                    gleam@dynamic@decode:optional_field(
                                        <<"StringListValues"/utf8>>,
                                        none,
                                        gleam@dynamic@decode:optional(
                                            gleam@dynamic@decode:list(
                                                {decoder,
                                                    fun gleam@dynamic@decode:decode_string/1}
                                            )
                                        ),
                                        fun(String_list_values) ->
                                            gleam@dynamic@decode:optional_field(
                                                <<"StringValue"/utf8>>,
                                                none,
                                                gleam@dynamic@decode:optional(
                                                    {decoder,
                                                        fun gleam@dynamic@decode:decode_string/1}
                                                ),
                                                fun(String_value) ->
                                                    gleam@dynamic@decode:success(
                                                        {message_attribute_value,
                                                            Binary_list_values,
                                                            Binary_value,
                                                            Data_type,
                                                            String_list_values,
                                                            String_value}
                                                    )
                                                end
                                            )
                                        end
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3533).
-spec decode_message_struct() -> gleam@dynamic@decode:decoder(message()).
decode_message_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Attributes"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:dict(
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        {decoder, fun gleam@dynamic@decode:decode_string/1}
                    )
                ),
                fun(Attributes) ->
                    gleam@dynamic@decode:optional_field(
                        <<"Body"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            {decoder, fun gleam@dynamic@decode:decode_string/1}
                        ),
                        fun(Body) ->
                            gleam@dynamic@decode:optional_field(
                                <<"MD5OfBody"/utf8>>,
                                none,
                                gleam@dynamic@decode:optional(
                                    {decoder,
                                        fun gleam@dynamic@decode:decode_string/1}
                                ),
                                fun(Md5_of_body) ->
                                    gleam@dynamic@decode:optional_field(
                                        <<"MD5OfMessageAttributes"/utf8>>,
                                        none,
                                        gleam@dynamic@decode:optional(
                                            {decoder,
                                                fun gleam@dynamic@decode:decode_string/1}
                                        ),
                                        fun(Md5_of_message_attributes) ->
                                            gleam@dynamic@decode:optional_field(
                                                <<"MessageAttributes"/utf8>>,
                                                none,
                                                gleam@dynamic@decode:optional(
                                                    gleam@dynamic@decode:dict(
                                                        {decoder,
                                                            fun gleam@dynamic@decode:decode_string/1},
                                                        decode_message_attribute_value_struct(
                                                            
                                                        )
                                                    )
                                                ),
                                                fun(Message_attributes) ->
                                                    gleam@dynamic@decode:optional_field(
                                                        <<"MessageId"/utf8>>,
                                                        none,
                                                        gleam@dynamic@decode:optional(
                                                            {decoder,
                                                                fun gleam@dynamic@decode:decode_string/1}
                                                        ),
                                                        fun(Message_id) ->
                                                            gleam@dynamic@decode:optional_field(
                                                                <<"ReceiptHandle"/utf8>>,
                                                                none,
                                                                gleam@dynamic@decode:optional(
                                                                    {decoder,
                                                                        fun gleam@dynamic@decode:decode_string/1}
                                                                ),
                                                                fun(
                                                                    Receipt_handle
                                                                ) ->
                                                                    gleam@dynamic@decode:success(
                                                                        {message,
                                                                            Attributes,
                                                                            Body,
                                                                            Md5_of_body,
                                                                            Md5_of_message_attributes,
                                                                            Message_attributes,
                                                                            Message_id,
                                                                            Receipt_handle}
                                                                    )
                                                                end
                                                            )
                                                        end
                                                    )
                                                end
                                            )
                                        end
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3383).
-spec decode_receive_message_result_struct() -> gleam@dynamic@decode:decoder(receive_message_result()).
decode_receive_message_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Messages"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:list(decode_message_struct())
                ),
                fun(Messages) ->
                    gleam@dynamic@decode:success(
                        {receive_message_result, Messages}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3407).
-spec message_default() -> message().
message_default() ->
    {message, none, none, none, none, none, none, none}.

-file("src/aws/services/sqs.gleam", 3476).
-spec encode_message_struct_top(message()) -> gleam@json:json().
encode_message_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Attributes"/utf8>>,
                    (fun(D) ->
                        gleam@json:object(
                            begin
                                _pipe = maps:to_list(D),
                                gleam@list:map(
                                    _pipe,
                                    fun(Pair) ->
                                        {erlang:element(1, Pair),
                                            gleam@json:string(
                                                erlang:element(2, Pair)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"Body"/utf8>>, gleam@json:string(V@1)} | Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"MD5OfBody"/utf8>>, gleam@json:string(V@2)} | Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"MD5OfMessageAttributes"/utf8>>, gleam@json:string(V@3)} |
                Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"MessageAttributes"/utf8>>,
                    (fun(D@1) ->
                        gleam@json:object(
                            begin
                                _pipe@1 = maps:to_list(D@1),
                                gleam@list:map(
                                    _pipe@1,
                                    fun(Pair@1) ->
                                        {erlang:element(1, Pair@1),
                                            encode_message_attribute_value_struct(
                                                erlang:element(2, Pair@1)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V@4)} |
                Pairs@4];

        none ->
            Pairs@4
    end,
    Pairs@6 = case erlang:element(7, Input) of
        {some, V@5} ->
            [{<<"MessageId"/utf8>>, gleam@json:string(V@5)} | Pairs@5];

        none ->
            Pairs@5
    end,
    Pairs@7 = case erlang:element(8, Input) of
        {some, V@6} ->
            [{<<"ReceiptHandle"/utf8>>, gleam@json:string(V@6)} | Pairs@6];

        none ->
            Pairs@6
    end,
    gleam@json:object(Pairs@7).

-file("src/aws/services/sqs.gleam", 3594).
-spec message_attribute_value_default(binary()) -> message_attribute_value().
message_attribute_value_default(Data_type) ->
    {message_attribute_value, none, none, Data_type, none, none}.

-file("src/aws/services/sqs.gleam", 3650).
-spec encode_message_attribute_value_struct_top(message_attribute_value()) -> gleam@json:json().
encode_message_attribute_value_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"BinaryListValues"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun(B) ->
                                gleam@json:string(
                                    gleam_stdlib:base64_encode(B, true)
                                )
                            end
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"BinaryValue"/utf8>>,
                    (fun(B@1) ->
                        gleam@json:string(gleam_stdlib:base64_encode(B@1, true))
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"DataType"/utf8>>, gleam@json:string(V@2)} | Pairs@2]
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"StringListValues"/utf8>>,
                    (fun(Xs@1) ->
                        gleam@json:array(Xs@1, fun gleam@json:string/1)
                    end)(V@3)} |
                Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"StringValue"/utf8>>, gleam@json:string(V@4)} | Pairs@4];

        none ->
            Pairs@4
    end,
    gleam@json:object(Pairs@5).

-file("src/aws/services/sqs.gleam", 3742).
-spec kms_access_denied_default() -> kms_access_denied().
kms_access_denied_default() ->
    {kms_access_denied, none}.

-file("src/aws/services/sqs.gleam", 3746).
-spec encode_kms_access_denied_struct(kms_access_denied()) -> gleam@json:json().
encode_kms_access_denied_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3755).
-spec encode_kms_access_denied_struct_top(kms_access_denied()) -> gleam@json:json().
encode_kms_access_denied_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3766).
-spec decode_kms_access_denied_struct() -> gleam@dynamic@decode:decoder(kms_access_denied()).
decode_kms_access_denied_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success({kms_access_denied, Message})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3780).
-spec kms_disabled_default() -> kms_disabled().
kms_disabled_default() ->
    {kms_disabled, none}.

-file("src/aws/services/sqs.gleam", 3784).
-spec encode_kms_disabled_struct(kms_disabled()) -> gleam@json:json().
encode_kms_disabled_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3793).
-spec encode_kms_disabled_struct_top(kms_disabled()) -> gleam@json:json().
encode_kms_disabled_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3802).
-spec decode_kms_disabled_struct() -> gleam@dynamic@decode:decoder(kms_disabled()).
decode_kms_disabled_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success({kms_disabled, Message})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3816).
-spec kms_invalid_key_usage_default() -> kms_invalid_key_usage().
kms_invalid_key_usage_default() ->
    {kms_invalid_key_usage, none}.

-file("src/aws/services/sqs.gleam", 3820).
-spec encode_kms_invalid_key_usage_struct(kms_invalid_key_usage()) -> gleam@json:json().
encode_kms_invalid_key_usage_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3831).
-spec encode_kms_invalid_key_usage_struct_top(kms_invalid_key_usage()) -> gleam@json:json().
encode_kms_invalid_key_usage_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3842).
-spec decode_kms_invalid_key_usage_struct() -> gleam@dynamic@decode:decoder(kms_invalid_key_usage()).
decode_kms_invalid_key_usage_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {kms_invalid_key_usage, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3858).
-spec kms_invalid_state_default() -> kms_invalid_state().
kms_invalid_state_default() ->
    {kms_invalid_state, none}.

-file("src/aws/services/sqs.gleam", 3862).
-spec encode_kms_invalid_state_struct(kms_invalid_state()) -> gleam@json:json().
encode_kms_invalid_state_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3871).
-spec encode_kms_invalid_state_struct_top(kms_invalid_state()) -> gleam@json:json().
encode_kms_invalid_state_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3882).
-spec decode_kms_invalid_state_struct() -> gleam@dynamic@decode:decoder(kms_invalid_state()).
decode_kms_invalid_state_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success({kms_invalid_state, Message})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3896).
-spec kms_not_found_default() -> kms_not_found().
kms_not_found_default() ->
    {kms_not_found, none}.

-file("src/aws/services/sqs.gleam", 3900).
-spec encode_kms_not_found_struct(kms_not_found()) -> gleam@json:json().
encode_kms_not_found_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3909).
-spec encode_kms_not_found_struct_top(kms_not_found()) -> gleam@json:json().
encode_kms_not_found_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3918).
-spec decode_kms_not_found_struct() -> gleam@dynamic@decode:decoder(kms_not_found()).
decode_kms_not_found_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success({kms_not_found, Message})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3932).
-spec kms_opt_in_required_default() -> kms_opt_in_required().
kms_opt_in_required_default() ->
    {kms_opt_in_required, none}.

-file("src/aws/services/sqs.gleam", 3936).
-spec encode_kms_opt_in_required_struct(kms_opt_in_required()) -> gleam@json:json().
encode_kms_opt_in_required_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3945).
-spec encode_kms_opt_in_required_struct_top(kms_opt_in_required()) -> gleam@json:json().
encode_kms_opt_in_required_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3956).
-spec decode_kms_opt_in_required_struct() -> gleam@dynamic@decode:decoder(kms_opt_in_required()).
decode_kms_opt_in_required_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success({kms_opt_in_required, Message})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 3970).
-spec kms_throttled_default() -> kms_throttled().
kms_throttled_default() ->
    {kms_throttled, none}.

-file("src/aws/services/sqs.gleam", 3974).
-spec encode_kms_throttled_struct(kms_throttled()) -> gleam@json:json().
encode_kms_throttled_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3983).
-spec encode_kms_throttled_struct_top(kms_throttled()) -> gleam@json:json().
encode_kms_throttled_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 3992).
-spec decode_kms_throttled_struct() -> gleam@dynamic@decode:decoder(kms_throttled()).
decode_kms_throttled_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success({kms_throttled, Message})
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 4006).
-spec remove_permission_request_default(binary(), binary()) -> remove_permission_request().
remove_permission_request_default(Label, Queue_url) ->
    {remove_permission_request, Label, Queue_url}.

-file("src/aws/services/sqs.gleam", 4013).
-spec encode_remove_permission_request_struct(remove_permission_request()) -> gleam@json:json().
encode_remove_permission_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Label"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 4028).
-spec encode_remove_permission_request_struct_top(remove_permission_request()) -> gleam@json:json().
encode_remove_permission_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Label"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 4043).
-spec decode_remove_permission_request_struct() -> gleam@dynamic@decode:decoder(remove_permission_request()).
decode_remove_permission_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"Label"/utf8>>,
                {decoder, fun gleam@dynamic@decode:decode_string/1},
                fun(Label) ->
                    gleam@dynamic@decode:field(
                        <<"QueueUrl"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Queue_url) ->
                            gleam@dynamic@decode:success(
                                {remove_permission_request, Label, Queue_url}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 4066).
-spec send_message_request_default(binary(), binary()) -> send_message_request().
send_message_request_default(Message_body, Queue_url) ->
    {send_message_request,
        none,
        none,
        Message_body,
        none,
        none,
        none,
        Queue_url}.

-file("src/aws/services/sqs.gleam", 4302).
-spec encode_message_system_attribute_value_struct(
    message_system_attribute_value()
) -> gleam@json:json().
encode_message_system_attribute_value_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"BinaryListValues"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun(B) ->
                                gleam@json:string(
                                    gleam_stdlib:base64_encode(B, true)
                                )
                            end
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"BinaryValue"/utf8>>,
                    (fun(B@1) ->
                        gleam@json:string(gleam_stdlib:base64_encode(B@1, true))
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"DataType"/utf8>>, gleam@json:string(V@2)} | Pairs@2]
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"StringListValues"/utf8>>,
                    (fun(Xs@1) ->
                        gleam@json:array(Xs@1, fun gleam@json:string/1)
                    end)(V@3)} |
                Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"StringValue"/utf8>>, gleam@json:string(V@4)} | Pairs@4];

        none ->
            Pairs@4
    end,
    gleam@json:object(Pairs@5).

-file("src/aws/services/sqs.gleam", 4081).
-spec encode_send_message_request_struct(send_message_request()) -> gleam@json:json().
encode_send_message_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"DelaySeconds"/utf8>>, gleam@json:int(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"MessageAttributes"/utf8>>,
                    (fun(D) ->
                        gleam@json:object(
                            begin
                                _pipe = maps:to_list(D),
                                gleam@list:map(
                                    _pipe,
                                    fun(Pair) ->
                                        {erlang:element(1, Pair),
                                            encode_message_attribute_value_struct(
                                                erlang:element(2, Pair)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"MessageBody"/utf8>>, gleam@json:string(V@2)} | Pairs@2]
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"MessageDeduplicationId"/utf8>>, gleam@json:string(V@3)} |
                Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"MessageGroupId"/utf8>>, gleam@json:string(V@4)} | Pairs@4];

        none ->
            Pairs@4
    end,
    Pairs@6 = case erlang:element(7, Input) of
        {some, V@5} ->
            [{<<"MessageSystemAttributes"/utf8>>,
                    (fun(D@1) ->
                        gleam@json:object(
                            begin
                                _pipe@1 = maps:to_list(D@1),
                                gleam@list:map(
                                    _pipe@1,
                                    fun(Pair@1) ->
                                        {erlang:element(1, Pair@1),
                                            encode_message_system_attribute_value_struct(
                                                erlang:element(2, Pair@1)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V@5)} |
                Pairs@5];

        none ->
            Pairs@5
    end,
    Pairs@7 = begin
        V@6 = erlang:element(8, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@6)} | Pairs@6]
    end,
    gleam@json:object(Pairs@7).

-file("src/aws/services/sqs.gleam", 4142).
-spec encode_send_message_request_struct_top(send_message_request()) -> gleam@json:json().
encode_send_message_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"DelaySeconds"/utf8>>, gleam@json:int(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"MessageAttributes"/utf8>>,
                    (fun(D) ->
                        gleam@json:object(
                            begin
                                _pipe = maps:to_list(D),
                                gleam@list:map(
                                    _pipe,
                                    fun(Pair) ->
                                        {erlang:element(1, Pair),
                                            encode_message_attribute_value_struct(
                                                erlang:element(2, Pair)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"MessageBody"/utf8>>, gleam@json:string(V@2)} | Pairs@2]
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"MessageDeduplicationId"/utf8>>, gleam@json:string(V@3)} |
                Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"MessageGroupId"/utf8>>, gleam@json:string(V@4)} | Pairs@4];

        none ->
            Pairs@4
    end,
    Pairs@6 = case erlang:element(7, Input) of
        {some, V@5} ->
            [{<<"MessageSystemAttributes"/utf8>>,
                    (fun(D@1) ->
                        gleam@json:object(
                            begin
                                _pipe@1 = maps:to_list(D@1),
                                gleam@list:map(
                                    _pipe@1,
                                    fun(Pair@1) ->
                                        {erlang:element(1, Pair@1),
                                            encode_message_system_attribute_value_struct(
                                                erlang:element(2, Pair@1)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V@5)} |
                Pairs@5];

        none ->
            Pairs@5
    end,
    Pairs@7 = begin
        V@6 = erlang:element(8, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@6)} | Pairs@6]
    end,
    gleam@json:object(Pairs@7).

-file("src/aws/services/sqs.gleam", 4390).
-spec decode_message_system_attribute_value_struct() -> gleam@dynamic@decode:decoder(message_system_attribute_value()).
decode_message_system_attribute_value_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"BinaryListValues"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:list(
                        gleam@dynamic@decode:then(
                            {decoder, fun gleam@dynamic@decode:decode_string/1},
                            fun(S) ->
                                gleam@dynamic@decode:success(
                                    gleam_stdlib:identity(S)
                                )
                            end
                        )
                    )
                ),
                fun(Binary_list_values) ->
                    gleam@dynamic@decode:optional_field(
                        <<"BinaryValue"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            gleam@dynamic@decode:then(
                                {decoder,
                                    fun gleam@dynamic@decode:decode_string/1},
                                fun(S@1) ->
                                    gleam@dynamic@decode:success(
                                        gleam_stdlib:identity(S@1)
                                    )
                                end
                            )
                        ),
                        fun(Binary_value) ->
                            gleam@dynamic@decode:field(
                                <<"DataType"/utf8>>,
                                {decoder,
                                    fun gleam@dynamic@decode:decode_string/1},
                                fun(Data_type) ->
                                    gleam@dynamic@decode:optional_field(
                                        <<"StringListValues"/utf8>>,
                                        none,
                                        gleam@dynamic@decode:optional(
                                            gleam@dynamic@decode:list(
                                                {decoder,
                                                    fun gleam@dynamic@decode:decode_string/1}
                                            )
                                        ),
                                        fun(String_list_values) ->
                                            gleam@dynamic@decode:optional_field(
                                                <<"StringValue"/utf8>>,
                                                none,
                                                gleam@dynamic@decode:optional(
                                                    {decoder,
                                                        fun gleam@dynamic@decode:decode_string/1}
                                                ),
                                                fun(String_value) ->
                                                    gleam@dynamic@decode:success(
                                                        {message_system_attribute_value,
                                                            Binary_list_values,
                                                            Binary_value,
                                                            Data_type,
                                                            String_list_values,
                                                            String_value}
                                                    )
                                                end
                                            )
                                        end
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 4203).
-spec decode_send_message_request_struct() -> gleam@dynamic@decode:decoder(send_message_request()).
decode_send_message_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"DelaySeconds"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_int/1}
                ),
                fun(Delay_seconds) ->
                    gleam@dynamic@decode:optional_field(
                        <<"MessageAttributes"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            gleam@dynamic@decode:dict(
                                {decoder,
                                    fun gleam@dynamic@decode:decode_string/1},
                                decode_message_attribute_value_struct()
                            )
                        ),
                        fun(Message_attributes) ->
                            gleam@dynamic@decode:field(
                                <<"MessageBody"/utf8>>,
                                {decoder,
                                    fun gleam@dynamic@decode:decode_string/1},
                                fun(Message_body) ->
                                    gleam@dynamic@decode:optional_field(
                                        <<"MessageDeduplicationId"/utf8>>,
                                        none,
                                        gleam@dynamic@decode:optional(
                                            {decoder,
                                                fun gleam@dynamic@decode:decode_string/1}
                                        ),
                                        fun(Message_deduplication_id) ->
                                            gleam@dynamic@decode:optional_field(
                                                <<"MessageGroupId"/utf8>>,
                                                none,
                                                gleam@dynamic@decode:optional(
                                                    {decoder,
                                                        fun gleam@dynamic@decode:decode_string/1}
                                                ),
                                                fun(Message_group_id) ->
                                                    gleam@dynamic@decode:optional_field(
                                                        <<"MessageSystemAttributes"/utf8>>,
                                                        none,
                                                        gleam@dynamic@decode:optional(
                                                            gleam@dynamic@decode:dict(
                                                                {decoder,
                                                                    fun gleam@dynamic@decode:decode_string/1},
                                                                decode_message_system_attribute_value_struct(
                                                                    
                                                                )
                                                            )
                                                        ),
                                                        fun(
                                                            Message_system_attributes
                                                        ) ->
                                                            gleam@dynamic@decode:field(
                                                                <<"QueueUrl"/utf8>>,
                                                                {decoder,
                                                                    fun gleam@dynamic@decode:decode_string/1},
                                                                fun(Queue_url) ->
                                                                    gleam@dynamic@decode:success(
                                                                        {send_message_request,
                                                                            Delay_seconds,
                                                                            Message_attributes,
                                                                            Message_body,
                                                                            Message_deduplication_id,
                                                                            Message_group_id,
                                                                            Message_system_attributes,
                                                                            Queue_url}
                                                                    )
                                                                end
                                                            )
                                                        end
                                                    )
                                                end
                                            )
                                        end
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 4255).
-spec encode_message_system_attribute_name_for_sends_enum(
    message_system_attribute_name_for_sends()
) -> gleam@json:json().
encode_message_system_attribute_name_for_sends_enum(V) ->
    case V of
        message_system_attribute_name_for_sends_awstraceheader ->
            gleam@json:string(<<"AWSTraceHeader"/utf8>>)
    end.

-file("src/aws/services/sqs.gleam", 4264).
-spec decode_message_system_attribute_name_for_sends_enum() -> gleam@dynamic@decode:decoder(message_system_attribute_name_for_sends()).
decode_message_system_attribute_name_for_sends_enum() ->
    gleam@dynamic@decode:then(
        {decoder, fun gleam@dynamic@decode:decode_string/1},
        fun(S) -> case S of
                <<"AWSTraceHeader"/utf8>> ->
                    gleam@dynamic@decode:success(
                        message_system_attribute_name_for_sends_awstraceheader
                    );

                _ ->
                    gleam@dynamic@decode:failure(
                        message_system_attribute_name_for_sends_awstraceheader,
                        <<"unknown enum value"/utf8>>
                    )
            end end
    ).

-file("src/aws/services/sqs.gleam", 4290).
-spec message_system_attribute_value_default(binary()) -> message_system_attribute_value().
message_system_attribute_value_default(Data_type) ->
    {message_system_attribute_value, none, none, Data_type, none, none}.

-file("src/aws/services/sqs.gleam", 4346).
-spec encode_message_system_attribute_value_struct_top(
    message_system_attribute_value()
) -> gleam@json:json().
encode_message_system_attribute_value_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"BinaryListValues"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun(B) ->
                                gleam@json:string(
                                    gleam_stdlib:base64_encode(B, true)
                                )
                            end
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"BinaryValue"/utf8>>,
                    (fun(B@1) ->
                        gleam@json:string(gleam_stdlib:base64_encode(B@1, true))
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"DataType"/utf8>>, gleam@json:string(V@2)} | Pairs@2]
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"StringListValues"/utf8>>,
                    (fun(Xs@1) ->
                        gleam@json:array(Xs@1, fun gleam@json:string/1)
                    end)(V@3)} |
                Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"StringValue"/utf8>>, gleam@json:string(V@4)} | Pairs@4];

        none ->
            Pairs@4
    end,
    gleam@json:object(Pairs@5).

-file("src/aws/services/sqs.gleam", 4444).
-spec send_message_result_default() -> send_message_result().
send_message_result_default() ->
    {send_message_result, none, none, none, none, none}.

-file("src/aws/services/sqs.gleam", 4454).
-spec encode_send_message_result_struct(send_message_result()) -> gleam@json:json().
encode_send_message_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"MD5OfMessageAttributes"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"MD5OfMessageBody"/utf8>>, gleam@json:string(V@1)} | Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"MD5OfMessageSystemAttributes"/utf8>>, gleam@json:string(V@2)} |
                Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"MessageId"/utf8>>, gleam@json:string(V@3)} | Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"SequenceNumber"/utf8>>, gleam@json:string(V@4)} | Pairs@4];

        none ->
            Pairs@4
    end,
    gleam@json:object(Pairs@5).

-file("src/aws/services/sqs.gleam", 4484).
-spec encode_send_message_result_struct_top(send_message_result()) -> gleam@json:json().
encode_send_message_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"MD5OfMessageAttributes"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"MD5OfMessageBody"/utf8>>, gleam@json:string(V@1)} | Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"MD5OfMessageSystemAttributes"/utf8>>, gleam@json:string(V@2)} |
                Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"MessageId"/utf8>>, gleam@json:string(V@3)} | Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"SequenceNumber"/utf8>>, gleam@json:string(V@4)} | Pairs@4];

        none ->
            Pairs@4
    end,
    gleam@json:object(Pairs@5).

-file("src/aws/services/sqs.gleam", 4514).
-spec decode_send_message_result_struct() -> gleam@dynamic@decode:decoder(send_message_result()).
decode_send_message_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"MD5OfMessageAttributes"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Md5_of_message_attributes) ->
                    gleam@dynamic@decode:optional_field(
                        <<"MD5OfMessageBody"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            {decoder, fun gleam@dynamic@decode:decode_string/1}
                        ),
                        fun(Md5_of_message_body) ->
                            gleam@dynamic@decode:optional_field(
                                <<"MD5OfMessageSystemAttributes"/utf8>>,
                                none,
                                gleam@dynamic@decode:optional(
                                    {decoder,
                                        fun gleam@dynamic@decode:decode_string/1}
                                ),
                                fun(Md5_of_message_system_attributes) ->
                                    gleam@dynamic@decode:optional_field(
                                        <<"MessageId"/utf8>>,
                                        none,
                                        gleam@dynamic@decode:optional(
                                            {decoder,
                                                fun gleam@dynamic@decode:decode_string/1}
                                        ),
                                        fun(Message_id) ->
                                            gleam@dynamic@decode:optional_field(
                                                <<"SequenceNumber"/utf8>>,
                                                none,
                                                gleam@dynamic@decode:optional(
                                                    {decoder,
                                                        fun gleam@dynamic@decode:decode_string/1}
                                                ),
                                                fun(Sequence_number) ->
                                                    gleam@dynamic@decode:success(
                                                        {send_message_result,
                                                            Md5_of_message_attributes,
                                                            Md5_of_message_body,
                                                            Md5_of_message_system_attributes,
                                                            Message_id,
                                                            Sequence_number}
                                                    )
                                                end
                                            )
                                        end
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 4554).
-spec invalid_message_contents_default() -> invalid_message_contents().
invalid_message_contents_default() ->
    {invalid_message_contents, none}.

-file("src/aws/services/sqs.gleam", 4558).
-spec encode_invalid_message_contents_struct(invalid_message_contents()) -> gleam@json:json().
encode_invalid_message_contents_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 4569).
-spec encode_invalid_message_contents_struct_top(invalid_message_contents()) -> gleam@json:json().
encode_invalid_message_contents_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 4580).
-spec decode_invalid_message_contents_struct() -> gleam@dynamic@decode:decoder(invalid_message_contents()).
decode_invalid_message_contents_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {invalid_message_contents, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 4599).
-spec send_message_batch_request_default(
    list(send_message_batch_request_entry()),
    binary()
) -> send_message_batch_request().
send_message_batch_request_default(Entries, Queue_url) ->
    {send_message_batch_request, Entries, Queue_url}.

-file("src/aws/services/sqs.gleam", 4693).
-spec encode_send_message_batch_request_entry_struct(
    send_message_batch_request_entry()
) -> gleam@json:json().
encode_send_message_batch_request_entry_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"DelaySeconds"/utf8>>, gleam@json:int(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"Id"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"MessageAttributes"/utf8>>,
                    (fun(D) ->
                        gleam@json:object(
                            begin
                                _pipe = maps:to_list(D),
                                gleam@list:map(
                                    _pipe,
                                    fun(Pair) ->
                                        {erlang:element(1, Pair),
                                            encode_message_attribute_value_struct(
                                                erlang:element(2, Pair)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V@2)} |
                Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = begin
        V@3 = erlang:element(5, Input),
        [{<<"MessageBody"/utf8>>, gleam@json:string(V@3)} | Pairs@3]
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"MessageDeduplicationId"/utf8>>, gleam@json:string(V@4)} |
                Pairs@4];

        none ->
            Pairs@4
    end,
    Pairs@6 = case erlang:element(7, Input) of
        {some, V@5} ->
            [{<<"MessageGroupId"/utf8>>, gleam@json:string(V@5)} | Pairs@5];

        none ->
            Pairs@5
    end,
    Pairs@7 = case erlang:element(8, Input) of
        {some, V@6} ->
            [{<<"MessageSystemAttributes"/utf8>>,
                    (fun(D@1) ->
                        gleam@json:object(
                            begin
                                _pipe@1 = maps:to_list(D@1),
                                gleam@list:map(
                                    _pipe@1,
                                    fun(Pair@1) ->
                                        {erlang:element(1, Pair@1),
                                            encode_message_system_attribute_value_struct(
                                                erlang:element(2, Pair@1)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V@6)} |
                Pairs@6];

        none ->
            Pairs@6
    end,
    gleam@json:object(Pairs@7).

-file("src/aws/services/sqs.gleam", 4606).
-spec encode_send_message_batch_request_struct(send_message_batch_request()) -> gleam@json:json().
encode_send_message_batch_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Entries"/utf8>>,
                (fun(Xs) ->
                    gleam@json:array(
                        Xs,
                        fun encode_send_message_batch_request_entry_struct/1
                    )
                end)(V)} |
            Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 4629).
-spec encode_send_message_batch_request_struct_top(send_message_batch_request()) -> gleam@json:json().
encode_send_message_batch_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Entries"/utf8>>,
                (fun(Xs) ->
                    gleam@json:array(
                        Xs,
                        fun encode_send_message_batch_request_entry_struct/1
                    )
                end)(V)} |
            Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 4815).
-spec decode_send_message_batch_request_entry_struct() -> gleam@dynamic@decode:decoder(send_message_batch_request_entry()).
decode_send_message_batch_request_entry_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"DelaySeconds"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_int/1}
                ),
                fun(Delay_seconds) ->
                    gleam@dynamic@decode:field(
                        <<"Id"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Id) ->
                            gleam@dynamic@decode:optional_field(
                                <<"MessageAttributes"/utf8>>,
                                none,
                                gleam@dynamic@decode:optional(
                                    gleam@dynamic@decode:dict(
                                        {decoder,
                                            fun gleam@dynamic@decode:decode_string/1},
                                        decode_message_attribute_value_struct()
                                    )
                                ),
                                fun(Message_attributes) ->
                                    gleam@dynamic@decode:field(
                                        <<"MessageBody"/utf8>>,
                                        {decoder,
                                            fun gleam@dynamic@decode:decode_string/1},
                                        fun(Message_body) ->
                                            gleam@dynamic@decode:optional_field(
                                                <<"MessageDeduplicationId"/utf8>>,
                                                none,
                                                gleam@dynamic@decode:optional(
                                                    {decoder,
                                                        fun gleam@dynamic@decode:decode_string/1}
                                                ),
                                                fun(Message_deduplication_id) ->
                                                    gleam@dynamic@decode:optional_field(
                                                        <<"MessageGroupId"/utf8>>,
                                                        none,
                                                        gleam@dynamic@decode:optional(
                                                            {decoder,
                                                                fun gleam@dynamic@decode:decode_string/1}
                                                        ),
                                                        fun(Message_group_id) ->
                                                            gleam@dynamic@decode:optional_field(
                                                                <<"MessageSystemAttributes"/utf8>>,
                                                                none,
                                                                gleam@dynamic@decode:optional(
                                                                    gleam@dynamic@decode:dict(
                                                                        {decoder,
                                                                            fun gleam@dynamic@decode:decode_string/1},
                                                                        decode_message_system_attribute_value_struct(
                                                                            
                                                                        )
                                                                    )
                                                                ),
                                                                fun(
                                                                    Message_system_attributes
                                                                ) ->
                                                                    gleam@dynamic@decode:success(
                                                                        {send_message_batch_request_entry,
                                                                            Delay_seconds,
                                                                            Id,
                                                                            Message_attributes,
                                                                            Message_body,
                                                                            Message_deduplication_id,
                                                                            Message_group_id,
                                                                            Message_system_attributes}
                                                                    )
                                                                end
                                                            )
                                                        end
                                                    )
                                                end
                                            )
                                        end
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 4652).
-spec decode_send_message_batch_request_struct() -> gleam@dynamic@decode:decoder(send_message_batch_request()).
decode_send_message_batch_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"Entries"/utf8>>,
                gleam@dynamic@decode:list(
                    decode_send_message_batch_request_entry_struct()
                ),
                fun(Entries) ->
                    gleam@dynamic@decode:field(
                        <<"QueueUrl"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Queue_url) ->
                            gleam@dynamic@decode:success(
                                {send_message_batch_request, Entries, Queue_url}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 4678).
-spec send_message_batch_request_entry_default(binary(), binary()) -> send_message_batch_request_entry().
send_message_batch_request_entry_default(Id, Message_body) ->
    {send_message_batch_request_entry,
        none,
        Id,
        none,
        Message_body,
        none,
        none,
        none}.

-file("src/aws/services/sqs.gleam", 4754).
-spec encode_send_message_batch_request_entry_struct_top(
    send_message_batch_request_entry()
) -> gleam@json:json().
encode_send_message_batch_request_entry_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"DelaySeconds"/utf8>>, gleam@json:int(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"Id"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"MessageAttributes"/utf8>>,
                    (fun(D) ->
                        gleam@json:object(
                            begin
                                _pipe = maps:to_list(D),
                                gleam@list:map(
                                    _pipe,
                                    fun(Pair) ->
                                        {erlang:element(1, Pair),
                                            encode_message_attribute_value_struct(
                                                erlang:element(2, Pair)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V@2)} |
                Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = begin
        V@3 = erlang:element(5, Input),
        [{<<"MessageBody"/utf8>>, gleam@json:string(V@3)} | Pairs@3]
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"MessageDeduplicationId"/utf8>>, gleam@json:string(V@4)} |
                Pairs@4];

        none ->
            Pairs@4
    end,
    Pairs@6 = case erlang:element(7, Input) of
        {some, V@5} ->
            [{<<"MessageGroupId"/utf8>>, gleam@json:string(V@5)} | Pairs@5];

        none ->
            Pairs@5
    end,
    Pairs@7 = case erlang:element(8, Input) of
        {some, V@6} ->
            [{<<"MessageSystemAttributes"/utf8>>,
                    (fun(D@1) ->
                        gleam@json:object(
                            begin
                                _pipe@1 = maps:to_list(D@1),
                                gleam@list:map(
                                    _pipe@1,
                                    fun(Pair@1) ->
                                        {erlang:element(1, Pair@1),
                                            encode_message_system_attribute_value_struct(
                                                erlang:element(2, Pair@1)
                                            )}
                                    end
                                )
                            end
                        )
                    end)(V@6)} |
                Pairs@6];

        none ->
            Pairs@6
    end,
    gleam@json:object(Pairs@7).

-file("src/aws/services/sqs.gleam", 4870).
-spec send_message_batch_result_default() -> send_message_batch_result().
send_message_batch_result_default() ->
    {send_message_batch_result, none, none}.

-file("src/aws/services/sqs.gleam", 4973).
-spec encode_send_message_batch_result_entry_struct(
    send_message_batch_result_entry()
) -> gleam@json:json().
encode_send_message_batch_result_entry_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Id"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"MD5OfMessageAttributes"/utf8>>, gleam@json:string(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"MD5OfMessageBody"/utf8>>, gleam@json:string(V@2)} | Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"MD5OfMessageSystemAttributes"/utf8>>, gleam@json:string(V@3)} |
                Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"MessageId"/utf8>>, gleam@json:string(V@4)} | Pairs@4];

        none ->
            Pairs@4
    end,
    Pairs@6 = case erlang:element(7, Input) of
        {some, V@5} ->
            [{<<"SequenceNumber"/utf8>>, gleam@json:string(V@5)} | Pairs@5];

        none ->
            Pairs@5
    end,
    gleam@json:object(Pairs@6).

-file("src/aws/services/sqs.gleam", 4874).
-spec encode_send_message_batch_result_struct(send_message_batch_result()) -> gleam@json:json().
encode_send_message_batch_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Failed"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun encode_batch_result_error_entry_struct/1
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"Successful"/utf8>>,
                    (fun(Xs@1) ->
                        gleam@json:array(
                            Xs@1,
                            fun encode_send_message_batch_result_entry_struct/1
                        )
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 4903).
-spec encode_send_message_batch_result_struct_top(send_message_batch_result()) -> gleam@json:json().
encode_send_message_batch_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Failed"/utf8>>,
                    (fun(Xs) ->
                        gleam@json:array(
                            Xs,
                            fun encode_batch_result_error_entry_struct/1
                        )
                    end)(V)} |
                Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"Successful"/utf8>>,
                    (fun(Xs@1) ->
                        gleam@json:array(
                            Xs@1,
                            fun encode_send_message_batch_result_entry_struct/1
                        )
                    end)(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 5041).
-spec decode_send_message_batch_result_entry_struct() -> gleam@dynamic@decode:decoder(send_message_batch_result_entry()).
decode_send_message_batch_result_entry_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Id"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Id) ->
                    gleam@dynamic@decode:optional_field(
                        <<"MD5OfMessageAttributes"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            {decoder, fun gleam@dynamic@decode:decode_string/1}
                        ),
                        fun(Md5_of_message_attributes) ->
                            gleam@dynamic@decode:optional_field(
                                <<"MD5OfMessageBody"/utf8>>,
                                none,
                                gleam@dynamic@decode:optional(
                                    {decoder,
                                        fun gleam@dynamic@decode:decode_string/1}
                                ),
                                fun(Md5_of_message_body) ->
                                    gleam@dynamic@decode:optional_field(
                                        <<"MD5OfMessageSystemAttributes"/utf8>>,
                                        none,
                                        gleam@dynamic@decode:optional(
                                            {decoder,
                                                fun gleam@dynamic@decode:decode_string/1}
                                        ),
                                        fun(Md5_of_message_system_attributes) ->
                                            gleam@dynamic@decode:optional_field(
                                                <<"MessageId"/utf8>>,
                                                none,
                                                gleam@dynamic@decode:optional(
                                                    {decoder,
                                                        fun gleam@dynamic@decode:decode_string/1}
                                                ),
                                                fun(Message_id) ->
                                                    gleam@dynamic@decode:optional_field(
                                                        <<"SequenceNumber"/utf8>>,
                                                        none,
                                                        gleam@dynamic@decode:optional(
                                                            {decoder,
                                                                fun gleam@dynamic@decode:decode_string/1}
                                                        ),
                                                        fun(Sequence_number) ->
                                                            gleam@dynamic@decode:success(
                                                                {send_message_batch_result_entry,
                                                                    Id,
                                                                    Md5_of_message_attributes,
                                                                    Md5_of_message_body,
                                                                    Md5_of_message_system_attributes,
                                                                    Message_id,
                                                                    Sequence_number}
                                                            )
                                                        end
                                                    )
                                                end
                                            )
                                        end
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 4932).
-spec decode_send_message_batch_result_struct() -> gleam@dynamic@decode:decoder(send_message_batch_result()).
decode_send_message_batch_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"Failed"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    gleam@dynamic@decode:list(
                        decode_batch_result_error_entry_struct()
                    )
                ),
                fun(Failed) ->
                    gleam@dynamic@decode:optional_field(
                        <<"Successful"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            gleam@dynamic@decode:list(
                                decode_send_message_batch_result_entry_struct()
                            )
                        ),
                        fun(Successful) ->
                            gleam@dynamic@decode:success(
                                {send_message_batch_result, Failed, Successful}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 4962).
-spec send_message_batch_result_entry_default() -> send_message_batch_result_entry().
send_message_batch_result_entry_default() ->
    {send_message_batch_result_entry, none, none, none, none, none, none}.

-file("src/aws/services/sqs.gleam", 5007).
-spec encode_send_message_batch_result_entry_struct_top(
    send_message_batch_result_entry()
) -> gleam@json:json().
encode_send_message_batch_result_entry_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"Id"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"MD5OfMessageAttributes"/utf8>>, gleam@json:string(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = case erlang:element(4, Input) of
        {some, V@2} ->
            [{<<"MD5OfMessageBody"/utf8>>, gleam@json:string(V@2)} | Pairs@2];

        none ->
            Pairs@2
    end,
    Pairs@4 = case erlang:element(5, Input) of
        {some, V@3} ->
            [{<<"MD5OfMessageSystemAttributes"/utf8>>, gleam@json:string(V@3)} |
                Pairs@3];

        none ->
            Pairs@3
    end,
    Pairs@5 = case erlang:element(6, Input) of
        {some, V@4} ->
            [{<<"MessageId"/utf8>>, gleam@json:string(V@4)} | Pairs@4];

        none ->
            Pairs@4
    end,
    Pairs@6 = case erlang:element(7, Input) of
        {some, V@5} ->
            [{<<"SequenceNumber"/utf8>>, gleam@json:string(V@5)} | Pairs@5];

        none ->
            Pairs@5
    end,
    gleam@json:object(Pairs@6).

-file("src/aws/services/sqs.gleam", 5089).
-spec batch_request_too_long_default() -> batch_request_too_long().
batch_request_too_long_default() ->
    {batch_request_too_long, none}.

-file("src/aws/services/sqs.gleam", 5093).
-spec encode_batch_request_too_long_struct(batch_request_too_long()) -> gleam@json:json().
encode_batch_request_too_long_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 5104).
-spec encode_batch_request_too_long_struct_top(batch_request_too_long()) -> gleam@json:json().
encode_batch_request_too_long_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"message"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 5115).
-spec decode_batch_request_too_long_struct() -> gleam@dynamic@decode:decoder(batch_request_too_long()).
decode_batch_request_too_long_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"message"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Message) ->
                    gleam@dynamic@decode:success(
                        {batch_request_too_long, Message}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 5134).
-spec set_queue_attributes_request_default(
    gleam@dict:dict(binary(), binary()),
    binary()
) -> set_queue_attributes_request().
set_queue_attributes_request_default(Attributes, Queue_url) ->
    {set_queue_attributes_request, Attributes, Queue_url}.

-file("src/aws/services/sqs.gleam", 5141).
-spec encode_set_queue_attributes_request_struct(set_queue_attributes_request()) -> gleam@json:json().
encode_set_queue_attributes_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Attributes"/utf8>>,
                (fun(D) ->
                    gleam@json:object(
                        begin
                            _pipe = maps:to_list(D),
                            gleam@list:map(
                                _pipe,
                                fun(Pair) ->
                                    {erlang:element(1, Pair),
                                        gleam@json:string(
                                            erlang:element(2, Pair)
                                        )}
                                end
                            )
                        end
                    )
                end)(V)} |
            Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 5167).
-spec encode_set_queue_attributes_request_struct_top(
    set_queue_attributes_request()
) -> gleam@json:json().
encode_set_queue_attributes_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"Attributes"/utf8>>,
                (fun(D) ->
                    gleam@json:object(
                        begin
                            _pipe = maps:to_list(D),
                            gleam@list:map(
                                _pipe,
                                fun(Pair) ->
                                    {erlang:element(1, Pair),
                                        gleam@json:string(
                                            erlang:element(2, Pair)
                                        )}
                                end
                            )
                        end
                    )
                end)(V)} |
            Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V@1)} | Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 5193).
-spec decode_set_queue_attributes_request_struct() -> gleam@dynamic@decode:decoder(set_queue_attributes_request()).
decode_set_queue_attributes_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"Attributes"/utf8>>,
                gleam@dynamic@decode:dict(
                    {decoder, fun gleam@dynamic@decode:decode_string/1},
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Attributes) ->
                    gleam@dynamic@decode:field(
                        <<"QueueUrl"/utf8>>,
                        {decoder, fun gleam@dynamic@decode:decode_string/1},
                        fun(Queue_url) ->
                            gleam@dynamic@decode:success(
                                {set_queue_attributes_request,
                                    Attributes,
                                    Queue_url}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 5216).
-spec start_message_move_task_request_default(binary()) -> start_message_move_task_request().
start_message_move_task_request_default(Source_arn) ->
    {start_message_move_task_request, none, none, Source_arn}.

-file("src/aws/services/sqs.gleam", 5226).
-spec encode_start_message_move_task_request_struct(
    start_message_move_task_request()
) -> gleam@json:json().
encode_start_message_move_task_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"DestinationArn"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"MaxNumberOfMessagesPerSecond"/utf8>>, gleam@json:int(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"SourceArn"/utf8>>, gleam@json:string(V@2)} | Pairs@2]
    end,
    gleam@json:object(Pairs@3).

-file("src/aws/services/sqs.gleam", 5245).
-spec encode_start_message_move_task_request_struct_top(
    start_message_move_task_request()
) -> gleam@json:json().
encode_start_message_move_task_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"DestinationArn"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    Pairs@2 = case erlang:element(3, Input) of
        {some, V@1} ->
            [{<<"MaxNumberOfMessagesPerSecond"/utf8>>, gleam@json:int(V@1)} |
                Pairs@1];

        none ->
            Pairs@1
    end,
    Pairs@3 = begin
        V@2 = erlang:element(4, Input),
        [{<<"SourceArn"/utf8>>, gleam@json:string(V@2)} | Pairs@2]
    end,
    gleam@json:object(Pairs@3).

-file("src/aws/services/sqs.gleam", 5264).
-spec decode_start_message_move_task_request_struct() -> gleam@dynamic@decode:decoder(start_message_move_task_request()).
decode_start_message_move_task_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"DestinationArn"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Destination_arn) ->
                    gleam@dynamic@decode:optional_field(
                        <<"MaxNumberOfMessagesPerSecond"/utf8>>,
                        none,
                        gleam@dynamic@decode:optional(
                            {decoder, fun gleam@dynamic@decode:decode_int/1}
                        ),
                        fun(Max_number_of_messages_per_second) ->
                            gleam@dynamic@decode:field(
                                <<"SourceArn"/utf8>>,
                                {decoder,
                                    fun gleam@dynamic@decode:decode_string/1},
                                fun(Source_arn) ->
                                    gleam@dynamic@decode:success(
                                        {start_message_move_task_request,
                                            Destination_arn,
                                            Max_number_of_messages_per_second,
                                            Source_arn}
                                    )
                                end
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 5290).
-spec start_message_move_task_result_default() -> start_message_move_task_result().
start_message_move_task_result_default() ->
    {start_message_move_task_result, none}.

-file("src/aws/services/sqs.gleam", 5294).
-spec encode_start_message_move_task_result_struct(
    start_message_move_task_result()
) -> gleam@json:json().
encode_start_message_move_task_result_struct(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"TaskHandle"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 5305).
-spec encode_start_message_move_task_result_struct_top(
    start_message_move_task_result()
) -> gleam@json:json().
encode_start_message_move_task_result_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = case erlang:element(2, Input) of
        {some, V} ->
            [{<<"TaskHandle"/utf8>>, gleam@json:string(V)} | Pairs];

        none ->
            Pairs
    end,
    gleam@json:object(Pairs@1).

-file("src/aws/services/sqs.gleam", 5316).
-spec decode_start_message_move_task_result_struct() -> gleam@dynamic@decode:decoder(start_message_move_task_result()).
decode_start_message_move_task_result_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:optional_field(
                <<"TaskHandle"/utf8>>,
                none,
                gleam@dynamic@decode:optional(
                    {decoder, fun gleam@dynamic@decode:decode_string/1}
                ),
                fun(Task_handle) ->
                    gleam@dynamic@decode:success(
                        {start_message_move_task_result, Task_handle}
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 5332).
-spec tag_queue_request_default(binary(), gleam@dict:dict(binary(), binary())) -> tag_queue_request().
tag_queue_request_default(Queue_url, Tags) ->
    {tag_queue_request, Queue_url, Tags}.

-file("src/aws/services/sqs.gleam", 5339).
-spec encode_tag_queue_request_struct(tag_queue_request()) -> gleam@json:json().
encode_tag_queue_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"Tags"/utf8>>,
                (fun(D) ->
                    gleam@json:object(
                        begin
                            _pipe = maps:to_list(D),
                            gleam@list:map(
                                _pipe,
                                fun(Pair) ->
                                    {erlang:element(1, Pair),
                                        gleam@json:string(
                                            erlang:element(2, Pair)
                                        )}
                                end
                            )
                        end
                    )
                end)(V@1)} |
            Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 5363).
-spec encode_tag_queue_request_struct_top(tag_queue_request()) -> gleam@json:json().
encode_tag_queue_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"Tags"/utf8>>,
                (fun(D) ->
                    gleam@json:object(
                        begin
                            _pipe = maps:to_list(D),
                            gleam@list:map(
                                _pipe,
                                fun(Pair) ->
                                    {erlang:element(1, Pair),
                                        gleam@json:string(
                                            erlang:element(2, Pair)
                                        )}
                                end
                            )
                        end
                    )
                end)(V@1)} |
            Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 5389).
-spec decode_tag_queue_request_struct() -> gleam@dynamic@decode:decoder(tag_queue_request()).
decode_tag_queue_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"QueueUrl"/utf8>>,
                {decoder, fun gleam@dynamic@decode:decode_string/1},
                fun(Queue_url) ->
                    gleam@dynamic@decode:field(
                        <<"Tags"/utf8>>,
                        gleam@dynamic@decode:dict(
                            {decoder, fun gleam@dynamic@decode:decode_string/1},
                            {decoder, fun gleam@dynamic@decode:decode_string/1}
                        ),
                        fun(Tags) ->
                            gleam@dynamic@decode:success(
                                {tag_queue_request, Queue_url, Tags}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 5400).
-spec untag_queue_request_default(binary(), list(binary())) -> untag_queue_request().
untag_queue_request_default(Queue_url, Tag_keys) ->
    {untag_queue_request, Queue_url, Tag_keys}.

-file("src/aws/services/sqs.gleam", 5407).
-spec encode_untag_queue_request_struct(untag_queue_request()) -> gleam@json:json().
encode_untag_queue_request_struct(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"TagKeys"/utf8>>,
                (fun(Xs) -> gleam@json:array(Xs, fun gleam@json:string/1) end)(
                    V@1
                )} |
            Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 5422).
-spec encode_untag_queue_request_struct_top(untag_queue_request()) -> gleam@json:json().
encode_untag_queue_request_struct_top(Input) ->
    Pairs = [],
    Pairs@1 = begin
        V = erlang:element(2, Input),
        [{<<"QueueUrl"/utf8>>, gleam@json:string(V)} | Pairs]
    end,
    Pairs@2 = begin
        V@1 = erlang:element(3, Input),
        [{<<"TagKeys"/utf8>>,
                (fun(Xs) -> gleam@json:array(Xs, fun gleam@json:string/1) end)(
                    V@1
                )} |
            Pairs@1]
    end,
    gleam@json:object(Pairs@2).

-file("src/aws/services/sqs.gleam", 5437).
-spec decode_untag_queue_request_struct() -> gleam@dynamic@decode:decoder(untag_queue_request()).
decode_untag_queue_request_struct() ->
    gleam@dynamic@decode:recursive(
        fun() ->
            gleam@dynamic@decode:field(
                <<"QueueUrl"/utf8>>,
                {decoder, fun gleam@dynamic@decode:decode_string/1},
                fun(Queue_url) ->
                    gleam@dynamic@decode:field(
                        <<"TagKeys"/utf8>>,
                        gleam@dynamic@decode:list(
                            {decoder, fun gleam@dynamic@decode:decode_string/1}
                        ),
                        fun(Tag_keys) ->
                            gleam@dynamic@decode:success(
                                {untag_queue_request, Queue_url, Tag_keys}
                            )
                        end
                    )
                end
            )
        end
    ).

-file("src/aws/services/sqs.gleam", 5448).
-spec add_permission_output_default() -> add_permission_output().
add_permission_output_default() ->
    add_permission_output.

-file("src/aws/services/sqs.gleam", 5452).
-spec decode_add_permission_output_struct() -> gleam@dynamic@decode:decoder(add_permission_output()).
decode_add_permission_output_struct() ->
    gleam@dynamic@decode:success(add_permission_output).

-file("src/aws/services/sqs.gleam", 5458).
-spec encode_add_permission_input(add_permission_request()) -> binary().
encode_add_permission_input(Input) ->
    gleam@json:to_string(encode_add_permission_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 5462).
-spec decode_add_permission_output(binary()) -> {ok, add_permission_output()} |
    {error, binary()}.
decode_add_permission_output(Body) ->
    case gleam@json:parse(Body, decode_add_permission_output_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 5471).
-spec build_add_permission_request(add_permission_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_add_permission_request(Input) ->
    Body_str = encode_add_permission_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.AddPermission"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 5486).
-spec parse_add_permission_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, add_permission_output()} | {error, binary()}.
parse_add_permission_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_add_permission_output(<<"{}"/utf8>>);

                _ ->
                    decode_add_permission_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 5512).
-spec add_permission_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, add_permission_error()} | {error, nil})}).
add_permission_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {add_permission_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok, {add_permission_error_invalid_security, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"OverLimit"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(Body@2, decode_over_limit_struct()) of
                    {ok, V@2} ->
                        {ok, {add_permission_error_over_limit, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(
                    Body@3,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@3} ->
                        {ok, {add_permission_error_queue_does_not_exist, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(Body@4, decode_request_throttled_struct()) of
                    {ok, V@4} ->
                        {ok, {add_permission_error_request_throttled, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@5) ->
                case gleam@json:parse(
                    Body@5,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@5} ->
                        {ok, {add_permission_error_unsupported_operation, V@5}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 5553).
-spec translate_add_permission_error(aws@internal@client@runtime:client_error()) -> add_permission_error().
translate_add_permission_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        add_permission_error_decoders(),
        fun(Reason) -> {add_permission_error_transport, Reason} end,
        fun(Et, S, Body) -> {add_permission_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 5566).
-spec encode_cancel_message_move_task_input(cancel_message_move_task_request()) -> binary().
encode_cancel_message_move_task_input(Input) ->
    gleam@json:to_string(
        encode_cancel_message_move_task_request_struct_top(Input)
    ).

-file("src/aws/services/sqs.gleam", 5572).
-spec decode_cancel_message_move_task_output(binary()) -> {ok,
        cancel_message_move_task_result()} |
    {error, binary()}.
decode_cancel_message_move_task_output(Body) ->
    case gleam@json:parse(Body, decode_cancel_message_move_task_result_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 5581).
-spec build_cancel_message_move_task_request(cancel_message_move_task_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_cancel_message_move_task_request(Input) ->
    Body_str = encode_cancel_message_move_task_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>,
                <<"AmazonSQS.CancelMessageMoveTask"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 5596).
-spec parse_cancel_message_move_task_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, cancel_message_move_task_result()} | {error, binary()}.
parse_cancel_message_move_task_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_cancel_message_move_task_output(<<"{}"/utf8>>);

                _ ->
                    decode_cancel_message_move_task_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 5627).
-spec cancel_message_move_task_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, cancel_message_move_task_error()} | {error, nil})}).
cancel_message_move_task_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok,
                            {cancel_message_move_task_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok,
                            {cancel_message_move_task_error_invalid_security,
                                V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(Body@2, decode_request_throttled_struct()) of
                    {ok, V@2} ->
                        {ok,
                            {cancel_message_move_task_error_request_throttled,
                                V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"ResourceNotFoundException"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(
                    Body@3,
                    decode_resource_not_found_exception_struct()
                ) of
                    {ok, V@3} ->
                        {ok,
                            {cancel_message_move_task_error_resource_not_found_exception,
                                V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@4} ->
                        {ok,
                            {cancel_message_move_task_error_unsupported_operation,
                                V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 5663).
-spec translate_cancel_message_move_task_error(
    aws@internal@client@runtime:client_error()
) -> cancel_message_move_task_error().
translate_cancel_message_move_task_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        cancel_message_move_task_error_decoders(),
        fun(Reason) -> {cancel_message_move_task_error_transport, Reason} end,
        fun(Et, S, Body) ->
            {cancel_message_move_task_error_unknown, Et, S, Body}
        end
    ).

-file("src/aws/services/sqs.gleam", 5680).
-spec change_message_visibility_output_default() -> change_message_visibility_output().
change_message_visibility_output_default() ->
    change_message_visibility_output.

-file("src/aws/services/sqs.gleam", 5684).
-spec decode_change_message_visibility_output_struct() -> gleam@dynamic@decode:decoder(change_message_visibility_output()).
decode_change_message_visibility_output_struct() ->
    gleam@dynamic@decode:success(change_message_visibility_output).

-file("src/aws/services/sqs.gleam", 5690).
-spec encode_change_message_visibility_input(
    change_message_visibility_request()
) -> binary().
encode_change_message_visibility_input(Input) ->
    gleam@json:to_string(
        encode_change_message_visibility_request_struct_top(Input)
    ).

-file("src/aws/services/sqs.gleam", 5696).
-spec decode_change_message_visibility_output(binary()) -> {ok,
        change_message_visibility_output()} |
    {error, binary()}.
decode_change_message_visibility_output(Body) ->
    case gleam@json:parse(
        Body,
        decode_change_message_visibility_output_struct()
    ) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 5705).
-spec build_change_message_visibility_request(
    change_message_visibility_request()
) -> {binary(), binary(), gleam@dict:dict(binary(), binary()), bitstring()}.
build_change_message_visibility_request(Input) ->
    Body_str = encode_change_message_visibility_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>,
                <<"AmazonSQS.ChangeMessageVisibility"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 5720).
-spec parse_change_message_visibility_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, change_message_visibility_output()} | {error, binary()}.
parse_change_message_visibility_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_change_message_visibility_output(<<"{}"/utf8>>);

                _ ->
                    decode_change_message_visibility_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 5753).
-spec change_message_visibility_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, change_message_visibility_error()} | {error, nil})}).
change_message_visibility_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok,
                            {change_message_visibility_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok,
                            {change_message_visibility_error_invalid_security,
                                V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"MessageNotInflight"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(
                    Body@2,
                    decode_message_not_inflight_struct()
                ) of
                    {ok, V@2} ->
                        {ok,
                            {change_message_visibility_error_message_not_inflight,
                                V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(
                    Body@3,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@3} ->
                        {ok,
                            {change_message_visibility_error_queue_does_not_exist,
                                V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"ReceiptHandleIsInvalid"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_receipt_handle_is_invalid_struct()
                ) of
                    {ok, V@4} ->
                        {ok,
                            {change_message_visibility_error_receipt_handle_is_invalid,
                                V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@5) ->
                case gleam@json:parse(Body@5, decode_request_throttled_struct()) of
                    {ok, V@5} ->
                        {ok,
                            {change_message_visibility_error_request_throttled,
                                V@5}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@6) ->
                case gleam@json:parse(
                    Body@6,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@6} ->
                        {ok,
                            {change_message_visibility_error_unsupported_operation,
                                V@6}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 5801).
-spec translate_change_message_visibility_error(
    aws@internal@client@runtime:client_error()
) -> change_message_visibility_error().
translate_change_message_visibility_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        change_message_visibility_error_decoders(),
        fun(Reason) -> {change_message_visibility_error_transport, Reason} end,
        fun(Et, S, Body) ->
            {change_message_visibility_error_unknown, Et, S, Body}
        end
    ).

-file("src/aws/services/sqs.gleam", 5814).
-spec encode_change_message_visibility_batch_input(
    change_message_visibility_batch_request()
) -> binary().
encode_change_message_visibility_batch_input(Input) ->
    gleam@json:to_string(
        encode_change_message_visibility_batch_request_struct_top(Input)
    ).

-file("src/aws/services/sqs.gleam", 5822).
-spec decode_change_message_visibility_batch_output(binary()) -> {ok,
        change_message_visibility_batch_result()} |
    {error, binary()}.
decode_change_message_visibility_batch_output(Body) ->
    case gleam@json:parse(
        Body,
        decode_change_message_visibility_batch_result_struct()
    ) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 5833).
-spec build_change_message_visibility_batch_request(
    change_message_visibility_batch_request()
) -> {binary(), binary(), gleam@dict:dict(binary(), binary()), bitstring()}.
build_change_message_visibility_batch_request(Input) ->
    Body_str = encode_change_message_visibility_batch_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>,
                <<"AmazonSQS.ChangeMessageVisibilityBatch"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 5848).
-spec parse_change_message_visibility_batch_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, change_message_visibility_batch_result()} | {error, binary()}.
parse_change_message_visibility_batch_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_change_message_visibility_batch_output(<<"{}"/utf8>>);

                _ ->
                    decode_change_message_visibility_batch_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 5889).
-spec change_message_visibility_batch_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, change_message_visibility_batch_error()} |
        {error, nil})}).
change_message_visibility_batch_error_decoders() ->
    [{<<"BatchEntryIdsNotDistinct"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(
                    Body,
                    decode_batch_entry_ids_not_distinct_struct()
                ) of
                    {ok, V} ->
                        {ok,
                            {change_message_visibility_batch_error_batch_entry_ids_not_distinct,
                                V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"EmptyBatchRequest"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(
                    Body@1,
                    decode_empty_batch_request_struct()
                ) of
                    {ok, V@1} ->
                        {ok,
                            {change_message_visibility_batch_error_empty_batch_request,
                                V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidAddress"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(Body@2, decode_invalid_address_struct()) of
                    {ok, V@2} ->
                        {ok,
                            {change_message_visibility_batch_error_invalid_address,
                                V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidBatchEntryId"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(
                    Body@3,
                    decode_invalid_batch_entry_id_struct()
                ) of
                    {ok, V@3} ->
                        {ok,
                            {change_message_visibility_batch_error_invalid_batch_entry_id,
                                V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(Body@4, decode_invalid_security_struct()) of
                    {ok, V@4} ->
                        {ok,
                            {change_message_visibility_batch_error_invalid_security,
                                V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@5) ->
                case gleam@json:parse(
                    Body@5,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@5} ->
                        {ok,
                            {change_message_visibility_batch_error_queue_does_not_exist,
                                V@5}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@6) ->
                case gleam@json:parse(Body@6, decode_request_throttled_struct()) of
                    {ok, V@6} ->
                        {ok,
                            {change_message_visibility_batch_error_request_throttled,
                                V@6}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"TooManyEntriesInBatchRequest"/utf8>>,
            fun(Body@7) ->
                case gleam@json:parse(
                    Body@7,
                    decode_too_many_entries_in_batch_request_struct()
                ) of
                    {ok, V@7} ->
                        {ok,
                            {change_message_visibility_batch_error_too_many_entries_in_batch_request,
                                V@7}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@8) ->
                case gleam@json:parse(
                    Body@8,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@8} ->
                        {ok,
                            {change_message_visibility_batch_error_unsupported_operation,
                                V@8}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 5956).
-spec translate_change_message_visibility_batch_error(
    aws@internal@client@runtime:client_error()
) -> change_message_visibility_batch_error().
translate_change_message_visibility_batch_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        change_message_visibility_batch_error_decoders(),
        fun(Reason) ->
            {change_message_visibility_batch_error_transport, Reason}
        end,
        fun(Et, S, Body) ->
            {change_message_visibility_batch_error_unknown, Et, S, Body}
        end
    ).

-file("src/aws/services/sqs.gleam", 5973).
-spec encode_create_queue_input(create_queue_request()) -> binary().
encode_create_queue_input(Input) ->
    gleam@json:to_string(encode_create_queue_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 5977).
-spec decode_create_queue_output(binary()) -> {ok, create_queue_result()} |
    {error, binary()}.
decode_create_queue_output(Body) ->
    case gleam@json:parse(Body, decode_create_queue_result_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 5986).
-spec build_create_queue_request(create_queue_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_create_queue_request(Input) ->
    Body_str = encode_create_queue_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.CreateQueue"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 6001).
-spec parse_create_queue_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, create_queue_result()} | {error, binary()}.
parse_create_queue_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_create_queue_output(<<"{}"/utf8>>);

                _ ->
                    decode_create_queue_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6029).
-spec create_queue_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, create_queue_error()} | {error, nil})}).
create_queue_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {create_queue_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidAttributeName"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(
                    Body@1,
                    decode_invalid_attribute_name_struct()
                ) of
                    {ok, V@1} ->
                        {ok, {create_queue_error_invalid_attribute_name, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidAttributeValue"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(
                    Body@2,
                    decode_invalid_attribute_value_struct()
                ) of
                    {ok, V@2} ->
                        {ok, {create_queue_error_invalid_attribute_value, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(Body@3, decode_invalid_security_struct()) of
                    {ok, V@3} ->
                        {ok, {create_queue_error_invalid_security, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDeletedRecently"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_queue_deleted_recently_struct()
                ) of
                    {ok, V@4} ->
                        {ok, {create_queue_error_queue_deleted_recently, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueNameExists"/utf8>>,
            fun(Body@5) ->
                case gleam@json:parse(Body@5, decode_queue_name_exists_struct()) of
                    {ok, V@5} ->
                        {ok, {create_queue_error_queue_name_exists, V@5}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@6) ->
                case gleam@json:parse(Body@6, decode_request_throttled_struct()) of
                    {ok, V@6} ->
                        {ok, {create_queue_error_request_throttled, V@6}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@7) ->
                case gleam@json:parse(
                    Body@7,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@7} ->
                        {ok, {create_queue_error_unsupported_operation, V@7}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 6082).
-spec translate_create_queue_error(aws@internal@client@runtime:client_error()) -> create_queue_error().
translate_create_queue_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        create_queue_error_decoders(),
        fun(Reason) -> {create_queue_error_transport, Reason} end,
        fun(Et, S, Body) -> {create_queue_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 6097).
-spec delete_message_output_default() -> delete_message_output().
delete_message_output_default() ->
    delete_message_output.

-file("src/aws/services/sqs.gleam", 6101).
-spec decode_delete_message_output_struct() -> gleam@dynamic@decode:decoder(delete_message_output()).
decode_delete_message_output_struct() ->
    gleam@dynamic@decode:success(delete_message_output).

-file("src/aws/services/sqs.gleam", 6107).
-spec encode_delete_message_input(delete_message_request()) -> binary().
encode_delete_message_input(Input) ->
    gleam@json:to_string(encode_delete_message_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 6111).
-spec decode_delete_message_output(binary()) -> {ok, delete_message_output()} |
    {error, binary()}.
decode_delete_message_output(Body) ->
    case gleam@json:parse(Body, decode_delete_message_output_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6120).
-spec build_delete_message_request(delete_message_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_delete_message_request(Input) ->
    Body_str = encode_delete_message_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.DeleteMessage"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 6135).
-spec parse_delete_message_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, delete_message_output()} | {error, binary()}.
parse_delete_message_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_delete_message_output(<<"{}"/utf8>>);

                _ ->
                    decode_delete_message_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6162).
-spec delete_message_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, delete_message_error()} | {error, nil})}).
delete_message_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {delete_message_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidIdFormat"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_id_format_struct()) of
                    {ok, V@1} ->
                        {ok, {delete_message_error_invalid_id_format, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(Body@2, decode_invalid_security_struct()) of
                    {ok, V@2} ->
                        {ok, {delete_message_error_invalid_security, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(
                    Body@3,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@3} ->
                        {ok, {delete_message_error_queue_does_not_exist, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"ReceiptHandleIsInvalid"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_receipt_handle_is_invalid_struct()
                ) of
                    {ok, V@4} ->
                        {ok,
                            {delete_message_error_receipt_handle_is_invalid,
                                V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@5) ->
                case gleam@json:parse(Body@5, decode_request_throttled_struct()) of
                    {ok, V@5} ->
                        {ok, {delete_message_error_request_throttled, V@5}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@6) ->
                case gleam@json:parse(
                    Body@6,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@6} ->
                        {ok, {delete_message_error_unsupported_operation, V@6}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 6209).
-spec translate_delete_message_error(aws@internal@client@runtime:client_error()) -> delete_message_error().
translate_delete_message_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        delete_message_error_decoders(),
        fun(Reason) -> {delete_message_error_transport, Reason} end,
        fun(Et, S, Body) -> {delete_message_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 6222).
-spec encode_delete_message_batch_input(delete_message_batch_request()) -> binary().
encode_delete_message_batch_input(Input) ->
    gleam@json:to_string(encode_delete_message_batch_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 6228).
-spec decode_delete_message_batch_output(binary()) -> {ok,
        delete_message_batch_result()} |
    {error, binary()}.
decode_delete_message_batch_output(Body) ->
    case gleam@json:parse(Body, decode_delete_message_batch_result_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6237).
-spec build_delete_message_batch_request(delete_message_batch_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_delete_message_batch_request(Input) ->
    Body_str = encode_delete_message_batch_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.DeleteMessageBatch"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 6252).
-spec parse_delete_message_batch_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, delete_message_batch_result()} | {error, binary()}.
parse_delete_message_batch_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_delete_message_batch_output(<<"{}"/utf8>>);

                _ ->
                    decode_delete_message_batch_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6285).
-spec delete_message_batch_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, delete_message_batch_error()} | {error, nil})}).
delete_message_batch_error_decoders() ->
    [{<<"BatchEntryIdsNotDistinct"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(
                    Body,
                    decode_batch_entry_ids_not_distinct_struct()
                ) of
                    {ok, V} ->
                        {ok,
                            {delete_message_batch_error_batch_entry_ids_not_distinct,
                                V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"EmptyBatchRequest"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(
                    Body@1,
                    decode_empty_batch_request_struct()
                ) of
                    {ok, V@1} ->
                        {ok,
                            {delete_message_batch_error_empty_batch_request,
                                V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidAddress"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(Body@2, decode_invalid_address_struct()) of
                    {ok, V@2} ->
                        {ok, {delete_message_batch_error_invalid_address, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidBatchEntryId"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(
                    Body@3,
                    decode_invalid_batch_entry_id_struct()
                ) of
                    {ok, V@3} ->
                        {ok,
                            {delete_message_batch_error_invalid_batch_entry_id,
                                V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(Body@4, decode_invalid_security_struct()) of
                    {ok, V@4} ->
                        {ok, {delete_message_batch_error_invalid_security, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@5) ->
                case gleam@json:parse(
                    Body@5,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@5} ->
                        {ok,
                            {delete_message_batch_error_queue_does_not_exist,
                                V@5}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@6) ->
                case gleam@json:parse(Body@6, decode_request_throttled_struct()) of
                    {ok, V@6} ->
                        {ok,
                            {delete_message_batch_error_request_throttled, V@6}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"TooManyEntriesInBatchRequest"/utf8>>,
            fun(Body@7) ->
                case gleam@json:parse(
                    Body@7,
                    decode_too_many_entries_in_batch_request_struct()
                ) of
                    {ok, V@7} ->
                        {ok,
                            {delete_message_batch_error_too_many_entries_in_batch_request,
                                V@7}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@8) ->
                case gleam@json:parse(
                    Body@8,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@8} ->
                        {ok,
                            {delete_message_batch_error_unsupported_operation,
                                V@8}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 6345).
-spec translate_delete_message_batch_error(
    aws@internal@client@runtime:client_error()
) -> delete_message_batch_error().
translate_delete_message_batch_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        delete_message_batch_error_decoders(),
        fun(Reason) -> {delete_message_batch_error_transport, Reason} end,
        fun(Et, S, Body) ->
            {delete_message_batch_error_unknown, Et, S, Body}
        end
    ).

-file("src/aws/services/sqs.gleam", 6362).
-spec delete_queue_output_default() -> delete_queue_output().
delete_queue_output_default() ->
    delete_queue_output.

-file("src/aws/services/sqs.gleam", 6366).
-spec decode_delete_queue_output_struct() -> gleam@dynamic@decode:decoder(delete_queue_output()).
decode_delete_queue_output_struct() ->
    gleam@dynamic@decode:success(delete_queue_output).

-file("src/aws/services/sqs.gleam", 6370).
-spec encode_delete_queue_input(delete_queue_request()) -> binary().
encode_delete_queue_input(Input) ->
    gleam@json:to_string(encode_delete_queue_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 6374).
-spec decode_delete_queue_output(binary()) -> {ok, delete_queue_output()} |
    {error, binary()}.
decode_delete_queue_output(Body) ->
    case gleam@json:parse(Body, decode_delete_queue_output_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6383).
-spec build_delete_queue_request(delete_queue_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_delete_queue_request(Input) ->
    Body_str = encode_delete_queue_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.DeleteQueue"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 6398).
-spec parse_delete_queue_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, delete_queue_output()} | {error, binary()}.
parse_delete_queue_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_delete_queue_output(<<"{}"/utf8>>);

                _ ->
                    decode_delete_queue_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6423).
-spec delete_queue_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, delete_queue_error()} | {error, nil})}).
delete_queue_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {delete_queue_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok, {delete_queue_error_invalid_security, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(
                    Body@2,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@2} ->
                        {ok, {delete_queue_error_queue_does_not_exist, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(Body@3, decode_request_throttled_struct()) of
                    {ok, V@3} ->
                        {ok, {delete_queue_error_request_throttled, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@4} ->
                        {ok, {delete_queue_error_unsupported_operation, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 6458).
-spec translate_delete_queue_error(aws@internal@client@runtime:client_error()) -> delete_queue_error().
translate_delete_queue_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        delete_queue_error_decoders(),
        fun(Reason) -> {delete_queue_error_transport, Reason} end,
        fun(Et, S, Body) -> {delete_queue_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 6469).
-spec encode_get_queue_attributes_input(get_queue_attributes_request()) -> binary().
encode_get_queue_attributes_input(Input) ->
    gleam@json:to_string(encode_get_queue_attributes_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 6475).
-spec decode_get_queue_attributes_output(binary()) -> {ok,
        get_queue_attributes_result()} |
    {error, binary()}.
decode_get_queue_attributes_output(Body) ->
    case gleam@json:parse(Body, decode_get_queue_attributes_result_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6484).
-spec build_get_queue_attributes_request(get_queue_attributes_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_get_queue_attributes_request(Input) ->
    Body_str = encode_get_queue_attributes_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.GetQueueAttributes"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 6499).
-spec parse_get_queue_attributes_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, get_queue_attributes_result()} | {error, binary()}.
parse_get_queue_attributes_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_get_queue_attributes_output(<<"{}"/utf8>>);

                _ ->
                    decode_get_queue_attributes_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6525).
-spec get_queue_attributes_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, get_queue_attributes_error()} | {error, nil})}).
get_queue_attributes_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {get_queue_attributes_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidAttributeName"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(
                    Body@1,
                    decode_invalid_attribute_name_struct()
                ) of
                    {ok, V@1} ->
                        {ok,
                            {get_queue_attributes_error_invalid_attribute_name,
                                V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(Body@2, decode_invalid_security_struct()) of
                    {ok, V@2} ->
                        {ok, {get_queue_attributes_error_invalid_security, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(
                    Body@3,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@3} ->
                        {ok,
                            {get_queue_attributes_error_queue_does_not_exist,
                                V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(Body@4, decode_request_throttled_struct()) of
                    {ok, V@4} ->
                        {ok,
                            {get_queue_attributes_error_request_throttled, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@5) ->
                case gleam@json:parse(
                    Body@5,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@5} ->
                        {ok,
                            {get_queue_attributes_error_unsupported_operation,
                                V@5}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 6566).
-spec translate_get_queue_attributes_error(
    aws@internal@client@runtime:client_error()
) -> get_queue_attributes_error().
translate_get_queue_attributes_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        get_queue_attributes_error_decoders(),
        fun(Reason) -> {get_queue_attributes_error_transport, Reason} end,
        fun(Et, S, Body) ->
            {get_queue_attributes_error_unknown, Et, S, Body}
        end
    ).

-file("src/aws/services/sqs.gleam", 6579).
-spec encode_get_queue_url_input(get_queue_url_request()) -> binary().
encode_get_queue_url_input(Input) ->
    gleam@json:to_string(encode_get_queue_url_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 6583).
-spec decode_get_queue_url_output(binary()) -> {ok, get_queue_url_result()} |
    {error, binary()}.
decode_get_queue_url_output(Body) ->
    case gleam@json:parse(Body, decode_get_queue_url_result_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6592).
-spec build_get_queue_url_request(get_queue_url_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_get_queue_url_request(Input) ->
    Body_str = encode_get_queue_url_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.GetQueueUrl"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 6607).
-spec parse_get_queue_url_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, get_queue_url_result()} | {error, binary()}.
parse_get_queue_url_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_get_queue_url_output(<<"{}"/utf8>>);

                _ ->
                    decode_get_queue_url_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6632).
-spec get_queue_url_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, get_queue_url_error()} | {error, nil})}).
get_queue_url_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {get_queue_url_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok, {get_queue_url_error_invalid_security, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(
                    Body@2,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@2} ->
                        {ok, {get_queue_url_error_queue_does_not_exist, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(Body@3, decode_request_throttled_struct()) of
                    {ok, V@3} ->
                        {ok, {get_queue_url_error_request_throttled, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@4} ->
                        {ok, {get_queue_url_error_unsupported_operation, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 6667).
-spec translate_get_queue_url_error(aws@internal@client@runtime:client_error()) -> get_queue_url_error().
translate_get_queue_url_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        get_queue_url_error_decoders(),
        fun(Reason) -> {get_queue_url_error_transport, Reason} end,
        fun(Et, S, Body) -> {get_queue_url_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 6678).
-spec encode_list_dead_letter_source_queues_input(
    list_dead_letter_source_queues_request()
) -> binary().
encode_list_dead_letter_source_queues_input(Input) ->
    gleam@json:to_string(
        encode_list_dead_letter_source_queues_request_struct_top(Input)
    ).

-file("src/aws/services/sqs.gleam", 6684).
-spec decode_list_dead_letter_source_queues_output(binary()) -> {ok,
        list_dead_letter_source_queues_result()} |
    {error, binary()}.
decode_list_dead_letter_source_queues_output(Body) ->
    case gleam@json:parse(
        Body,
        decode_list_dead_letter_source_queues_result_struct()
    ) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6693).
-spec build_list_dead_letter_source_queues_request(
    list_dead_letter_source_queues_request()
) -> {binary(), binary(), gleam@dict:dict(binary(), binary()), bitstring()}.
build_list_dead_letter_source_queues_request(Input) ->
    Body_str = encode_list_dead_letter_source_queues_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>,
                <<"AmazonSQS.ListDeadLetterSourceQueues"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 6708).
-spec parse_list_dead_letter_source_queues_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, list_dead_letter_source_queues_result()} | {error, binary()}.
parse_list_dead_letter_source_queues_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_list_dead_letter_source_queues_output(<<"{}"/utf8>>);

                _ ->
                    decode_list_dead_letter_source_queues_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6739).
-spec list_dead_letter_source_queues_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, list_dead_letter_source_queues_error()} |
        {error, nil})}).
list_dead_letter_source_queues_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok,
                            {list_dead_letter_source_queues_error_invalid_address,
                                V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok,
                            {list_dead_letter_source_queues_error_invalid_security,
                                V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(
                    Body@2,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@2} ->
                        {ok,
                            {list_dead_letter_source_queues_error_queue_does_not_exist,
                                V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(Body@3, decode_request_throttled_struct()) of
                    {ok, V@3} ->
                        {ok,
                            {list_dead_letter_source_queues_error_request_throttled,
                                V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@4} ->
                        {ok,
                            {list_dead_letter_source_queues_error_unsupported_operation,
                                V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 6775).
-spec translate_list_dead_letter_source_queues_error(
    aws@internal@client@runtime:client_error()
) -> list_dead_letter_source_queues_error().
translate_list_dead_letter_source_queues_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        list_dead_letter_source_queues_error_decoders(),
        fun(Reason) ->
            {list_dead_letter_source_queues_error_transport, Reason}
        end,
        fun(Et, S, Body) ->
            {list_dead_letter_source_queues_error_unknown, Et, S, Body}
        end
    ).

-file("src/aws/services/sqs.gleam", 6792).
-spec encode_list_message_move_tasks_input(list_message_move_tasks_request()) -> binary().
encode_list_message_move_tasks_input(Input) ->
    gleam@json:to_string(
        encode_list_message_move_tasks_request_struct_top(Input)
    ).

-file("src/aws/services/sqs.gleam", 6798).
-spec decode_list_message_move_tasks_output(binary()) -> {ok,
        list_message_move_tasks_result()} |
    {error, binary()}.
decode_list_message_move_tasks_output(Body) ->
    case gleam@json:parse(Body, decode_list_message_move_tasks_result_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6807).
-spec build_list_message_move_tasks_request(list_message_move_tasks_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_list_message_move_tasks_request(Input) ->
    Body_str = encode_list_message_move_tasks_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.ListMessageMoveTasks"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 6822).
-spec parse_list_message_move_tasks_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, list_message_move_tasks_result()} | {error, binary()}.
parse_list_message_move_tasks_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_list_message_move_tasks_output(<<"{}"/utf8>>);

                _ ->
                    decode_list_message_move_tasks_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6853).
-spec list_message_move_tasks_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, list_message_move_tasks_error()} | {error, nil})}).
list_message_move_tasks_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {list_message_move_tasks_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok,
                            {list_message_move_tasks_error_invalid_security,
                                V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(Body@2, decode_request_throttled_struct()) of
                    {ok, V@2} ->
                        {ok,
                            {list_message_move_tasks_error_request_throttled,
                                V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"ResourceNotFoundException"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(
                    Body@3,
                    decode_resource_not_found_exception_struct()
                ) of
                    {ok, V@3} ->
                        {ok,
                            {list_message_move_tasks_error_resource_not_found_exception,
                                V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@4} ->
                        {ok,
                            {list_message_move_tasks_error_unsupported_operation,
                                V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 6889).
-spec translate_list_message_move_tasks_error(
    aws@internal@client@runtime:client_error()
) -> list_message_move_tasks_error().
translate_list_message_move_tasks_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        list_message_move_tasks_error_decoders(),
        fun(Reason) -> {list_message_move_tasks_error_transport, Reason} end,
        fun(Et, S, Body) ->
            {list_message_move_tasks_error_unknown, Et, S, Body}
        end
    ).

-file("src/aws/services/sqs.gleam", 6902).
-spec encode_list_queues_input(list_queues_request()) -> binary().
encode_list_queues_input(Input) ->
    gleam@json:to_string(encode_list_queues_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 6906).
-spec decode_list_queues_output(binary()) -> {ok, list_queues_result()} |
    {error, binary()}.
decode_list_queues_output(Body) ->
    case gleam@json:parse(Body, decode_list_queues_result_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6915).
-spec build_list_queues_request(list_queues_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_list_queues_request(Input) ->
    Body_str = encode_list_queues_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.ListQueues"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 6930).
-spec parse_list_queues_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, list_queues_result()} | {error, binary()}.
parse_list_queues_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_list_queues_output(<<"{}"/utf8>>);

                _ ->
                    decode_list_queues_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 6954).
-spec list_queues_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, list_queues_error()} | {error, nil})}).
list_queues_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {list_queues_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok, {list_queues_error_invalid_security, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(Body@2, decode_request_throttled_struct()) of
                    {ok, V@2} ->
                        {ok, {list_queues_error_request_throttled, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(
                    Body@3,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@3} ->
                        {ok, {list_queues_error_unsupported_operation, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 6983).
-spec translate_list_queues_error(aws@internal@client@runtime:client_error()) -> list_queues_error().
translate_list_queues_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        list_queues_error_decoders(),
        fun(Reason) -> {list_queues_error_transport, Reason} end,
        fun(Et, S, Body) -> {list_queues_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 6994).
-spec encode_list_queue_tags_input(list_queue_tags_request()) -> binary().
encode_list_queue_tags_input(Input) ->
    gleam@json:to_string(encode_list_queue_tags_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 6998).
-spec decode_list_queue_tags_output(binary()) -> {ok, list_queue_tags_result()} |
    {error, binary()}.
decode_list_queue_tags_output(Body) ->
    case gleam@json:parse(Body, decode_list_queue_tags_result_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7007).
-spec build_list_queue_tags_request(list_queue_tags_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_list_queue_tags_request(Input) ->
    Body_str = encode_list_queue_tags_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.ListQueueTags"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 7022).
-spec parse_list_queue_tags_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, list_queue_tags_result()} | {error, binary()}.
parse_list_queue_tags_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_list_queue_tags_output(<<"{}"/utf8>>);

                _ ->
                    decode_list_queue_tags_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7047).
-spec list_queue_tags_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, list_queue_tags_error()} | {error, nil})}).
list_queue_tags_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {list_queue_tags_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok, {list_queue_tags_error_invalid_security, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(
                    Body@2,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@2} ->
                        {ok, {list_queue_tags_error_queue_does_not_exist, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(Body@3, decode_request_throttled_struct()) of
                    {ok, V@3} ->
                        {ok, {list_queue_tags_error_request_throttled, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@4} ->
                        {ok, {list_queue_tags_error_unsupported_operation, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 7082).
-spec translate_list_queue_tags_error(
    aws@internal@client@runtime:client_error()
) -> list_queue_tags_error().
translate_list_queue_tags_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        list_queue_tags_error_decoders(),
        fun(Reason) -> {list_queue_tags_error_transport, Reason} end,
        fun(Et, S, Body) -> {list_queue_tags_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 7099).
-spec purge_queue_output_default() -> purge_queue_output().
purge_queue_output_default() ->
    purge_queue_output.

-file("src/aws/services/sqs.gleam", 7103).
-spec decode_purge_queue_output_struct() -> gleam@dynamic@decode:decoder(purge_queue_output()).
decode_purge_queue_output_struct() ->
    gleam@dynamic@decode:success(purge_queue_output).

-file("src/aws/services/sqs.gleam", 7107).
-spec encode_purge_queue_input(purge_queue_request()) -> binary().
encode_purge_queue_input(Input) ->
    gleam@json:to_string(encode_purge_queue_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 7111).
-spec decode_purge_queue_output(binary()) -> {ok, purge_queue_output()} |
    {error, binary()}.
decode_purge_queue_output(Body) ->
    case gleam@json:parse(Body, decode_purge_queue_output_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7120).
-spec build_purge_queue_request(purge_queue_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_purge_queue_request(Input) ->
    Body_str = encode_purge_queue_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.PurgeQueue"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 7135).
-spec parse_purge_queue_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, purge_queue_output()} | {error, binary()}.
parse_purge_queue_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_purge_queue_output(<<"{}"/utf8>>);

                _ ->
                    decode_purge_queue_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7161).
-spec purge_queue_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, purge_queue_error()} | {error, nil})}).
purge_queue_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {purge_queue_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok, {purge_queue_error_invalid_security, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"PurgeQueueInProgress"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(
                    Body@2,
                    decode_purge_queue_in_progress_struct()
                ) of
                    {ok, V@2} ->
                        {ok, {purge_queue_error_purge_queue_in_progress, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(
                    Body@3,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@3} ->
                        {ok, {purge_queue_error_queue_does_not_exist, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(Body@4, decode_request_throttled_struct()) of
                    {ok, V@4} ->
                        {ok, {purge_queue_error_request_throttled, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@5) ->
                case gleam@json:parse(
                    Body@5,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@5} ->
                        {ok, {purge_queue_error_unsupported_operation, V@5}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 7202).
-spec translate_purge_queue_error(aws@internal@client@runtime:client_error()) -> purge_queue_error().
translate_purge_queue_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        purge_queue_error_decoders(),
        fun(Reason) -> {purge_queue_error_transport, Reason} end,
        fun(Et, S, Body) -> {purge_queue_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 7213).
-spec encode_receive_message_input(receive_message_request()) -> binary().
encode_receive_message_input(Input) ->
    gleam@json:to_string(encode_receive_message_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 7217).
-spec decode_receive_message_output(binary()) -> {ok, receive_message_result()} |
    {error, binary()}.
decode_receive_message_output(Body) ->
    case gleam@json:parse(Body, decode_receive_message_result_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7226).
-spec build_receive_message_request(receive_message_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_receive_message_request(Input) ->
    Body_str = encode_receive_message_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.ReceiveMessage"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 7241).
-spec parse_receive_message_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, receive_message_result()} | {error, binary()}.
parse_receive_message_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_receive_message_output(<<"{}"/utf8>>);

                _ ->
                    decode_receive_message_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7274).
-spec receive_message_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, receive_message_error()} | {error, nil})}).
receive_message_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {receive_message_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok, {receive_message_error_invalid_security, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsAccessDenied"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(Body@2, decode_kms_access_denied_struct()) of
                    {ok, V@2} ->
                        {ok, {receive_message_error_kms_access_denied, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsDisabled"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(Body@3, decode_kms_disabled_struct()) of
                    {ok, V@3} ->
                        {ok, {receive_message_error_kms_disabled, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsInvalidKeyUsage"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_kms_invalid_key_usage_struct()
                ) of
                    {ok, V@4} ->
                        {ok, {receive_message_error_kms_invalid_key_usage, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsInvalidState"/utf8>>,
            fun(Body@5) ->
                case gleam@json:parse(Body@5, decode_kms_invalid_state_struct()) of
                    {ok, V@5} ->
                        {ok, {receive_message_error_kms_invalid_state, V@5}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsNotFound"/utf8>>,
            fun(Body@6) ->
                case gleam@json:parse(Body@6, decode_kms_not_found_struct()) of
                    {ok, V@6} ->
                        {ok, {receive_message_error_kms_not_found, V@6}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsOptInRequired"/utf8>>,
            fun(Body@7) ->
                case gleam@json:parse(
                    Body@7,
                    decode_kms_opt_in_required_struct()
                ) of
                    {ok, V@7} ->
                        {ok, {receive_message_error_kms_opt_in_required, V@7}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsThrottled"/utf8>>,
            fun(Body@8) ->
                case gleam@json:parse(Body@8, decode_kms_throttled_struct()) of
                    {ok, V@8} ->
                        {ok, {receive_message_error_kms_throttled, V@8}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"OverLimit"/utf8>>,
            fun(Body@9) ->
                case gleam@json:parse(Body@9, decode_over_limit_struct()) of
                    {ok, V@9} ->
                        {ok, {receive_message_error_over_limit, V@9}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@10) ->
                case gleam@json:parse(
                    Body@10,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@10} ->
                        {ok, {receive_message_error_queue_does_not_exist, V@10}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@11) ->
                case gleam@json:parse(
                    Body@11,
                    decode_request_throttled_struct()
                ) of
                    {ok, V@11} ->
                        {ok, {receive_message_error_request_throttled, V@11}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@12) ->
                case gleam@json:parse(
                    Body@12,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@12} ->
                        {ok,
                            {receive_message_error_unsupported_operation, V@12}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 7357).
-spec translate_receive_message_error(
    aws@internal@client@runtime:client_error()
) -> receive_message_error().
translate_receive_message_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        receive_message_error_decoders(),
        fun(Reason) -> {receive_message_error_transport, Reason} end,
        fun(Et, S, Body) -> {receive_message_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 7374).
-spec remove_permission_output_default() -> remove_permission_output().
remove_permission_output_default() ->
    remove_permission_output.

-file("src/aws/services/sqs.gleam", 7378).
-spec decode_remove_permission_output_struct() -> gleam@dynamic@decode:decoder(remove_permission_output()).
decode_remove_permission_output_struct() ->
    gleam@dynamic@decode:success(remove_permission_output).

-file("src/aws/services/sqs.gleam", 7384).
-spec encode_remove_permission_input(remove_permission_request()) -> binary().
encode_remove_permission_input(Input) ->
    gleam@json:to_string(encode_remove_permission_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 7390).
-spec decode_remove_permission_output(binary()) -> {ok,
        remove_permission_output()} |
    {error, binary()}.
decode_remove_permission_output(Body) ->
    case gleam@json:parse(Body, decode_remove_permission_output_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7399).
-spec build_remove_permission_request(remove_permission_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_remove_permission_request(Input) ->
    Body_str = encode_remove_permission_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.RemovePermission"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 7414).
-spec parse_remove_permission_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, remove_permission_output()} | {error, binary()}.
parse_remove_permission_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_remove_permission_output(<<"{}"/utf8>>);

                _ ->
                    decode_remove_permission_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7439).
-spec remove_permission_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, remove_permission_error()} | {error, nil})}).
remove_permission_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {remove_permission_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok, {remove_permission_error_invalid_security, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(
                    Body@2,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@2} ->
                        {ok,
                            {remove_permission_error_queue_does_not_exist, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(Body@3, decode_request_throttled_struct()) of
                    {ok, V@3} ->
                        {ok, {remove_permission_error_request_throttled, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@4} ->
                        {ok,
                            {remove_permission_error_unsupported_operation, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 7474).
-spec translate_remove_permission_error(
    aws@internal@client@runtime:client_error()
) -> remove_permission_error().
translate_remove_permission_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        remove_permission_error_decoders(),
        fun(Reason) -> {remove_permission_error_transport, Reason} end,
        fun(Et, S, Body) -> {remove_permission_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 7487).
-spec encode_send_message_input(send_message_request()) -> binary().
encode_send_message_input(Input) ->
    gleam@json:to_string(encode_send_message_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 7491).
-spec decode_send_message_output(binary()) -> {ok, send_message_result()} |
    {error, binary()}.
decode_send_message_output(Body) ->
    case gleam@json:parse(Body, decode_send_message_result_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7500).
-spec build_send_message_request(send_message_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_send_message_request(Input) ->
    Body_str = encode_send_message_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.SendMessage"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 7515).
-spec parse_send_message_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, send_message_result()} | {error, binary()}.
parse_send_message_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_send_message_output(<<"{}"/utf8>>);

                _ ->
                    decode_send_message_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7548).
-spec send_message_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, send_message_error()} | {error, nil})}).
send_message_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {send_message_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidMessageContents"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(
                    Body@1,
                    decode_invalid_message_contents_struct()
                ) of
                    {ok, V@1} ->
                        {ok, {send_message_error_invalid_message_contents, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(Body@2, decode_invalid_security_struct()) of
                    {ok, V@2} ->
                        {ok, {send_message_error_invalid_security, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsAccessDenied"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(Body@3, decode_kms_access_denied_struct()) of
                    {ok, V@3} ->
                        {ok, {send_message_error_kms_access_denied, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsDisabled"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(Body@4, decode_kms_disabled_struct()) of
                    {ok, V@4} ->
                        {ok, {send_message_error_kms_disabled, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsInvalidKeyUsage"/utf8>>,
            fun(Body@5) ->
                case gleam@json:parse(
                    Body@5,
                    decode_kms_invalid_key_usage_struct()
                ) of
                    {ok, V@5} ->
                        {ok, {send_message_error_kms_invalid_key_usage, V@5}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsInvalidState"/utf8>>,
            fun(Body@6) ->
                case gleam@json:parse(Body@6, decode_kms_invalid_state_struct()) of
                    {ok, V@6} ->
                        {ok, {send_message_error_kms_invalid_state, V@6}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsNotFound"/utf8>>,
            fun(Body@7) ->
                case gleam@json:parse(Body@7, decode_kms_not_found_struct()) of
                    {ok, V@7} ->
                        {ok, {send_message_error_kms_not_found, V@7}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsOptInRequired"/utf8>>,
            fun(Body@8) ->
                case gleam@json:parse(
                    Body@8,
                    decode_kms_opt_in_required_struct()
                ) of
                    {ok, V@8} ->
                        {ok, {send_message_error_kms_opt_in_required, V@8}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsThrottled"/utf8>>,
            fun(Body@9) ->
                case gleam@json:parse(Body@9, decode_kms_throttled_struct()) of
                    {ok, V@9} ->
                        {ok, {send_message_error_kms_throttled, V@9}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@10) ->
                case gleam@json:parse(
                    Body@10,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@10} ->
                        {ok, {send_message_error_queue_does_not_exist, V@10}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@11) ->
                case gleam@json:parse(
                    Body@11,
                    decode_request_throttled_struct()
                ) of
                    {ok, V@11} ->
                        {ok, {send_message_error_request_throttled, V@11}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@12) ->
                case gleam@json:parse(
                    Body@12,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@12} ->
                        {ok, {send_message_error_unsupported_operation, V@12}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 7631).
-spec translate_send_message_error(aws@internal@client@runtime:client_error()) -> send_message_error().
translate_send_message_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        send_message_error_decoders(),
        fun(Reason) -> {send_message_error_transport, Reason} end,
        fun(Et, S, Body) -> {send_message_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 7642).
-spec encode_send_message_batch_input(send_message_batch_request()) -> binary().
encode_send_message_batch_input(Input) ->
    gleam@json:to_string(encode_send_message_batch_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 7648).
-spec decode_send_message_batch_output(binary()) -> {ok,
        send_message_batch_result()} |
    {error, binary()}.
decode_send_message_batch_output(Body) ->
    case gleam@json:parse(Body, decode_send_message_batch_result_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7657).
-spec build_send_message_batch_request(send_message_batch_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_send_message_batch_request(Input) ->
    Body_str = encode_send_message_batch_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.SendMessageBatch"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 7672).
-spec parse_send_message_batch_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, send_message_batch_result()} | {error, binary()}.
parse_send_message_batch_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_send_message_batch_output(<<"{}"/utf8>>);

                _ ->
                    decode_send_message_batch_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7711).
-spec send_message_batch_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, send_message_batch_error()} | {error, nil})}).
send_message_batch_error_decoders() ->
    [{<<"BatchEntryIdsNotDistinct"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(
                    Body,
                    decode_batch_entry_ids_not_distinct_struct()
                ) of
                    {ok, V} ->
                        {ok,
                            {send_message_batch_error_batch_entry_ids_not_distinct,
                                V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"BatchRequestTooLong"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(
                    Body@1,
                    decode_batch_request_too_long_struct()
                ) of
                    {ok, V@1} ->
                        {ok,
                            {send_message_batch_error_batch_request_too_long,
                                V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"EmptyBatchRequest"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(
                    Body@2,
                    decode_empty_batch_request_struct()
                ) of
                    {ok, V@2} ->
                        {ok,
                            {send_message_batch_error_empty_batch_request, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidAddress"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(Body@3, decode_invalid_address_struct()) of
                    {ok, V@3} ->
                        {ok, {send_message_batch_error_invalid_address, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidBatchEntryId"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_invalid_batch_entry_id_struct()
                ) of
                    {ok, V@4} ->
                        {ok,
                            {send_message_batch_error_invalid_batch_entry_id,
                                V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@5) ->
                case gleam@json:parse(Body@5, decode_invalid_security_struct()) of
                    {ok, V@5} ->
                        {ok, {send_message_batch_error_invalid_security, V@5}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsAccessDenied"/utf8>>,
            fun(Body@6) ->
                case gleam@json:parse(Body@6, decode_kms_access_denied_struct()) of
                    {ok, V@6} ->
                        {ok, {send_message_batch_error_kms_access_denied, V@6}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsDisabled"/utf8>>,
            fun(Body@7) ->
                case gleam@json:parse(Body@7, decode_kms_disabled_struct()) of
                    {ok, V@7} ->
                        {ok, {send_message_batch_error_kms_disabled, V@7}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsInvalidKeyUsage"/utf8>>,
            fun(Body@8) ->
                case gleam@json:parse(
                    Body@8,
                    decode_kms_invalid_key_usage_struct()
                ) of
                    {ok, V@8} ->
                        {ok,
                            {send_message_batch_error_kms_invalid_key_usage,
                                V@8}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsInvalidState"/utf8>>,
            fun(Body@9) ->
                case gleam@json:parse(Body@9, decode_kms_invalid_state_struct()) of
                    {ok, V@9} ->
                        {ok, {send_message_batch_error_kms_invalid_state, V@9}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsNotFound"/utf8>>,
            fun(Body@10) ->
                case gleam@json:parse(Body@10, decode_kms_not_found_struct()) of
                    {ok, V@10} ->
                        {ok, {send_message_batch_error_kms_not_found, V@10}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsOptInRequired"/utf8>>,
            fun(Body@11) ->
                case gleam@json:parse(
                    Body@11,
                    decode_kms_opt_in_required_struct()
                ) of
                    {ok, V@11} ->
                        {ok,
                            {send_message_batch_error_kms_opt_in_required, V@11}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"KmsThrottled"/utf8>>,
            fun(Body@12) ->
                case gleam@json:parse(Body@12, decode_kms_throttled_struct()) of
                    {ok, V@12} ->
                        {ok, {send_message_batch_error_kms_throttled, V@12}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@13) ->
                case gleam@json:parse(
                    Body@13,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@13} ->
                        {ok,
                            {send_message_batch_error_queue_does_not_exist,
                                V@13}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@14) ->
                case gleam@json:parse(
                    Body@14,
                    decode_request_throttled_struct()
                ) of
                    {ok, V@14} ->
                        {ok, {send_message_batch_error_request_throttled, V@14}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"TooManyEntriesInBatchRequest"/utf8>>,
            fun(Body@15) ->
                case gleam@json:parse(
                    Body@15,
                    decode_too_many_entries_in_batch_request_struct()
                ) of
                    {ok, V@15} ->
                        {ok,
                            {send_message_batch_error_too_many_entries_in_batch_request,
                                V@15}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@16) ->
                case gleam@json:parse(
                    Body@16,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@16} ->
                        {ok,
                            {send_message_batch_error_unsupported_operation,
                                V@16}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 7818).
-spec translate_send_message_batch_error(
    aws@internal@client@runtime:client_error()
) -> send_message_batch_error().
translate_send_message_batch_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        send_message_batch_error_decoders(),
        fun(Reason) -> {send_message_batch_error_transport, Reason} end,
        fun(Et, S, Body) -> {send_message_batch_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 7835).
-spec set_queue_attributes_output_default() -> set_queue_attributes_output().
set_queue_attributes_output_default() ->
    set_queue_attributes_output.

-file("src/aws/services/sqs.gleam", 7839).
-spec decode_set_queue_attributes_output_struct() -> gleam@dynamic@decode:decoder(set_queue_attributes_output()).
decode_set_queue_attributes_output_struct() ->
    gleam@dynamic@decode:success(set_queue_attributes_output).

-file("src/aws/services/sqs.gleam", 7845).
-spec encode_set_queue_attributes_input(set_queue_attributes_request()) -> binary().
encode_set_queue_attributes_input(Input) ->
    gleam@json:to_string(encode_set_queue_attributes_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 7851).
-spec decode_set_queue_attributes_output(binary()) -> {ok,
        set_queue_attributes_output()} |
    {error, binary()}.
decode_set_queue_attributes_output(Body) ->
    case gleam@json:parse(Body, decode_set_queue_attributes_output_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7860).
-spec build_set_queue_attributes_request(set_queue_attributes_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_set_queue_attributes_request(Input) ->
    Body_str = encode_set_queue_attributes_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.SetQueueAttributes"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 7875).
-spec parse_set_queue_attributes_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, set_queue_attributes_output()} | {error, binary()}.
parse_set_queue_attributes_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_set_queue_attributes_output(<<"{}"/utf8>>);

                _ ->
                    decode_set_queue_attributes_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7903).
-spec set_queue_attributes_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, set_queue_attributes_error()} | {error, nil})}).
set_queue_attributes_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {set_queue_attributes_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidAttributeName"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(
                    Body@1,
                    decode_invalid_attribute_name_struct()
                ) of
                    {ok, V@1} ->
                        {ok,
                            {set_queue_attributes_error_invalid_attribute_name,
                                V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidAttributeValue"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(
                    Body@2,
                    decode_invalid_attribute_value_struct()
                ) of
                    {ok, V@2} ->
                        {ok,
                            {set_queue_attributes_error_invalid_attribute_value,
                                V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(Body@3, decode_invalid_security_struct()) of
                    {ok, V@3} ->
                        {ok, {set_queue_attributes_error_invalid_security, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"OverLimit"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(Body@4, decode_over_limit_struct()) of
                    {ok, V@4} ->
                        {ok, {set_queue_attributes_error_over_limit, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@5) ->
                case gleam@json:parse(
                    Body@5,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@5} ->
                        {ok,
                            {set_queue_attributes_error_queue_does_not_exist,
                                V@5}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@6) ->
                case gleam@json:parse(Body@6, decode_request_throttled_struct()) of
                    {ok, V@6} ->
                        {ok,
                            {set_queue_attributes_error_request_throttled, V@6}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@7) ->
                case gleam@json:parse(
                    Body@7,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@7} ->
                        {ok,
                            {set_queue_attributes_error_unsupported_operation,
                                V@7}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 7956).
-spec translate_set_queue_attributes_error(
    aws@internal@client@runtime:client_error()
) -> set_queue_attributes_error().
translate_set_queue_attributes_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        set_queue_attributes_error_decoders(),
        fun(Reason) -> {set_queue_attributes_error_transport, Reason} end,
        fun(Et, S, Body) ->
            {set_queue_attributes_error_unknown, Et, S, Body}
        end
    ).

-file("src/aws/services/sqs.gleam", 7969).
-spec encode_start_message_move_task_input(start_message_move_task_request()) -> binary().
encode_start_message_move_task_input(Input) ->
    gleam@json:to_string(
        encode_start_message_move_task_request_struct_top(Input)
    ).

-file("src/aws/services/sqs.gleam", 7975).
-spec decode_start_message_move_task_output(binary()) -> {ok,
        start_message_move_task_result()} |
    {error, binary()}.
decode_start_message_move_task_output(Body) ->
    case gleam@json:parse(Body, decode_start_message_move_task_result_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 7984).
-spec build_start_message_move_task_request(start_message_move_task_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_start_message_move_task_request(Input) ->
    Body_str = encode_start_message_move_task_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.StartMessageMoveTask"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 7999).
-spec parse_start_message_move_task_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, start_message_move_task_result()} | {error, binary()}.
parse_start_message_move_task_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_start_message_move_task_output(<<"{}"/utf8>>);

                _ ->
                    decode_start_message_move_task_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 8030).
-spec start_message_move_task_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, start_message_move_task_error()} | {error, nil})}).
start_message_move_task_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {start_message_move_task_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok,
                            {start_message_move_task_error_invalid_security,
                                V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(Body@2, decode_request_throttled_struct()) of
                    {ok, V@2} ->
                        {ok,
                            {start_message_move_task_error_request_throttled,
                                V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"ResourceNotFoundException"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(
                    Body@3,
                    decode_resource_not_found_exception_struct()
                ) of
                    {ok, V@3} ->
                        {ok,
                            {start_message_move_task_error_resource_not_found_exception,
                                V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@4} ->
                        {ok,
                            {start_message_move_task_error_unsupported_operation,
                                V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 8066).
-spec translate_start_message_move_task_error(
    aws@internal@client@runtime:client_error()
) -> start_message_move_task_error().
translate_start_message_move_task_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        start_message_move_task_error_decoders(),
        fun(Reason) -> {start_message_move_task_error_transport, Reason} end,
        fun(Et, S, Body) ->
            {start_message_move_task_error_unknown, Et, S, Body}
        end
    ).

-file("src/aws/services/sqs.gleam", 8083).
-spec tag_queue_output_default() -> tag_queue_output().
tag_queue_output_default() ->
    tag_queue_output.

-file("src/aws/services/sqs.gleam", 8087).
-spec decode_tag_queue_output_struct() -> gleam@dynamic@decode:decoder(tag_queue_output()).
decode_tag_queue_output_struct() ->
    gleam@dynamic@decode:success(tag_queue_output).

-file("src/aws/services/sqs.gleam", 8091).
-spec encode_tag_queue_input(tag_queue_request()) -> binary().
encode_tag_queue_input(Input) ->
    gleam@json:to_string(encode_tag_queue_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 8095).
-spec decode_tag_queue_output(binary()) -> {ok, tag_queue_output()} |
    {error, binary()}.
decode_tag_queue_output(Body) ->
    case gleam@json:parse(Body, decode_tag_queue_output_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 8102).
-spec build_tag_queue_request(tag_queue_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_tag_queue_request(Input) ->
    Body_str = encode_tag_queue_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.TagQueue"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 8117).
-spec parse_tag_queue_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, tag_queue_output()} | {error, binary()}.
parse_tag_queue_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_tag_queue_output(<<"{}"/utf8>>);

                _ ->
                    decode_tag_queue_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 8142).
-spec tag_queue_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, tag_queue_error()} | {error, nil})}).
tag_queue_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {tag_queue_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok, {tag_queue_error_invalid_security, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(
                    Body@2,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@2} ->
                        {ok, {tag_queue_error_queue_does_not_exist, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(Body@3, decode_request_throttled_struct()) of
                    {ok, V@3} ->
                        {ok, {tag_queue_error_request_throttled, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@4} ->
                        {ok, {tag_queue_error_unsupported_operation, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 8177).
-spec translate_tag_queue_error(aws@internal@client@runtime:client_error()) -> tag_queue_error().
translate_tag_queue_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        tag_queue_error_decoders(),
        fun(Reason) -> {tag_queue_error_transport, Reason} end,
        fun(Et, S, Body) -> {tag_queue_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 8192).
-spec untag_queue_output_default() -> untag_queue_output().
untag_queue_output_default() ->
    untag_queue_output.

-file("src/aws/services/sqs.gleam", 8196).
-spec decode_untag_queue_output_struct() -> gleam@dynamic@decode:decoder(untag_queue_output()).
decode_untag_queue_output_struct() ->
    gleam@dynamic@decode:success(untag_queue_output).

-file("src/aws/services/sqs.gleam", 8200).
-spec encode_untag_queue_input(untag_queue_request()) -> binary().
encode_untag_queue_input(Input) ->
    gleam@json:to_string(encode_untag_queue_request_struct_top(Input)).

-file("src/aws/services/sqs.gleam", 8204).
-spec decode_untag_queue_output(binary()) -> {ok, untag_queue_output()} |
    {error, binary()}.
decode_untag_queue_output(Body) ->
    case gleam@json:parse(Body, decode_untag_queue_output_struct()) of
        {ok, V} ->
            {ok, V};

        {error, _} ->
            {error, <<"decode failed"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 8213).
-spec build_untag_queue_request(untag_queue_request()) -> {binary(),
    binary(),
    gleam@dict:dict(binary(), binary()),
    bitstring()}.
build_untag_queue_request(Input) ->
    Body_str = encode_untag_queue_input(Input),
    Body = gleam_stdlib:identity(Body_str),
    Headers = maps:from_list(
        [{<<"Content-Type"/utf8>>, <<"application/x-amz-json-1.0"/utf8>>},
            {<<"Content-Length"/utf8>>,
                erlang:integer_to_binary(erlang:byte_size(Body))},
            {<<"X-Amz-Target"/utf8>>, <<"AmazonSQS.UntagQueue"/utf8>>},
            {<<"x-amzn-query-mode"/utf8>>, <<"true"/utf8>>}]
    ),
    {<<"POST"/utf8>>, <<"/"/utf8>>, Headers, Body}.

-file("src/aws/services/sqs.gleam", 8228).
-spec parse_untag_queue_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, untag_queue_output()} | {error, binary()}.
parse_untag_queue_response(_, _, Body) ->
    case gleam@bit_array:to_string(Body) of
        {ok, Text} ->
            case Text of
                <<""/utf8>> ->
                    decode_untag_queue_output(<<"{}"/utf8>>);

                _ ->
                    decode_untag_queue_output(Text)
            end;

        {error, _} ->
            {error, <<"non-utf8 body"/utf8>>}
    end.

-file("src/aws/services/sqs.gleam", 8253).
-spec untag_queue_error_decoders() -> list({binary(),
    fun((binary()) -> {ok, untag_queue_error()} | {error, nil})}).
untag_queue_error_decoders() ->
    [{<<"InvalidAddress"/utf8>>,
            fun(Body) ->
                case gleam@json:parse(Body, decode_invalid_address_struct()) of
                    {ok, V} ->
                        {ok, {untag_queue_error_invalid_address, V}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"InvalidSecurity"/utf8>>,
            fun(Body@1) ->
                case gleam@json:parse(Body@1, decode_invalid_security_struct()) of
                    {ok, V@1} ->
                        {ok, {untag_queue_error_invalid_security, V@1}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"QueueDoesNotExist"/utf8>>,
            fun(Body@2) ->
                case gleam@json:parse(
                    Body@2,
                    decode_queue_does_not_exist_struct()
                ) of
                    {ok, V@2} ->
                        {ok, {untag_queue_error_queue_does_not_exist, V@2}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"RequestThrottled"/utf8>>,
            fun(Body@3) ->
                case gleam@json:parse(Body@3, decode_request_throttled_struct()) of
                    {ok, V@3} ->
                        {ok, {untag_queue_error_request_throttled, V@3}};

                    {error, _} ->
                        {error, nil}
                end
            end},
        {<<"UnsupportedOperation"/utf8>>,
            fun(Body@4) ->
                case gleam@json:parse(
                    Body@4,
                    decode_unsupported_operation_struct()
                ) of
                    {ok, V@4} ->
                        {ok, {untag_queue_error_unsupported_operation, V@4}};

                    {error, _} ->
                        {error, nil}
                end
            end}].

-file("src/aws/services/sqs.gleam", 8288).
-spec translate_untag_queue_error(aws@internal@client@runtime:client_error()) -> untag_queue_error().
translate_untag_queue_error(Err) ->
    aws@internal@client@runtime:translate_service_error(
        Err,
        untag_queue_error_decoders(),
        fun(Reason) -> {untag_queue_error_transport, Reason} end,
        fun(Et, S, Body) -> {untag_queue_error_unknown, Et, S, Body} end
    ).

-file("src/aws/services/sqs.gleam", 8303).
?DOC(
    " Invoke AddPermission. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `AddPermissionError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `AddPermissionErrorTransport` variant.\n"
).
-spec add_permission(client(), add_permission_request()) -> {ok,
        add_permission_output()} |
    {error, add_permission_error()}.
add_permission(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_add_permission_request(Input),
        fun parse_add_permission_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_add_permission_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8323).
?DOC(
    " Invoke CancelMessageMoveTask. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `CancelMessageMoveTaskError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `CancelMessageMoveTaskErrorTransport` variant.\n"
).
-spec cancel_message_move_task(client(), cancel_message_move_task_request()) -> {ok,
        cancel_message_move_task_result()} |
    {error, cancel_message_move_task_error()}.
cancel_message_move_task(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_cancel_message_move_task_request(Input),
        fun parse_cancel_message_move_task_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_cancel_message_move_task_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8343).
?DOC(
    " Invoke ChangeMessageVisibility. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `ChangeMessageVisibilityError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `ChangeMessageVisibilityErrorTransport` variant.\n"
).
-spec change_message_visibility(client(), change_message_visibility_request()) -> {ok,
        change_message_visibility_output()} |
    {error, change_message_visibility_error()}.
change_message_visibility(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_change_message_visibility_request(Input),
        fun parse_change_message_visibility_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_change_message_visibility_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8363).
?DOC(
    " Invoke ChangeMessageVisibilityBatch. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `ChangeMessageVisibilityBatchError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `ChangeMessageVisibilityBatchErrorTransport` variant.\n"
).
-spec change_message_visibility_batch(
    client(),
    change_message_visibility_batch_request()
) -> {ok, change_message_visibility_batch_result()} |
    {error, change_message_visibility_batch_error()}.
change_message_visibility_batch(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_change_message_visibility_batch_request(Input),
        fun parse_change_message_visibility_batch_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_change_message_visibility_batch_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8386).
?DOC(
    " Invoke CreateQueue. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `CreateQueueError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `CreateQueueErrorTransport` variant.\n"
).
-spec create_queue(client(), create_queue_request()) -> {ok,
        create_queue_result()} |
    {error, create_queue_error()}.
create_queue(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_create_queue_request(Input),
        fun parse_create_queue_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_create_queue_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8406).
?DOC(
    " Invoke DeleteMessage. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `DeleteMessageError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `DeleteMessageErrorTransport` variant.\n"
).
-spec delete_message(client(), delete_message_request()) -> {ok,
        delete_message_output()} |
    {error, delete_message_error()}.
delete_message(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_delete_message_request(Input),
        fun parse_delete_message_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_delete_message_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8426).
?DOC(
    " Invoke DeleteMessageBatch. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `DeleteMessageBatchError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `DeleteMessageBatchErrorTransport` variant.\n"
).
-spec delete_message_batch(client(), delete_message_batch_request()) -> {ok,
        delete_message_batch_result()} |
    {error, delete_message_batch_error()}.
delete_message_batch(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_delete_message_batch_request(Input),
        fun parse_delete_message_batch_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_delete_message_batch_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8446).
?DOC(
    " Invoke DeleteQueue. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `DeleteQueueError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `DeleteQueueErrorTransport` variant.\n"
).
-spec delete_queue(client(), delete_queue_request()) -> {ok,
        delete_queue_output()} |
    {error, delete_queue_error()}.
delete_queue(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_delete_queue_request(Input),
        fun parse_delete_queue_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_delete_queue_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8466).
?DOC(
    " Invoke GetQueueAttributes. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `GetQueueAttributesError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `GetQueueAttributesErrorTransport` variant.\n"
).
-spec get_queue_attributes(client(), get_queue_attributes_request()) -> {ok,
        get_queue_attributes_result()} |
    {error, get_queue_attributes_error()}.
get_queue_attributes(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_get_queue_attributes_request(Input),
        fun parse_get_queue_attributes_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_get_queue_attributes_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8486).
?DOC(
    " Invoke GetQueueUrl. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `GetQueueUrlError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `GetQueueUrlErrorTransport` variant.\n"
).
-spec get_queue_url(client(), get_queue_url_request()) -> {ok,
        get_queue_url_result()} |
    {error, get_queue_url_error()}.
get_queue_url(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_get_queue_url_request(Input),
        fun parse_get_queue_url_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_get_queue_url_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8506).
?DOC(
    " Invoke ListDeadLetterSourceQueues. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `ListDeadLetterSourceQueuesError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `ListDeadLetterSourceQueuesErrorTransport` variant.\n"
).
-spec list_dead_letter_source_queues(
    client(),
    list_dead_letter_source_queues_request()
) -> {ok, list_dead_letter_source_queues_result()} |
    {error, list_dead_letter_source_queues_error()}.
list_dead_letter_source_queues(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_list_dead_letter_source_queues_request(Input),
        fun parse_list_dead_letter_source_queues_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_list_dead_letter_source_queues_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8526).
?DOC(
    " Invoke ListMessageMoveTasks. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `ListMessageMoveTasksError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `ListMessageMoveTasksErrorTransport` variant.\n"
).
-spec list_message_move_tasks(client(), list_message_move_tasks_request()) -> {ok,
        list_message_move_tasks_result()} |
    {error, list_message_move_tasks_error()}.
list_message_move_tasks(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_list_message_move_tasks_request(Input),
        fun parse_list_message_move_tasks_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_list_message_move_tasks_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8546).
?DOC(
    " Invoke ListQueues. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `ListQueuesError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `ListQueuesErrorTransport` variant.\n"
).
-spec list_queues(client(), list_queues_request()) -> {ok, list_queues_result()} |
    {error, list_queues_error()}.
list_queues(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_list_queues_request(Input),
        fun parse_list_queues_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_list_queues_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8566).
?DOC(
    " Invoke ListQueueTags. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `ListQueueTagsError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `ListQueueTagsErrorTransport` variant.\n"
).
-spec list_queue_tags(client(), list_queue_tags_request()) -> {ok,
        list_queue_tags_result()} |
    {error, list_queue_tags_error()}.
list_queue_tags(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_list_queue_tags_request(Input),
        fun parse_list_queue_tags_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_list_queue_tags_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8586).
?DOC(
    " Invoke PurgeQueue. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `PurgeQueueError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `PurgeQueueErrorTransport` variant.\n"
).
-spec purge_queue(client(), purge_queue_request()) -> {ok, purge_queue_output()} |
    {error, purge_queue_error()}.
purge_queue(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_purge_queue_request(Input),
        fun parse_purge_queue_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_purge_queue_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8606).
?DOC(
    " Invoke ReceiveMessage. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `ReceiveMessageError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `ReceiveMessageErrorTransport` variant.\n"
).
-spec receive_message(client(), receive_message_request()) -> {ok,
        receive_message_result()} |
    {error, receive_message_error()}.
receive_message(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_receive_message_request(Input),
        fun parse_receive_message_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_receive_message_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8626).
?DOC(
    " Invoke RemovePermission. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `RemovePermissionError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `RemovePermissionErrorTransport` variant.\n"
).
-spec remove_permission(client(), remove_permission_request()) -> {ok,
        remove_permission_output()} |
    {error, remove_permission_error()}.
remove_permission(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_remove_permission_request(Input),
        fun parse_remove_permission_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_remove_permission_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8646).
?DOC(
    " Invoke SendMessage. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `SendMessageError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `SendMessageErrorTransport` variant.\n"
).
-spec send_message(client(), send_message_request()) -> {ok,
        send_message_result()} |
    {error, send_message_error()}.
send_message(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_send_message_request(Input),
        fun parse_send_message_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_send_message_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8666).
?DOC(
    " Invoke SendMessageBatch. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `SendMessageBatchError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `SendMessageBatchErrorTransport` variant.\n"
).
-spec send_message_batch(client(), send_message_batch_request()) -> {ok,
        send_message_batch_result()} |
    {error, send_message_batch_error()}.
send_message_batch(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_send_message_batch_request(Input),
        fun parse_send_message_batch_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_send_message_batch_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8686).
?DOC(
    " Invoke SetQueueAttributes. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `SetQueueAttributesError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `SetQueueAttributesErrorTransport` variant.\n"
).
-spec set_queue_attributes(client(), set_queue_attributes_request()) -> {ok,
        set_queue_attributes_output()} |
    {error, set_queue_attributes_error()}.
set_queue_attributes(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_set_queue_attributes_request(Input),
        fun parse_set_queue_attributes_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_set_queue_attributes_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8706).
?DOC(
    " Invoke StartMessageMoveTask. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `StartMessageMoveTaskError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `StartMessageMoveTaskErrorTransport` variant.\n"
).
-spec start_message_move_task(client(), start_message_move_task_request()) -> {ok,
        start_message_move_task_result()} |
    {error, start_message_move_task_error()}.
start_message_move_task(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_start_message_move_task_request(Input),
        fun parse_start_message_move_task_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_start_message_move_task_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8726).
?DOC(
    " Invoke TagQueue. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `TagQueueError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `TagQueueErrorTransport` variant.\n"
).
-spec tag_queue(client(), tag_queue_request()) -> {ok, tag_queue_output()} |
    {error, tag_queue_error()}.
tag_queue(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_tag_queue_request(Input),
        fun parse_tag_queue_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_tag_queue_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8746).
?DOC(
    " Invoke UntagQueue. Signs the request with SigV4 and dispatches via the configured\n"
    " HTTP transport. Service errors come back as typed `UntagQueueError`\n"
    " variants; transport, decode, and credentials failures all collapse\n"
    " into the generic `UntagQueueErrorTransport` variant.\n"
).
-spec untag_queue(client(), untag_queue_request()) -> {ok, untag_queue_output()} |
    {error, untag_queue_error()}.
untag_queue(Client, Input) ->
    case aws@internal@client@runtime:invoke(
        erlang:element(2, Client),
        build_untag_queue_request(Input),
        fun parse_untag_queue_response/3
    ) of
        {ok, Out} ->
            {ok, Out};

        {error, Err} ->
            {error, translate_untag_queue_error(Err)}
    end.

-file("src/aws/services/sqs.gleam", 8762).
-spec paginate_list_dead_letter_source_queues(
    client(),
    list_dead_letter_source_queues_request(),
    PKQ,
    fun((PKQ, list(binary())) -> PKQ)
) -> {ok, PKQ} | {error, list_dead_letter_source_queues_error()}.
paginate_list_dead_letter_source_queues(Client, Input, Acc, Reducer) ->
    Step = fun(Cursor) ->
        Input@1 = case Cursor of
            {some, _} ->
                {list_dead_letter_source_queues_request,
                    erlang:element(2, Input),
                    Cursor,
                    erlang:element(4, Input)};

            none ->
                Input
        end,
        case list_dead_letter_source_queues(Client, Input@1) of
            {ok, Out} ->
                {ok,
                    {gleam@option:unwrap(erlang:element(3, Out), []),
                        erlang:element(2, Out)}};

            {error, E} ->
                {error, E}
        end
    end,
    aws@pagination:fold(Acc, Step, Reducer).

-file("src/aws/services/sqs.gleam", 8782).
-spec paginate_list_queues(
    client(),
    list_queues_request(),
    PKU,
    fun((PKU, list(binary())) -> PKU)
) -> {ok, PKU} | {error, list_queues_error()}.
paginate_list_queues(Client, Input, Acc, Reducer) ->
    Step = fun(Cursor) ->
        Input@1 = case Cursor of
            {some, _} ->
                {list_queues_request,
                    erlang:element(2, Input),
                    Cursor,
                    erlang:element(4, Input)};

            none ->
                Input
        end,
        case list_queues(Client, Input@1) of
            {ok, Out} ->
                {ok,
                    {gleam@option:unwrap(erlang:element(3, Out), []),
                        erlang:element(2, Out)}};

            {error, E} ->
                {error, E}
        end
    end,
    aws@pagination:fold(Acc, Step, Reducer).

-file("src/aws/services/sqs.gleam", 8801).
-spec parse_invalid_address_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_invalid_address_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"InvalidAddress"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8809).
-spec parse_invalid_security_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_invalid_security_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"InvalidSecurity"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8817).
-spec parse_over_limit_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_over_limit_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"OverLimit"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8825).
-spec parse_queue_does_not_exist_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_queue_does_not_exist_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"QueueDoesNotExist"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8833).
-spec parse_request_throttled_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_request_throttled_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"RequestThrottled"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8841).
-spec parse_unsupported_operation_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_unsupported_operation_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"UnsupportedOperation"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8849).
-spec parse_resource_not_found_exception_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_resource_not_found_exception_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"ResourceNotFoundException"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8857).
-spec parse_message_not_inflight_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_message_not_inflight_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"MessageNotInflight"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8865).
-spec parse_receipt_handle_is_invalid_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_receipt_handle_is_invalid_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"ReceiptHandleIsInvalid"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8873).
-spec parse_batch_entry_ids_not_distinct_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_batch_entry_ids_not_distinct_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"BatchEntryIdsNotDistinct"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8881).
-spec parse_empty_batch_request_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_empty_batch_request_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"EmptyBatchRequest"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8889).
-spec parse_invalid_batch_entry_id_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_invalid_batch_entry_id_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"InvalidBatchEntryId"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8897).
-spec parse_too_many_entries_in_batch_request_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_too_many_entries_in_batch_request_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"TooManyEntriesInBatchRequest"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8909).
-spec parse_invalid_attribute_name_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_invalid_attribute_name_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"InvalidAttributeName"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8917).
-spec parse_invalid_attribute_value_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_invalid_attribute_value_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"InvalidAttributeValue"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8925).
-spec parse_queue_deleted_recently_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_queue_deleted_recently_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"QueueDeletedRecently"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8933).
-spec parse_queue_name_exists_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_queue_name_exists_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"QueueNameExists"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8941).
-spec parse_invalid_id_format_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_invalid_id_format_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"InvalidIdFormat"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8949).
-spec parse_purge_queue_in_progress_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_purge_queue_in_progress_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"PurgeQueueInProgress"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8957).
-spec parse_kms_access_denied_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_kms_access_denied_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"KmsAccessDenied"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8965).
-spec parse_kms_disabled_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_kms_disabled_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"KmsDisabled"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8973).
-spec parse_kms_invalid_key_usage_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_kms_invalid_key_usage_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"KmsInvalidKeyUsage"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8981).
-spec parse_kms_invalid_state_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_kms_invalid_state_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"KmsInvalidState"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8989).
-spec parse_kms_not_found_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_kms_not_found_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"KmsNotFound"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 8997).
-spec parse_kms_opt_in_required_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_kms_opt_in_required_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"KmsOptInRequired"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 9005).
-spec parse_kms_throttled_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_kms_throttled_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"KmsThrottled"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 9013).
-spec parse_invalid_message_contents_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_invalid_message_contents_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"InvalidMessageContents"/utf8>>
    ).

-file("src/aws/services/sqs.gleam", 9021).
-spec parse_batch_request_too_long_response(
    integer(),
    gleam@dict:dict(binary(), binary()),
    bitstring()
) -> {ok, nil} | {error, binary()}.
parse_batch_request_too_long_response(_, Headers, Body) ->
    aws@internal@client@runtime:check_error_type_matches(
        Headers,
        Body,
        <<"BatchRequestTooLong"/utf8>>
    ).