-- AUTOGENERATED FILE - DO NOT EDIT
-- AWS Service: sns

local common = require("nvim-aws.common")

--- AWS sns service functions
local M = {}

--- AWS sns add-permission operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.add_permission(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "add-permission" }, input, callbacks)
end

--- AWS sns check-if-phone-number-is-opted-out operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.check_if_phone_number_is_opted_out(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "check-if-phone-number-is-opted-out" }, input, callbacks)
end

--- AWS sns confirm-subscription operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.confirm_subscription(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "confirm-subscription" }, input, callbacks)
end

--- AWS sns create-platform-application operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.create_platform_application(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "create-platform-application" }, input, callbacks)
end

--- AWS sns create-platform-endpoint operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.create_platform_endpoint(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "create-platform-endpoint" }, input, callbacks)
end

--- AWS sns create-sms-sandbox-phone-number operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.create_sms_sandbox_phone_number(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "create-sms-sandbox-phone-number" }, input, callbacks)
end

--- AWS sns create-topic operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.create_topic(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "create-topic" }, input, callbacks)
end

--- AWS sns delete-endpoint operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.delete_endpoint(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "delete-endpoint" }, input, callbacks)
end

--- AWS sns delete-platform-application operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.delete_platform_application(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "delete-platform-application" }, input, callbacks)
end

--- AWS sns delete-sms-sandbox-phone-number operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.delete_sms_sandbox_phone_number(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "delete-sms-sandbox-phone-number" }, input, callbacks)
end

--- AWS sns delete-topic operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.delete_topic(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "delete-topic" }, input, callbacks)
end

--- AWS sns get-data-protection-policy operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.get_data_protection_policy(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "get-data-protection-policy" }, input, callbacks)
end

--- AWS sns get-endpoint-attributes operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.get_endpoint_attributes(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "get-endpoint-attributes" }, input, callbacks)
end

--- AWS sns get-platform-application-attributes operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.get_platform_application_attributes(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "get-platform-application-attributes" }, input, callbacks)
end

--- AWS sns get-sms-attributes operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.get_sms_attributes(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "get-sms-attributes" }, input, callbacks)
end

--- AWS sns get-sms-sandbox-account-status operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.get_sms_sandbox_account_status(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "get-sms-sandbox-account-status" }, input, callbacks)
end

--- AWS sns get-subscription-attributes operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.get_subscription_attributes(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "get-subscription-attributes" }, input, callbacks)
end

--- AWS sns get-topic-attributes operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.get_topic_attributes(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "get-topic-attributes" }, input, callbacks)
end

--- AWS sns list-endpoints-by-platform-application operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.list_endpoints_by_platform_application(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "list-endpoints-by-platform-application" }, input, callbacks)
end

--- AWS sns list-origination-numbers operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.list_origination_numbers(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "list-origination-numbers" }, input, callbacks)
end

--- AWS sns list-phone-numbers-opted-out operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.list_phone_numbers_opted_out(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "list-phone-numbers-opted-out" }, input, callbacks)
end

--- AWS sns list-platform-applications operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.list_platform_applications(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "list-platform-applications" }, input, callbacks)
end

--- AWS sns list-sms-sandbox-phone-numbers operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.list_sms_sandbox_phone_numbers(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "list-sms-sandbox-phone-numbers" }, input, callbacks)
end

--- AWS sns list-subscriptions operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.list_subscriptions(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "list-subscriptions" }, input, callbacks)
end

--- AWS sns list-subscriptions-by-topic operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.list_subscriptions_by_topic(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "list-subscriptions-by-topic" }, input, callbacks)
end

--- AWS sns list-tags-for-resource operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.list_tags_for_resource(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "list-tags-for-resource" }, input, callbacks)
end

--- AWS sns list-topics operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.list_topics(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "list-topics" }, input, callbacks)
end

--- AWS sns opt-in-phone-number operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.opt_in_phone_number(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "opt-in-phone-number" }, input, callbacks)
end

--- AWS sns publish operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.publish(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "publish" }, input, callbacks)
end

--- AWS sns publish-batch operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.publish_batch(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "publish-batch" }, input, callbacks)
end

--- AWS sns put-data-protection-policy operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.put_data_protection_policy(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "put-data-protection-policy" }, input, callbacks)
end

--- AWS sns remove-permission operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.remove_permission(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "remove-permission" }, input, callbacks)
end

--- AWS sns set-endpoint-attributes operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.set_endpoint_attributes(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "set-endpoint-attributes" }, input, callbacks)
end

--- AWS sns set-platform-application-attributes operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.set_platform_application_attributes(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "set-platform-application-attributes" }, input, callbacks)
end

--- AWS sns set-sms-attributes operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.set_sms_attributes(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "set-sms-attributes" }, input, callbacks)
end

--- AWS sns set-subscription-attributes operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.set_subscription_attributes(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "set-subscription-attributes" }, input, callbacks)
end

--- AWS sns set-topic-attributes operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.set_topic_attributes(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "set-topic-attributes" }, input, callbacks)
end

--- AWS sns subscribe operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.subscribe(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "subscribe" }, input, callbacks)
end

--- AWS sns tag-resource operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.tag_resource(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "tag-resource" }, input, callbacks)
end

--- AWS sns unsubscribe operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.unsubscribe(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "unsubscribe" }, input, callbacks)
end

--- AWS sns untag-resource operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.untag_resource(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "untag-resource" }, input, callbacks)
end

--- AWS sns verify-sms-sandbox-phone-number operation
--- @param input nil|table the input table
--- @param callbacks nil|{stdout?: fun(err: string, data: string), stderr?: fun(err: string, data: string), on_exit?: fun(out: vim.SystemCompleted)}
--- @return {success: boolean, data?: table, error?: string }|{success: boolean, job: vim.SystemObj}
function M.verify_sms_sandbox_phone_number(input, callbacks)
	return common.execute_aws_command_skeleton({ "sns", "verify-sms-sandbox-phone-number" }, input, callbacks)
end

return M
