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

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

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

--- AWS s3 cp 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.cp(input, callbacks)
	return common.execute_aws_command({ "s3", "cp" }, input, callbacks)
end

--- AWS s3 ls 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.ls(input, callbacks)
	return common.execute_aws_command({ "s3", "ls" }, input, callbacks)
end

--- AWS s3 mb 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.mb(input, callbacks)
	return common.execute_aws_command({ "s3", "mb" }, input, callbacks)
end

--- AWS s3 mv 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.mv(input, callbacks)
	return common.execute_aws_command({ "s3", "mv" }, input, callbacks)
end

--- AWS s3 presign 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.presign(input, callbacks)
	return common.execute_aws_command({ "s3", "presign" }, input, callbacks)
end

--- AWS s3 rb 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.rb(input, callbacks)
	return common.execute_aws_command({ "s3", "rb" }, input, callbacks)
end

--- AWS s3 rm 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.rm(input, callbacks)
	return common.execute_aws_command({ "s3", "rm" }, input, callbacks)
end

--- AWS s3 sync 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.sync(input, callbacks)
	return common.execute_aws_command({ "s3", "sync" }, input, callbacks)
end

--- AWS s3 website 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.website(input, callbacks)
	return common.execute_aws_command({ "s3", "website" }, input, callbacks)
end

return M
