%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
%% See https://github.com/aws-beam/aws-codegen for more details.
%% @doc Amazon Web Services S3 Control provides access to Amazon S3 control
%% plane actions.
-module(aws_s3_control).
-export([associate_access_grants_identity_center/2,
associate_access_grants_identity_center/3,
create_access_grant/2,
create_access_grant/3,
create_access_grants_instance/2,
create_access_grants_instance/3,
create_access_grants_location/2,
create_access_grants_location/3,
create_access_point/3,
create_access_point/4,
create_access_point_for_object_lambda/3,
create_access_point_for_object_lambda/4,
create_bucket/3,
create_bucket/4,
create_job/2,
create_job/3,
create_multi_region_access_point/2,
create_multi_region_access_point/3,
create_storage_lens_group/2,
create_storage_lens_group/3,
delete_access_grant/3,
delete_access_grant/4,
delete_access_grants_instance/2,
delete_access_grants_instance/3,
delete_access_grants_instance_resource_policy/2,
delete_access_grants_instance_resource_policy/3,
delete_access_grants_location/3,
delete_access_grants_location/4,
delete_access_point/3,
delete_access_point/4,
delete_access_point_for_object_lambda/3,
delete_access_point_for_object_lambda/4,
delete_access_point_policy/3,
delete_access_point_policy/4,
delete_access_point_policy_for_object_lambda/3,
delete_access_point_policy_for_object_lambda/4,
delete_bucket/3,
delete_bucket/4,
delete_bucket_lifecycle_configuration/3,
delete_bucket_lifecycle_configuration/4,
delete_bucket_policy/3,
delete_bucket_policy/4,
delete_bucket_replication/3,
delete_bucket_replication/4,
delete_bucket_tagging/3,
delete_bucket_tagging/4,
delete_job_tagging/3,
delete_job_tagging/4,
delete_multi_region_access_point/2,
delete_multi_region_access_point/3,
delete_public_access_block/2,
delete_public_access_block/3,
delete_storage_lens_configuration/3,
delete_storage_lens_configuration/4,
delete_storage_lens_configuration_tagging/3,
delete_storage_lens_configuration_tagging/4,
delete_storage_lens_group/3,
delete_storage_lens_group/4,
describe_job/3,
describe_job/5,
describe_job/6,
describe_multi_region_access_point_operation/3,
describe_multi_region_access_point_operation/5,
describe_multi_region_access_point_operation/6,
dissociate_access_grants_identity_center/2,
dissociate_access_grants_identity_center/3,
get_access_grant/3,
get_access_grant/5,
get_access_grant/6,
get_access_grants_instance/2,
get_access_grants_instance/4,
get_access_grants_instance/5,
get_access_grants_instance_for_prefix/3,
get_access_grants_instance_for_prefix/5,
get_access_grants_instance_for_prefix/6,
get_access_grants_instance_resource_policy/2,
get_access_grants_instance_resource_policy/4,
get_access_grants_instance_resource_policy/5,
get_access_grants_location/3,
get_access_grants_location/5,
get_access_grants_location/6,
get_access_point/3,
get_access_point/5,
get_access_point/6,
get_access_point_configuration_for_object_lambda/3,
get_access_point_configuration_for_object_lambda/5,
get_access_point_configuration_for_object_lambda/6,
get_access_point_for_object_lambda/3,
get_access_point_for_object_lambda/5,
get_access_point_for_object_lambda/6,
get_access_point_policy/3,
get_access_point_policy/5,
get_access_point_policy/6,
get_access_point_policy_for_object_lambda/3,
get_access_point_policy_for_object_lambda/5,
get_access_point_policy_for_object_lambda/6,
get_access_point_policy_status/3,
get_access_point_policy_status/5,
get_access_point_policy_status/6,
get_access_point_policy_status_for_object_lambda/3,
get_access_point_policy_status_for_object_lambda/5,
get_access_point_policy_status_for_object_lambda/6,
get_bucket/3,
get_bucket/5,
get_bucket/6,
get_bucket_lifecycle_configuration/3,
get_bucket_lifecycle_configuration/5,
get_bucket_lifecycle_configuration/6,
get_bucket_policy/3,
get_bucket_policy/5,
get_bucket_policy/6,
get_bucket_replication/3,
get_bucket_replication/5,
get_bucket_replication/6,
get_bucket_tagging/3,
get_bucket_tagging/5,
get_bucket_tagging/6,
get_bucket_versioning/3,
get_bucket_versioning/5,
get_bucket_versioning/6,
get_data_access/4,
get_data_access/6,
get_data_access/7,
get_job_tagging/3,
get_job_tagging/5,
get_job_tagging/6,
get_multi_region_access_point/3,
get_multi_region_access_point/5,
get_multi_region_access_point/6,
get_multi_region_access_point_policy/3,
get_multi_region_access_point_policy/5,
get_multi_region_access_point_policy/6,
get_multi_region_access_point_policy_status/3,
get_multi_region_access_point_policy_status/5,
get_multi_region_access_point_policy_status/6,
get_multi_region_access_point_routes/3,
get_multi_region_access_point_routes/5,
get_multi_region_access_point_routes/6,
get_public_access_block/2,
get_public_access_block/4,
get_public_access_block/5,
get_storage_lens_configuration/3,
get_storage_lens_configuration/5,
get_storage_lens_configuration/6,
get_storage_lens_configuration_tagging/3,
get_storage_lens_configuration_tagging/5,
get_storage_lens_configuration_tagging/6,
get_storage_lens_group/3,
get_storage_lens_group/5,
get_storage_lens_group/6,
list_access_grants/2,
list_access_grants/4,
list_access_grants/5,
list_access_grants_instances/2,
list_access_grants_instances/4,
list_access_grants_instances/5,
list_access_grants_locations/2,
list_access_grants_locations/4,
list_access_grants_locations/5,
list_access_points/2,
list_access_points/4,
list_access_points/5,
list_access_points_for_object_lambda/2,
list_access_points_for_object_lambda/4,
list_access_points_for_object_lambda/5,
list_jobs/2,
list_jobs/4,
list_jobs/5,
list_multi_region_access_points/2,
list_multi_region_access_points/4,
list_multi_region_access_points/5,
list_regional_buckets/2,
list_regional_buckets/4,
list_regional_buckets/5,
list_storage_lens_configurations/2,
list_storage_lens_configurations/4,
list_storage_lens_configurations/5,
list_storage_lens_groups/2,
list_storage_lens_groups/4,
list_storage_lens_groups/5,
list_tags_for_resource/3,
list_tags_for_resource/5,
list_tags_for_resource/6,
put_access_grants_instance_resource_policy/2,
put_access_grants_instance_resource_policy/3,
put_access_point_configuration_for_object_lambda/3,
put_access_point_configuration_for_object_lambda/4,
put_access_point_policy/3,
put_access_point_policy/4,
put_access_point_policy_for_object_lambda/3,
put_access_point_policy_for_object_lambda/4,
put_bucket_lifecycle_configuration/3,
put_bucket_lifecycle_configuration/4,
put_bucket_policy/3,
put_bucket_policy/4,
put_bucket_replication/3,
put_bucket_replication/4,
put_bucket_tagging/3,
put_bucket_tagging/4,
put_bucket_versioning/3,
put_bucket_versioning/4,
put_job_tagging/3,
put_job_tagging/4,
put_multi_region_access_point_policy/2,
put_multi_region_access_point_policy/3,
put_public_access_block/2,
put_public_access_block/3,
put_storage_lens_configuration/3,
put_storage_lens_configuration/4,
put_storage_lens_configuration_tagging/3,
put_storage_lens_configuration_tagging/4,
submit_multi_region_access_point_routes/3,
submit_multi_region_access_point_routes/4,
tag_resource/3,
tag_resource/4,
untag_resource/3,
untag_resource/4,
update_access_grants_location/3,
update_access_grants_location/4,
update_job_priority/3,
update_job_priority/4,
update_job_status/3,
update_job_status/4,
update_storage_lens_group/3,
update_storage_lens_group/4]).
-include_lib("hackney/include/hackney_lib.hrl").
%%====================================================================
%% API
%%====================================================================
%% @doc Associate your S3 Access Grants instance with an Amazon Web Services
%% IAM Identity Center instance.
%%
%% Use this action if you want to create access grants for users or groups
%% from your corporate identity directory. First, you must add your corporate
%% identity directory to Amazon Web Services IAM Identity Center. Then, you
%% can associate this IAM Identity Center instance with your S3 Access Grants
%% instance.
%%
%%
- Permissions
- You must have the
%% `s3:AssociateAccessGrantsIdentityCenter' permission to use this
%% operation.
%%
%%
- Additional Permissions
- You must also have the
%% following permissions: `sso:CreateApplication',
%% `sso:PutApplicationGrant', and
%% `sso:PutApplicationAuthenticationMethod'.
%%
%%
associate_access_grants_identity_center(Client, Input) ->
associate_access_grants_identity_center(Client, Input, []).
associate_access_grants_identity_center(Client, Input0, Options0) ->
Method = post,
Path = ["/v20180820/accessgrantsinstance/identitycenter"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Creates an access grant that gives a grantee access to your S3 data.
%%
%% The grantee can be an IAM user or role or a directory user, or group.
%% Before you can create a grant, you must have an S3 Access Grants instance
%% in the same Region as the S3 data. You can create an S3 Access Grants
%% instance using the CreateAccessGrantsInstance. You must also have
%% registered at least one S3 data location in your S3 Access Grants instance
%% using CreateAccessGrantsLocation.
%%
%% - Permissions
- You must have the
%% `s3:CreateAccessGrant' permission to use this operation.
%%
%%
- Additional Permissions
- For any directory identity -
%% `sso:DescribeInstance' and `sso:DescribeApplication'
%%
%% For directory users - `identitystore:DescribeUser'
%%
%% For directory groups - `identitystore:DescribeGroup'
%%
%%
create_access_grant(Client, Input) ->
create_access_grant(Client, Input, []).
create_access_grant(Client, Input0, Options0) ->
Method = post,
Path = ["/v20180820/accessgrantsinstance/grant"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Creates an S3 Access Grants instance, which serves as a logical
%% grouping for access grants.
%%
%% You can create one S3 Access Grants instance per Region per account.
%%
%% - Permissions
- You must have the
%% `s3:CreateAccessGrantsInstance' permission to use this operation.
%%
%%
- Additional Permissions
- To associate an IAM Identity
%% Center instance with your S3 Access Grants instance, you must also have
%% the `sso:DescribeInstance', `sso:CreateApplication',
%% `sso:PutApplicationGrant', and
%% `sso:PutApplicationAuthenticationMethod' permissions.
%%
%%
create_access_grants_instance(Client, Input) ->
create_access_grants_instance(Client, Input, []).
create_access_grants_instance(Client, Input0, Options0) ->
Method = post,
Path = ["/v20180820/accessgrantsinstance"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc The S3 data location that you would like to register in your S3
%% Access Grants instance.
%%
%% Your S3 data must be in the same Region as your S3 Access Grants instance.
%% The location can be one of the following:
%%
%% - The default S3 location `s3://'
%%
%%
- A bucket - `S3://<bucket-name>'
%%
%%
- A bucket and prefix -
%% `S3://<bucket-name>/<prefix>'
%%
%%
When you register a location, you must include the IAM role
%% that has permission to manage the S3 location that you are registering.
%% Give S3 Access Grants permission to assume this role using a policy. S3
%% Access Grants assumes this role to manage access to the location and to
%% vend temporary credentials to grantees or client applications.
%%
%% - Permissions
- You must have the
%% `s3:CreateAccessGrantsLocation' permission to use this operation.
%%
%%
- Additional Permissions
- You must also have the
%% following permission for the specified IAM role: `iam:PassRole'
%%
%%
create_access_grants_location(Client, Input) ->
create_access_grants_location(Client, Input, []).
create_access_grants_location(Client, Input0, Options0) ->
Method = post,
Path = ["/v20180820/accessgrantsinstance/location"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Creates an access point and associates it with the specified bucket. For
%% more information, see Managing Data Access with Amazon S3 Access Points in
%% the Amazon S3 User Guide.
%%
%% S3 on Outposts only supports VPC-style access points.
%%
%% For more information, see Accessing Amazon S3 on Outposts using virtual
%% private cloud (VPC) only access points in the Amazon S3 User Guide.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following actions are related to `CreateAccessPoint':
%%
%% - GetAccessPoint
%%
%%
- DeleteAccessPoint
%%
%%
- ListAccessPoints
%%
%%
create_access_point(Client, Name, Input) ->
create_access_point(Client, Name, Input, []).
create_access_point(Client, Name, Input0, Options0) ->
Method = put,
Path = ["/v20180820/accesspoint/", aws_util:encode_uri(Name), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Creates an Object Lambda Access Point. For more information, see
%% Transforming objects with Object Lambda Access Points in the Amazon S3
%% User Guide.
%%
%% The following actions are related to
%% `CreateAccessPointForObjectLambda':
%%
%% - DeleteAccessPointForObjectLambda
%%
%%
- GetAccessPointForObjectLambda
%%
%%
- ListAccessPointsForObjectLambda
%%
%%
create_access_point_for_object_lambda(Client, Name, Input) ->
create_access_point_for_object_lambda(Client, Name, Input, []).
create_access_point_for_object_lambda(Client, Name, Input0, Options0) ->
Method = put,
Path = ["/v20180820/accesspointforobjectlambda/", aws_util:encode_uri(Name), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This action creates an Amazon S3 on Outposts bucket.
%%
%% To create an S3 bucket, see Create Bucket in the Amazon S3 API Reference.
%%
%% Creates a new Outposts bucket. By creating the bucket, you become the
%% bucket owner. To create an Outposts bucket, you must have S3 on Outposts.
%% For more information, see Using Amazon S3 on Outposts in Amazon S3 User
%% Guide.
%%
%% Not every string is an acceptable bucket name. For information on bucket
%% naming restrictions, see Working with Amazon S3 Buckets.
%%
%% S3 on Outposts buckets support:
%%
%% - Tags
%%
%%
- LifecycleConfigurations for deleting expired objects
%%
%%
For a complete list of restrictions and Amazon S3 feature
%% limitations on S3 on Outposts, see Amazon S3 on Outposts Restrictions and
%% Limitations.
%%
%% For an example of the request syntax for Amazon S3 on Outposts that uses
%% the S3 on Outposts endpoint hostname prefix and `x-amz-outpost-id' in
%% your API request, see the Examples section.
%%
%% The following actions are related to `CreateBucket' for Amazon S3 on
%% Outposts:
%%
%% - PutObject
%%
%%
- GetBucket
%%
%%
- DeleteBucket
%%
%%
- CreateAccessPoint
%%
%%
- PutAccessPointPolicy
%%
%%
create_bucket(Client, Bucket, Input) ->
create_bucket(Client, Bucket, Input, []).
create_bucket(Client, Bucket, Input0, Options0) ->
Method = put,
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-acl">>, <<"ACL">>},
{<<"x-amz-grant-full-control">>, <<"GrantFullControl">>},
{<<"x-amz-grant-read">>, <<"GrantRead">>},
{<<"x-amz-grant-read-acp">>, <<"GrantReadACP">>},
{<<"x-amz-grant-write">>, <<"GrantWrite">>},
{<<"x-amz-grant-write-acp">>, <<"GrantWriteACP">>},
{<<"x-amz-bucket-object-lock-enabled">>, <<"ObjectLockEnabledForBucket">>},
{<<"x-amz-outpost-id">>, <<"OutpostId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
case request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode) of
{ok, Body0, {_, ResponseHeaders, _} = Response} ->
ResponseHeadersParams =
[
{<<"Location">>, <<"Location">>}
],
FoldFun = fun({Name_, Key_}, Acc_) ->
case lists:keyfind(Name_, 1, ResponseHeaders) of
false -> Acc_;
{_, Value_} -> Acc_#{Key_ => Value_}
end
end,
Body = lists:foldl(FoldFun, Body0, ResponseHeadersParams),
{ok, Body, Response};
Result ->
Result
end.
%% @doc This operation creates an S3 Batch Operations job.
%%
%% You can use S3 Batch Operations to perform large-scale batch actions on
%% Amazon S3 objects. Batch Operations can run a single action on lists of
%% Amazon S3 objects that you specify. For more information, see S3 Batch
%% Operations in the Amazon S3 User Guide.
%%
%% - Permissions
- For information about permissions required
%% to use the Batch Operations, see Granting permissions for S3 Batch
%% Operations in the Amazon S3 User Guide.
%%
%%
%%
%% Related actions include:
%%
%% - DescribeJob
%%
%%
- ListJobs
%%
%%
- UpdateJobPriority
%%
%%
- UpdateJobStatus
%%
%%
- JobOperation
%%
%%
create_job(Client, Input) ->
create_job(Client, Input, []).
create_job(Client, Input0, Options0) ->
Method = post,
Path = ["/v20180820/jobs"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Creates a Multi-Region Access Point and associates it with the specified
%% buckets. For more information about creating Multi-Region Access Points,
%% see Creating Multi-Region Access Points in the Amazon S3 User Guide.
%%
%% This action will always be routed to the US West (Oregon) Region. For more
%% information about the restrictions around managing Multi-Region Access
%% Points, see Managing Multi-Region Access Points in the Amazon S3 User
%% Guide.
%%
%% This request is asynchronous, meaning that you might receive a response
%% before the command has completed. When this request provides a response,
%% it provides a token that you can use to monitor the status of the request
%% with `DescribeMultiRegionAccessPointOperation'.
%%
%% The following actions are related to `CreateMultiRegionAccessPoint':
%%
%% - DeleteMultiRegionAccessPoint
%%
%%
- DescribeMultiRegionAccessPointOperation
%%
%%
- GetMultiRegionAccessPoint
%%
%%
- ListMultiRegionAccessPoints
%%
%%
create_multi_region_access_point(Client, Input) ->
create_multi_region_access_point(Client, Input, []).
create_multi_region_access_point(Client, Input0, Options0) ->
Method = post,
Path = ["/v20180820/async-requests/mrap/create"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Creates a new S3 Storage Lens group and associates it with the
%% specified Amazon Web Services account ID.
%%
%% An S3 Storage Lens group is a custom grouping of objects based on prefix,
%% suffix, object tags, object size, object age, or a combination of these
%% filters. For each Storage Lens group that you’ve created, you can also
%% optionally add Amazon Web Services resource tags. For more information
%% about S3 Storage Lens groups, see Working with S3 Storage Lens groups.
%%
%% To use this operation, you must have the permission to perform the
%% `s3:CreateStorageLensGroup' action. If you’re trying to create a
%% Storage Lens group with Amazon Web Services resource tags, you must also
%% have permission to perform the `s3:TagResource' action. For more
%% information about the required Storage Lens Groups permissions, see
%% Setting account permissions to use S3 Storage Lens groups.
%%
%% For information about Storage Lens groups errors, see List of Amazon S3
%% Storage Lens error codes.
create_storage_lens_group(Client, Input) ->
create_storage_lens_group(Client, Input, []).
create_storage_lens_group(Client, Input0, Options0) ->
Method = post,
Path = ["/v20180820/storagelensgroup"],
SuccessStatusCode = 204,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Deletes the access grant from the S3 Access Grants instance.
%%
%% You cannot undo an access grant deletion and the grantee will no longer
%% have access to the S3 data.
%%
%% - Permissions
- You must have the
%% `s3:DeleteAccessGrant' permission to use this operation.
%%
%%
delete_access_grant(Client, AccessGrantId, Input) ->
delete_access_grant(Client, AccessGrantId, Input, []).
delete_access_grant(Client, AccessGrantId, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/accessgrantsinstance/grant/", aws_util:encode_uri(AccessGrantId), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Deletes your S3 Access Grants instance.
%%
%% You must first delete the access grants and locations before S3 Access
%% Grants can delete the instance. See DeleteAccessGrant and
%% DeleteAccessGrantsLocation. If you have associated an IAM Identity Center
%% instance with your S3 Access Grants instance, you must first dissassociate
%% the Identity Center instance from the S3 Access Grants instance before you
%% can delete the S3 Access Grants instance. See
%% AssociateAccessGrantsIdentityCenter and
%% DissociateAccessGrantsIdentityCenter.
%%
%% - Permissions
- You must have the
%% `s3:DeleteAccessGrantsInstance' permission to use this operation.
%%
%%
delete_access_grants_instance(Client, Input) ->
delete_access_grants_instance(Client, Input, []).
delete_access_grants_instance(Client, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/accessgrantsinstance"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Deletes the resource policy of the S3 Access Grants instance.
%%
%% The resource policy is used to manage cross-account access to your S3
%% Access Grants instance. By deleting the resource policy, you delete any
%% cross-account permissions to your S3 Access Grants instance.
%%
%% - Permissions
- You must have the
%% `s3:DeleteAccessGrantsInstanceResourcePolicy' permission to use this
%% operation.
%%
%%
delete_access_grants_instance_resource_policy(Client, Input) ->
delete_access_grants_instance_resource_policy(Client, Input, []).
delete_access_grants_instance_resource_policy(Client, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/accessgrantsinstance/resourcepolicy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Deregisters a location from your S3 Access Grants instance.
%%
%% You can only delete a location registration from an S3 Access Grants
%% instance if there are no grants associated with this location. See Delete
%% a grant for information on how to delete grants. You need to have at least
%% one registered location in your S3 Access Grants instance in order to
%% create access grants.
%%
%% - Permissions
- You must have the
%% `s3:DeleteAccessGrantsLocation' permission to use this operation.
%%
%%
delete_access_grants_location(Client, AccessGrantsLocationId, Input) ->
delete_access_grants_location(Client, AccessGrantsLocationId, Input, []).
delete_access_grants_location(Client, AccessGrantsLocationId, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/accessgrantsinstance/location/", aws_util:encode_uri(AccessGrantsLocationId), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Deletes the specified access point.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following actions are related to `DeleteAccessPoint':
%%
%% - CreateAccessPoint
%%
%%
- GetAccessPoint
%%
%%
- ListAccessPoints
%%
%%
delete_access_point(Client, Name, Input) ->
delete_access_point(Client, Name, Input, []).
delete_access_point(Client, Name, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/accesspoint/", aws_util:encode_uri(Name), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Deletes the specified Object Lambda Access Point.
%%
%% The following actions are related to
%% `DeleteAccessPointForObjectLambda':
%%
%% - CreateAccessPointForObjectLambda
%%
%%
- GetAccessPointForObjectLambda
%%
%%
- ListAccessPointsForObjectLambda
%%
%%
delete_access_point_for_object_lambda(Client, Name, Input) ->
delete_access_point_for_object_lambda(Client, Name, Input, []).
delete_access_point_for_object_lambda(Client, Name, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/accesspointforobjectlambda/", aws_util:encode_uri(Name), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Deletes the access point policy for the specified access point.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following actions are related to `DeleteAccessPointPolicy':
%%
%% - PutAccessPointPolicy
%%
%%
- GetAccessPointPolicy
%%
%%
delete_access_point_policy(Client, Name, Input) ->
delete_access_point_policy(Client, Name, Input, []).
delete_access_point_policy(Client, Name, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/accesspoint/", aws_util:encode_uri(Name), "/policy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Removes the resource policy for an Object Lambda Access Point.
%%
%% The following actions are related to
%% `DeleteAccessPointPolicyForObjectLambda':
%%
%% - GetAccessPointPolicyForObjectLambda
%%
%%
- PutAccessPointPolicyForObjectLambda
%%
%%
delete_access_point_policy_for_object_lambda(Client, Name, Input) ->
delete_access_point_policy_for_object_lambda(Client, Name, Input, []).
delete_access_point_policy_for_object_lambda(Client, Name, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/accesspointforobjectlambda/", aws_util:encode_uri(Name), "/policy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This action deletes an Amazon S3 on Outposts bucket.
%%
%% To delete an S3 bucket, see DeleteBucket in the Amazon S3 API Reference.
%%
%% Deletes the Amazon S3 on Outposts bucket. All objects (including all
%% object versions and delete markers) in the bucket must be deleted before
%% the bucket itself can be deleted. For more information, see Using Amazon
%% S3 on Outposts in Amazon S3 User Guide.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% == Related Resources ==
%%
%% - CreateBucket
%%
%%
- GetBucket
%%
%%
- DeleteObject
%%
%%
delete_bucket(Client, Bucket, Input) ->
delete_bucket(Client, Bucket, Input, []).
delete_bucket(Client, Bucket, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This action deletes an Amazon S3 on Outposts bucket's lifecycle
%% configuration.
%%
%% To delete an S3 bucket's lifecycle configuration, see
%% DeleteBucketLifecycle in the Amazon S3 API Reference.
%%
%% Deletes the lifecycle configuration from the specified Outposts bucket.
%% Amazon S3 on Outposts removes all the lifecycle configuration rules in the
%% lifecycle subresource associated with the bucket. Your objects never
%% expire, and Amazon S3 on Outposts no longer automatically deletes any
%% objects on the basis of rules contained in the deleted lifecycle
%% configuration. For more information, see Using Amazon S3 on Outposts in
%% Amazon S3 User Guide.
%%
%% To use this operation, you must have permission to perform the
%% `s3-outposts:PutLifecycleConfiguration' action. By default, the bucket
%% owner has this permission and the Outposts bucket owner can grant this
%% permission to others.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% For more information about object expiration, see Elements to Describe
%% Lifecycle Actions.
%%
%% Related actions include:
%%
%% - PutBucketLifecycleConfiguration
%%
%%
- GetBucketLifecycleConfiguration
%%
%%
delete_bucket_lifecycle_configuration(Client, Bucket, Input) ->
delete_bucket_lifecycle_configuration(Client, Bucket, Input, []).
delete_bucket_lifecycle_configuration(Client, Bucket, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/lifecycleconfiguration"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This action deletes an Amazon S3 on Outposts bucket policy.
%%
%% To delete an S3 bucket policy, see DeleteBucketPolicy in the Amazon S3 API
%% Reference.
%%
%% This implementation of the DELETE action uses the policy subresource to
%% delete the policy of a specified Amazon S3 on Outposts bucket. If you are
%% using an identity other than the root user of the Amazon Web Services
%% account that owns the bucket, the calling identity must have the
%% `s3-outposts:DeleteBucketPolicy' permissions on the specified Outposts
%% bucket and belong to the bucket owner's account to use this action.
%% For more information, see Using Amazon S3 on Outposts in Amazon S3 User
%% Guide.
%%
%% If you don't have `DeleteBucketPolicy' permissions, Amazon S3
%% returns a `403 Access Denied' error. If you have the correct
%% permissions, but you're not using an identity that belongs to the
%% bucket owner's account, Amazon S3 returns a `405 Method Not
%% Allowed' error.
%%
%% As a security precaution, the root user of the Amazon Web Services account
%% that owns a bucket can always use this action, even if the policy
%% explicitly denies the root user the ability to perform this action.
%%
%% For more information about bucket policies, see Using Bucket Policies and
%% User Policies.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following actions are related to `DeleteBucketPolicy':
%%
%% - GetBucketPolicy
%%
%%
- PutBucketPolicy
%%
%%
delete_bucket_policy(Client, Bucket, Input) ->
delete_bucket_policy(Client, Bucket, Input, []).
delete_bucket_policy(Client, Bucket, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/policy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation deletes an Amazon S3 on Outposts bucket's
%% replication configuration.
%%
%% To delete an S3 bucket's replication configuration, see
%% DeleteBucketReplication in the Amazon S3 API Reference.
%%
%% Deletes the replication configuration from the specified S3 on Outposts
%% bucket.
%%
%% To use this operation, you must have permissions to perform the
%% `s3-outposts:PutReplicationConfiguration' action. The Outposts bucket
%% owner has this permission by default and can grant it to others. For more
%% information about permissions, see Setting up IAM with S3 on Outposts and
%% Managing access to S3 on Outposts buckets in the Amazon S3 User Guide.
%%
%% It can take a while to propagate `PUT' or `DELETE' requests for a
%% replication configuration to all S3 on Outposts systems. Therefore, the
%% replication configuration that's returned by a `GET' request soon
%% after a `PUT' or `DELETE' request might return a more recent
%% result than what's on the Outpost. If an Outpost is offline, the delay
%% in updating the replication configuration on that Outpost can be
%% significant.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% For information about S3 replication on Outposts configuration, see
%% Replicating objects for S3 on Outposts in the Amazon S3 User Guide.
%%
%% The following operations are related to `DeleteBucketReplication':
%%
%% - PutBucketReplication
%%
%%
- GetBucketReplication
%%
%%
delete_bucket_replication(Client, Bucket, Input) ->
delete_bucket_replication(Client, Bucket, Input, []).
delete_bucket_replication(Client, Bucket, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/replication"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This action deletes an Amazon S3 on Outposts bucket's tags.
%%
%% To delete an S3 bucket tags, see DeleteBucketTagging in the Amazon S3 API
%% Reference.
%%
%% Deletes the tags from the Outposts bucket. For more information, see Using
%% Amazon S3 on Outposts in Amazon S3 User Guide.
%%
%% To use this action, you must have permission to perform the
%% `PutBucketTagging' action. By default, the bucket owner has this
%% permission and can grant this permission to others.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following actions are related to `DeleteBucketTagging':
%%
%% - GetBucketTagging
%%
%%
- PutBucketTagging
%%
%%
delete_bucket_tagging(Client, Bucket, Input) ->
delete_bucket_tagging(Client, Bucket, Input, []).
delete_bucket_tagging(Client, Bucket, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/tagging"],
SuccessStatusCode = 204,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Removes the entire tag set from the specified S3 Batch Operations
%% job.
%%
%% - Permissions
- To use the `DeleteJobTagging'
%% operation, you must have permission to perform the
%% `s3:DeleteJobTagging' action. For more information, see Controlling
%% access and labeling jobs using tags in the Amazon S3 User Guide.
%%
%%
Related actions include:
%%
%% - CreateJob
%%
%%
- GetJobTagging
%%
%%
- PutJobTagging
%%
%%
delete_job_tagging(Client, JobId, Input) ->
delete_job_tagging(Client, JobId, Input, []).
delete_job_tagging(Client, JobId, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/jobs/", aws_util:encode_uri(JobId), "/tagging"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Deletes a Multi-Region Access Point. This action does not delete the
%% buckets associated with the Multi-Region Access Point, only the
%% Multi-Region Access Point itself.
%%
%% This action will always be routed to the US West (Oregon) Region. For more
%% information about the restrictions around managing Multi-Region Access
%% Points, see Managing Multi-Region Access Points in the Amazon S3 User
%% Guide.
%%
%% This request is asynchronous, meaning that you might receive a response
%% before the command has completed. When this request provides a response,
%% it provides a token that you can use to monitor the status of the request
%% with `DescribeMultiRegionAccessPointOperation'.
%%
%% The following actions are related to `DeleteMultiRegionAccessPoint':
%%
%% - CreateMultiRegionAccessPoint
%%
%%
- DescribeMultiRegionAccessPointOperation
%%
%%
- GetMultiRegionAccessPoint
%%
%%
- ListMultiRegionAccessPoints
%%
%%
delete_multi_region_access_point(Client, Input) ->
delete_multi_region_access_point(Client, Input, []).
delete_multi_region_access_point(Client, Input0, Options0) ->
Method = post,
Path = ["/v20180820/async-requests/mrap/delete"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Removes the `PublicAccessBlock' configuration for an Amazon Web
%% Services account. For more information, see Using Amazon S3 block public
%% access.
%%
%% Related actions include:
%%
%% - GetPublicAccessBlock
%%
%%
- PutPublicAccessBlock
%%
%%
delete_public_access_block(Client, Input) ->
delete_public_access_block(Client, Input, []).
delete_public_access_block(Client, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/configuration/publicAccessBlock"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Deletes the Amazon S3 Storage Lens configuration. For more information
%% about S3 Storage Lens, see Assessing your storage activity and usage with
%% Amazon S3 Storage Lens in the Amazon S3 User Guide.
%%
%% To use this action, you must have permission to perform the
%% `s3:DeleteStorageLensConfiguration' action. For more information, see
%% Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User
%% Guide.
delete_storage_lens_configuration(Client, ConfigId, Input) ->
delete_storage_lens_configuration(Client, ConfigId, Input, []).
delete_storage_lens_configuration(Client, ConfigId, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/storagelens/", aws_util:encode_uri(ConfigId), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Deletes the Amazon S3 Storage Lens configuration tags. For more
%% information about S3 Storage Lens, see Assessing your storage activity and
%% usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.
%%
%% To use this action, you must have permission to perform the
%% `s3:DeleteStorageLensConfigurationTagging' action. For more
%% information, see Setting permissions to use Amazon S3 Storage Lens in the
%% Amazon S3 User Guide.
delete_storage_lens_configuration_tagging(Client, ConfigId, Input) ->
delete_storage_lens_configuration_tagging(Client, ConfigId, Input, []).
delete_storage_lens_configuration_tagging(Client, ConfigId, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/storagelens/", aws_util:encode_uri(ConfigId), "/tagging"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Deletes an existing S3 Storage Lens group.
%%
%% To use this operation, you must have the permission to perform the
%% `s3:DeleteStorageLensGroup' action. For more information about the
%% required Storage Lens Groups permissions, see Setting account permissions
%% to use S3 Storage Lens groups.
%%
%% For information about Storage Lens groups errors, see List of Amazon S3
%% Storage Lens error codes.
delete_storage_lens_group(Client, Name, Input) ->
delete_storage_lens_group(Client, Name, Input, []).
delete_storage_lens_group(Client, Name, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/storagelensgroup/", aws_util:encode_uri(Name), ""],
SuccessStatusCode = 204,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Retrieves the configuration parameters and status for a Batch
%% Operations job.
%%
%% For more information, see S3 Batch Operations in the Amazon S3 User Guide.
%%
%% - Permissions
- To use the `DescribeJob' operation, you
%% must have permission to perform the `s3:DescribeJob' action.
%%
%%
Related actions include:
%%
%% - CreateJob
%%
%%
- ListJobs
%%
%%
- UpdateJobPriority
%%
%%
- UpdateJobStatus
%%
%%
describe_job(Client, JobId, AccountId)
when is_map(Client) ->
describe_job(Client, JobId, AccountId, #{}, #{}).
describe_job(Client, JobId, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
describe_job(Client, JobId, AccountId, QueryMap, HeadersMap, []).
describe_job(Client, JobId, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/jobs/", aws_util:encode_uri(JobId), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Retrieves the status of an asynchronous request to manage a Multi-Region
%% Access Point. For more information about managing Multi-Region Access
%% Points and how asynchronous requests work, see Managing Multi-Region
%% Access Points in the Amazon S3 User Guide.
%%
%% The following actions are related to `GetMultiRegionAccessPoint':
%%
%% - CreateMultiRegionAccessPoint
%%
%%
- DeleteMultiRegionAccessPoint
%%
%%
- GetMultiRegionAccessPoint
%%
%%
- ListMultiRegionAccessPoints
%%
%%
describe_multi_region_access_point_operation(Client, RequestTokenARN, AccountId)
when is_map(Client) ->
describe_multi_region_access_point_operation(Client, RequestTokenARN, AccountId, #{}, #{}).
describe_multi_region_access_point_operation(Client, RequestTokenARN, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
describe_multi_region_access_point_operation(Client, RequestTokenARN, AccountId, QueryMap, HeadersMap, []).
describe_multi_region_access_point_operation(Client, RequestTokenARN, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/async-requests/mrap/", aws_util:encode_multi_segment_uri(RequestTokenARN), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Dissociates the Amazon Web Services IAM Identity Center instance from
%% the S3 Access Grants instance.
%%
%% - Permissions
- You must have the
%% `s3:DissociateAccessGrantsIdentityCenter' permission to use this
%% operation.
%%
%%
- Additional Permissions
- You must have the
%% `sso:DeleteApplication' permission to use this operation.
%%
%%
dissociate_access_grants_identity_center(Client, Input) ->
dissociate_access_grants_identity_center(Client, Input, []).
dissociate_access_grants_identity_center(Client, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/accessgrantsinstance/identitycenter"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Get the details of an access grant from your S3 Access Grants
%% instance.
%%
%% - Permissions
- You must have the `s3:GetAccessGrant'
%% permission to use this operation.
%%
%%
get_access_grant(Client, AccessGrantId, AccountId)
when is_map(Client) ->
get_access_grant(Client, AccessGrantId, AccountId, #{}, #{}).
get_access_grant(Client, AccessGrantId, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_access_grant(Client, AccessGrantId, AccountId, QueryMap, HeadersMap, []).
get_access_grant(Client, AccessGrantId, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accessgrantsinstance/grant/", aws_util:encode_uri(AccessGrantId), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Retrieves the S3 Access Grants instance for a Region in your account.
%%
%% - Permissions
- You must have the
%% `s3:GetAccessGrantsInstance' permission to use this operation.
%%
%%
get_access_grants_instance(Client, AccountId)
when is_map(Client) ->
get_access_grants_instance(Client, AccountId, #{}, #{}).
get_access_grants_instance(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_access_grants_instance(Client, AccountId, QueryMap, HeadersMap, []).
get_access_grants_instance(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accessgrantsinstance"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Retrieve the S3 Access Grants instance that contains a particular
%% prefix.
%%
%% - Permissions
- You must have the
%% `s3:GetAccessGrantsInstanceForPrefix' permission for the caller
%% account to use this operation.
%%
%%
- Additional Permissions
- The prefix owner account must
%% grant you the following permissions to their S3 Access Grants instance:
%% `s3:GetAccessGrantsInstanceForPrefix'.
%%
%%
get_access_grants_instance_for_prefix(Client, S3Prefix, AccountId)
when is_map(Client) ->
get_access_grants_instance_for_prefix(Client, S3Prefix, AccountId, #{}, #{}).
get_access_grants_instance_for_prefix(Client, S3Prefix, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_access_grants_instance_for_prefix(Client, S3Prefix, AccountId, QueryMap, HeadersMap, []).
get_access_grants_instance_for_prefix(Client, S3Prefix, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accessgrantsinstance/prefix"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query0_ =
[
{<<"s3prefix">>, S3Prefix}
],
Query_ = [H || {_, V} = H <- Query0_, V =/= undefined],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Returns the resource policy of the S3 Access Grants instance.
%%
%% - Permissions
- You must have the
%% `s3:GetAccessGrantsInstanceResourcePolicy' permission to use this
%% operation.
%%
%%
get_access_grants_instance_resource_policy(Client, AccountId)
when is_map(Client) ->
get_access_grants_instance_resource_policy(Client, AccountId, #{}, #{}).
get_access_grants_instance_resource_policy(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_access_grants_instance_resource_policy(Client, AccountId, QueryMap, HeadersMap, []).
get_access_grants_instance_resource_policy(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accessgrantsinstance/resourcepolicy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Retrieves the details of a particular location registered in your S3
%% Access Grants instance.
%%
%% - Permissions
- You must have the
%% `s3:GetAccessGrantsLocation' permission to use this operation.
%%
%%
get_access_grants_location(Client, AccessGrantsLocationId, AccountId)
when is_map(Client) ->
get_access_grants_location(Client, AccessGrantsLocationId, AccountId, #{}, #{}).
get_access_grants_location(Client, AccessGrantsLocationId, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_access_grants_location(Client, AccessGrantsLocationId, AccountId, QueryMap, HeadersMap, []).
get_access_grants_location(Client, AccessGrantsLocationId, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accessgrantsinstance/location/", aws_util:encode_uri(AccessGrantsLocationId), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns configuration information about the specified access point.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following actions are related to `GetAccessPoint':
%%
%% - CreateAccessPoint
%%
%%
- DeleteAccessPoint
%%
%%
- ListAccessPoints
%%
%%
get_access_point(Client, Name, AccountId)
when is_map(Client) ->
get_access_point(Client, Name, AccountId, #{}, #{}).
get_access_point(Client, Name, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_access_point(Client, Name, AccountId, QueryMap, HeadersMap, []).
get_access_point(Client, Name, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accesspoint/", aws_util:encode_uri(Name), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns configuration for an Object Lambda Access Point.
%%
%% The following actions are related to
%% `GetAccessPointConfigurationForObjectLambda':
%%
%% - PutAccessPointConfigurationForObjectLambda
%%
%%
get_access_point_configuration_for_object_lambda(Client, Name, AccountId)
when is_map(Client) ->
get_access_point_configuration_for_object_lambda(Client, Name, AccountId, #{}, #{}).
get_access_point_configuration_for_object_lambda(Client, Name, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_access_point_configuration_for_object_lambda(Client, Name, AccountId, QueryMap, HeadersMap, []).
get_access_point_configuration_for_object_lambda(Client, Name, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accesspointforobjectlambda/", aws_util:encode_uri(Name), "/configuration"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns configuration information about the specified Object Lambda Access
%% Point
%%
%% The following actions are related to `GetAccessPointForObjectLambda':
%%
%% - CreateAccessPointForObjectLambda
%%
%%
- DeleteAccessPointForObjectLambda
%%
%%
- ListAccessPointsForObjectLambda
%%
%%
get_access_point_for_object_lambda(Client, Name, AccountId)
when is_map(Client) ->
get_access_point_for_object_lambda(Client, Name, AccountId, #{}, #{}).
get_access_point_for_object_lambda(Client, Name, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_access_point_for_object_lambda(Client, Name, AccountId, QueryMap, HeadersMap, []).
get_access_point_for_object_lambda(Client, Name, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accesspointforobjectlambda/", aws_util:encode_uri(Name), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns the access point policy associated with the specified access
%% point.
%%
%% The following actions are related to `GetAccessPointPolicy':
%%
%% - PutAccessPointPolicy
%%
%%
- DeleteAccessPointPolicy
%%
%%
get_access_point_policy(Client, Name, AccountId)
when is_map(Client) ->
get_access_point_policy(Client, Name, AccountId, #{}, #{}).
get_access_point_policy(Client, Name, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_access_point_policy(Client, Name, AccountId, QueryMap, HeadersMap, []).
get_access_point_policy(Client, Name, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accesspoint/", aws_util:encode_uri(Name), "/policy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns the resource policy for an Object Lambda Access Point.
%%
%% The following actions are related to
%% `GetAccessPointPolicyForObjectLambda':
%%
%% - DeleteAccessPointPolicyForObjectLambda
%%
%%
- PutAccessPointPolicyForObjectLambda
%%
%%
get_access_point_policy_for_object_lambda(Client, Name, AccountId)
when is_map(Client) ->
get_access_point_policy_for_object_lambda(Client, Name, AccountId, #{}, #{}).
get_access_point_policy_for_object_lambda(Client, Name, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_access_point_policy_for_object_lambda(Client, Name, AccountId, QueryMap, HeadersMap, []).
get_access_point_policy_for_object_lambda(Client, Name, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accesspointforobjectlambda/", aws_util:encode_uri(Name), "/policy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Indicates whether the specified access point currently has a policy that
%% allows public access. For more information about public access through
%% access points, see Managing Data Access with Amazon S3 access points in
%% the Amazon S3 User Guide.
get_access_point_policy_status(Client, Name, AccountId)
when is_map(Client) ->
get_access_point_policy_status(Client, Name, AccountId, #{}, #{}).
get_access_point_policy_status(Client, Name, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_access_point_policy_status(Client, Name, AccountId, QueryMap, HeadersMap, []).
get_access_point_policy_status(Client, Name, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accesspoint/", aws_util:encode_uri(Name), "/policyStatus"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns the status of the resource policy associated with an Object Lambda
%% Access Point.
get_access_point_policy_status_for_object_lambda(Client, Name, AccountId)
when is_map(Client) ->
get_access_point_policy_status_for_object_lambda(Client, Name, AccountId, #{}, #{}).
get_access_point_policy_status_for_object_lambda(Client, Name, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_access_point_policy_status_for_object_lambda(Client, Name, AccountId, QueryMap, HeadersMap, []).
get_access_point_policy_status_for_object_lambda(Client, Name, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accesspointforobjectlambda/", aws_util:encode_uri(Name), "/policyStatus"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Gets an Amazon S3 on Outposts bucket.
%%
%% For more information, see Using Amazon S3 on Outposts in the Amazon S3
%% User Guide.
%%
%% If you are using an identity other than the root user of the Amazon Web
%% Services account that owns the Outposts bucket, the calling identity must
%% have the `s3-outposts:GetBucket' permissions on the specified Outposts
%% bucket and belong to the Outposts bucket owner's account in order to
%% use this action. Only users from Outposts bucket owner account with the
%% right permissions can perform actions on an Outposts bucket.
%%
%% If you don't have `s3-outposts:GetBucket' permissions or
%% you're not using an identity that belongs to the bucket owner's
%% account, Amazon S3 returns a `403 Access Denied' error.
%%
%% The following actions are related to `GetBucket' for Amazon S3 on
%% Outposts:
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% - PutObject
%%
%%
- CreateBucket
%%
%%
- DeleteBucket
%%
%%
get_bucket(Client, Bucket, AccountId)
when is_map(Client) ->
get_bucket(Client, Bucket, AccountId, #{}, #{}).
get_bucket(Client, Bucket, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_bucket(Client, Bucket, AccountId, QueryMap, HeadersMap, []).
get_bucket(Client, Bucket, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This action gets an Amazon S3 on Outposts bucket's lifecycle
%% configuration.
%%
%% To get an S3 bucket's lifecycle configuration, see
%% GetBucketLifecycleConfiguration in the Amazon S3 API Reference.
%%
%% Returns the lifecycle configuration information set on the Outposts
%% bucket. For more information, see Using Amazon S3 on Outposts and for
%% information about lifecycle configuration, see Object Lifecycle Management
%% in Amazon S3 User Guide.
%%
%% To use this action, you must have permission to perform the
%% `s3-outposts:GetLifecycleConfiguration' action. The Outposts bucket
%% owner has this permission, by default. The bucket owner can grant this
%% permission to others. For more information about permissions, see
%% Permissions Related to Bucket Subresource Operations and Managing Access
%% Permissions to Your Amazon S3 Resources.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% `GetBucketLifecycleConfiguration' has the following special error:
%%
%% - Error code: `NoSuchLifecycleConfiguration'
%%
%%
- Description: The lifecycle configuration does not exist.
%%
%%
- HTTP Status Code: 404 Not Found
%%
%%
- SOAP Fault Code Prefix: Client
%%
%%
The following actions are related to
%% `GetBucketLifecycleConfiguration':
%%
%% - PutBucketLifecycleConfiguration
%%
%%
- DeleteBucketLifecycleConfiguration
%%
%%
get_bucket_lifecycle_configuration(Client, Bucket, AccountId)
when is_map(Client) ->
get_bucket_lifecycle_configuration(Client, Bucket, AccountId, #{}, #{}).
get_bucket_lifecycle_configuration(Client, Bucket, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_bucket_lifecycle_configuration(Client, Bucket, AccountId, QueryMap, HeadersMap, []).
get_bucket_lifecycle_configuration(Client, Bucket, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/lifecycleconfiguration"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This action gets a bucket policy for an Amazon S3 on Outposts bucket.
%%
%% To get a policy for an S3 bucket, see GetBucketPolicy in the Amazon S3 API
%% Reference.
%%
%% Returns the policy of a specified Outposts bucket. For more information,
%% see Using Amazon S3 on Outposts in the Amazon S3 User Guide.
%%
%% If you are using an identity other than the root user of the Amazon Web
%% Services account that owns the bucket, the calling identity must have the
%% `GetBucketPolicy' permissions on the specified bucket and belong to
%% the bucket owner's account in order to use this action.
%%
%% Only users from Outposts bucket owner account with the right permissions
%% can perform actions on an Outposts bucket. If you don't have
%% `s3-outposts:GetBucketPolicy' permissions or you're not using an
%% identity that belongs to the bucket owner's account, Amazon S3 returns
%% a `403 Access Denied' error.
%%
%% As a security precaution, the root user of the Amazon Web Services account
%% that owns a bucket can always use this action, even if the policy
%% explicitly denies the root user the ability to perform this action.
%%
%% For more information about bucket policies, see Using Bucket Policies and
%% User Policies.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following actions are related to `GetBucketPolicy':
%%
%% - GetObject
%%
%%
- PutBucketPolicy
%%
%%
- DeleteBucketPolicy
%%
%%
get_bucket_policy(Client, Bucket, AccountId)
when is_map(Client) ->
get_bucket_policy(Client, Bucket, AccountId, #{}, #{}).
get_bucket_policy(Client, Bucket, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_bucket_policy(Client, Bucket, AccountId, QueryMap, HeadersMap, []).
get_bucket_policy(Client, Bucket, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/policy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation gets an Amazon S3 on Outposts bucket's replication
%% configuration.
%%
%% To get an S3 bucket's replication configuration, see
%% GetBucketReplication in the Amazon S3 API Reference.
%%
%% Returns the replication configuration of an S3 on Outposts bucket. For
%% more information about S3 on Outposts, see Using Amazon S3 on Outposts in
%% the Amazon S3 User Guide. For information about S3 replication on Outposts
%% configuration, see Replicating objects for S3 on Outposts in the Amazon S3
%% User Guide.
%%
%% It can take a while to propagate `PUT' or `DELETE' requests for a
%% replication configuration to all S3 on Outposts systems. Therefore, the
%% replication configuration that's returned by a `GET' request soon
%% after a `PUT' or `DELETE' request might return a more recent
%% result than what's on the Outpost. If an Outpost is offline, the delay
%% in updating the replication configuration on that Outpost can be
%% significant.
%%
%% This action requires permissions for the
%% `s3-outposts:GetReplicationConfiguration' action. The Outposts bucket
%% owner has this permission by default and can grant it to others. For more
%% information about permissions, see Setting up IAM with S3 on Outposts and
%% Managing access to S3 on Outposts bucket in the Amazon S3 User Guide.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% If you include the `Filter' element in a replication configuration,
%% you must also include the `DeleteMarkerReplication', `Status', and
%% `Priority' elements. The response also returns those elements.
%%
%% For information about S3 on Outposts replication failure reasons, see
%% Replication failure reasons in the Amazon S3 User Guide.
%%
%% The following operations are related to `GetBucketReplication':
%%
%% - PutBucketReplication
%%
%%
- DeleteBucketReplication
%%
%%
get_bucket_replication(Client, Bucket, AccountId)
when is_map(Client) ->
get_bucket_replication(Client, Bucket, AccountId, #{}, #{}).
get_bucket_replication(Client, Bucket, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_bucket_replication(Client, Bucket, AccountId, QueryMap, HeadersMap, []).
get_bucket_replication(Client, Bucket, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/replication"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This action gets an Amazon S3 on Outposts bucket's tags.
%%
%% To get an S3 bucket tags, see GetBucketTagging in the Amazon S3 API
%% Reference.
%%
%% Returns the tag set associated with the Outposts bucket. For more
%% information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.
%%
%% To use this action, you must have permission to perform the
%% `GetBucketTagging' action. By default, the bucket owner has this
%% permission and can grant this permission to others.
%%
%% `GetBucketTagging' has the following special error:
%%
%% - Error code: `NoSuchTagSetError'
%%
%%
- Description: There is no tag set associated with the bucket.
%%
%%
All Amazon S3 on Outposts REST API requests for
%% this action require an additional parameter of `x-amz-outpost-id' to
%% be passed with the request. In addition, you must use an S3 on Outposts
%% endpoint hostname prefix instead of `s3-control'. For an example of
%% the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
%% endpoint hostname prefix and the `x-amz-outpost-id' derived by using
%% the access point ARN, see the Examples section.
%%
%% The following actions are related to `GetBucketTagging':
%%
%% - PutBucketTagging
%%
%%
- DeleteBucketTagging
%%
%%
get_bucket_tagging(Client, Bucket, AccountId)
when is_map(Client) ->
get_bucket_tagging(Client, Bucket, AccountId, #{}, #{}).
get_bucket_tagging(Client, Bucket, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_bucket_tagging(Client, Bucket, AccountId, QueryMap, HeadersMap, []).
get_bucket_tagging(Client, Bucket, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/tagging"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation returns the versioning state for S3 on Outposts
%% buckets only.
%%
%% To return the versioning state for an S3 bucket, see GetBucketVersioning
%% in the Amazon S3 API Reference.
%%
%% Returns the versioning state for an S3 on Outposts bucket. With S3
%% Versioning, you can save multiple distinct copies of your objects and
%% recover from unintended user actions and application failures.
%%
%% If you've never set versioning on your bucket, it has no versioning
%% state. In that case, the `GetBucketVersioning' request does not return
%% a versioning state value.
%%
%% For more information about versioning, see Versioning in the Amazon S3
%% User Guide.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following operations are related to `GetBucketVersioning' for S3
%% on Outposts.
%%
%% - PutBucketVersioning
%%
%%
- PutBucketLifecycleConfiguration
%%
%%
- GetBucketLifecycleConfiguration
%%
%%
get_bucket_versioning(Client, Bucket, AccountId)
when is_map(Client) ->
get_bucket_versioning(Client, Bucket, AccountId, #{}, #{}).
get_bucket_versioning(Client, Bucket, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_bucket_versioning(Client, Bucket, AccountId, QueryMap, HeadersMap, []).
get_bucket_versioning(Client, Bucket, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/versioning"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Returns a temporary access credential from S3 Access Grants to the
%% grantee or client application.
%%
%% The temporary credential is an Amazon Web Services STS token that grants
%% them access to the S3 data.
%%
%% - Permissions
- You must have the `s3:GetDataAccess'
%% permission to use this operation.
%%
%%
- Additional Permissions
- The IAM role that S3 Access
%% Grants assumes must have the following permissions specified in the trust
%% policy when registering the location: `sts:AssumeRole', for directory
%% users or groups `sts:SetContext', and for IAM users or roles
%% `sts:SourceIdentity'.
%%
%%
get_data_access(Client, Permission, Target, AccountId)
when is_map(Client) ->
get_data_access(Client, Permission, Target, AccountId, #{}, #{}).
get_data_access(Client, Permission, Target, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_data_access(Client, Permission, Target, AccountId, QueryMap, HeadersMap, []).
get_data_access(Client, Permission, Target, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accessgrantsinstance/dataaccess"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query0_ =
[
{<<"durationSeconds">>, maps:get(<<"durationSeconds">>, QueryMap, undefined)},
{<<"permission">>, Permission},
{<<"privilege">>, maps:get(<<"privilege">>, QueryMap, undefined)},
{<<"target">>, Target},
{<<"targetType">>, maps:get(<<"targetType">>, QueryMap, undefined)}
],
Query_ = [H || {_, V} = H <- Query0_, V =/= undefined],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Returns the tags on an S3 Batch Operations job.
%%
%% - Permissions
- To use the `GetJobTagging' operation,
%% you must have permission to perform the `s3:GetJobTagging' action. For
%% more information, see Controlling access and labeling jobs using tags in
%% the Amazon S3 User Guide.
%%
%%
Related actions include:
%%
%% - CreateJob
%%
%%
- PutJobTagging
%%
%%
- DeleteJobTagging
%%
%%
get_job_tagging(Client, JobId, AccountId)
when is_map(Client) ->
get_job_tagging(Client, JobId, AccountId, #{}, #{}).
get_job_tagging(Client, JobId, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_job_tagging(Client, JobId, AccountId, QueryMap, HeadersMap, []).
get_job_tagging(Client, JobId, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/jobs/", aws_util:encode_uri(JobId), "/tagging"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns configuration information about the specified Multi-Region Access
%% Point.
%%
%% This action will always be routed to the US West (Oregon) Region. For more
%% information about the restrictions around managing Multi-Region Access
%% Points, see Managing Multi-Region Access Points in the Amazon S3 User
%% Guide.
%%
%% The following actions are related to `GetMultiRegionAccessPoint':
%%
%% - CreateMultiRegionAccessPoint
%%
%%
- DeleteMultiRegionAccessPoint
%%
%%
- DescribeMultiRegionAccessPointOperation
%%
%%
- ListMultiRegionAccessPoints
%%
%%
get_multi_region_access_point(Client, Name, AccountId)
when is_map(Client) ->
get_multi_region_access_point(Client, Name, AccountId, #{}, #{}).
get_multi_region_access_point(Client, Name, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_multi_region_access_point(Client, Name, AccountId, QueryMap, HeadersMap, []).
get_multi_region_access_point(Client, Name, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/mrap/instances/", aws_util:encode_multi_segment_uri(Name), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns the access control policy of the specified Multi-Region Access
%% Point.
%%
%% This action will always be routed to the US West (Oregon) Region. For more
%% information about the restrictions around managing Multi-Region Access
%% Points, see Managing Multi-Region Access Points in the Amazon S3 User
%% Guide.
%%
%% The following actions are related to
%% `GetMultiRegionAccessPointPolicy':
%%
%% - GetMultiRegionAccessPointPolicyStatus
%%
%%
- PutMultiRegionAccessPointPolicy
%%
%%
get_multi_region_access_point_policy(Client, Name, AccountId)
when is_map(Client) ->
get_multi_region_access_point_policy(Client, Name, AccountId, #{}, #{}).
get_multi_region_access_point_policy(Client, Name, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_multi_region_access_point_policy(Client, Name, AccountId, QueryMap, HeadersMap, []).
get_multi_region_access_point_policy(Client, Name, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/mrap/instances/", aws_util:encode_multi_segment_uri(Name), "/policy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Indicates whether the specified Multi-Region Access Point has an access
%% control policy that allows public access.
%%
%% This action will always be routed to the US West (Oregon) Region. For more
%% information about the restrictions around managing Multi-Region Access
%% Points, see Managing Multi-Region Access Points in the Amazon S3 User
%% Guide.
%%
%% The following actions are related to
%% `GetMultiRegionAccessPointPolicyStatus':
%%
%% - GetMultiRegionAccessPointPolicy
%%
%%
- PutMultiRegionAccessPointPolicy
%%
%%
get_multi_region_access_point_policy_status(Client, Name, AccountId)
when is_map(Client) ->
get_multi_region_access_point_policy_status(Client, Name, AccountId, #{}, #{}).
get_multi_region_access_point_policy_status(Client, Name, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_multi_region_access_point_policy_status(Client, Name, AccountId, QueryMap, HeadersMap, []).
get_multi_region_access_point_policy_status(Client, Name, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/mrap/instances/", aws_util:encode_multi_segment_uri(Name), "/policystatus"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns the routing configuration for a Multi-Region Access Point,
%% indicating which Regions are active or passive.
%%
%% To obtain routing control changes and failover requests, use the Amazon S3
%% failover control infrastructure endpoints in these five Amazon Web
%% Services Regions:
%%
%% - `us-east-1'
%%
%%
- `us-west-2'
%%
%%
- `ap-southeast-2'
%%
%%
- `ap-northeast-1'
%%
%%
- `eu-west-1'
%%
%%
Your Amazon S3 bucket does not need to be in these five
%% Regions.
get_multi_region_access_point_routes(Client, Mrap, AccountId)
when is_map(Client) ->
get_multi_region_access_point_routes(Client, Mrap, AccountId, #{}, #{}).
get_multi_region_access_point_routes(Client, Mrap, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_multi_region_access_point_routes(Client, Mrap, AccountId, QueryMap, HeadersMap, []).
get_multi_region_access_point_routes(Client, Mrap, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/mrap/instances/", aws_util:encode_multi_segment_uri(Mrap), "/routes"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Retrieves the `PublicAccessBlock' configuration for an Amazon Web
%% Services account. For more information, see Using Amazon S3 block public
%% access.
%%
%% Related actions include:
%%
%% - DeletePublicAccessBlock
%%
%%
- PutPublicAccessBlock
%%
%%
get_public_access_block(Client, AccountId)
when is_map(Client) ->
get_public_access_block(Client, AccountId, #{}, #{}).
get_public_access_block(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_public_access_block(Client, AccountId, QueryMap, HeadersMap, []).
get_public_access_block(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/configuration/publicAccessBlock"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Gets the Amazon S3 Storage Lens configuration. For more information, see
%% Assessing your storage activity and usage with Amazon S3 Storage Lens in
%% the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics,
%% see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.
%%
%% To use this action, you must have permission to perform the
%% `s3:GetStorageLensConfiguration' action. For more information, see
%% Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User
%% Guide.
get_storage_lens_configuration(Client, ConfigId, AccountId)
when is_map(Client) ->
get_storage_lens_configuration(Client, ConfigId, AccountId, #{}, #{}).
get_storage_lens_configuration(Client, ConfigId, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_storage_lens_configuration(Client, ConfigId, AccountId, QueryMap, HeadersMap, []).
get_storage_lens_configuration(Client, ConfigId, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/storagelens/", aws_util:encode_uri(ConfigId), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Gets the tags of Amazon S3 Storage Lens configuration. For more
%% information about S3 Storage Lens, see Assessing your storage activity and
%% usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.
%%
%% To use this action, you must have permission to perform the
%% `s3:GetStorageLensConfigurationTagging' action. For more information,
%% see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3
%% User Guide.
get_storage_lens_configuration_tagging(Client, ConfigId, AccountId)
when is_map(Client) ->
get_storage_lens_configuration_tagging(Client, ConfigId, AccountId, #{}, #{}).
get_storage_lens_configuration_tagging(Client, ConfigId, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_storage_lens_configuration_tagging(Client, ConfigId, AccountId, QueryMap, HeadersMap, []).
get_storage_lens_configuration_tagging(Client, ConfigId, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/storagelens/", aws_util:encode_uri(ConfigId), "/tagging"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Retrieves the Storage Lens group configuration details.
%%
%% To use this operation, you must have the permission to perform the
%% `s3:GetStorageLensGroup' action. For more information about the
%% required Storage Lens Groups permissions, see Setting account permissions
%% to use S3 Storage Lens groups.
%%
%% For information about Storage Lens groups errors, see List of Amazon S3
%% Storage Lens error codes.
get_storage_lens_group(Client, Name, AccountId)
when is_map(Client) ->
get_storage_lens_group(Client, Name, AccountId, #{}, #{}).
get_storage_lens_group(Client, Name, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
get_storage_lens_group(Client, Name, AccountId, QueryMap, HeadersMap, []).
get_storage_lens_group(Client, Name, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/storagelensgroup/", aws_util:encode_uri(Name), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Returns the list of access grants in your S3 Access Grants instance.
%%
%% - Permissions
- You must have the `s3:ListAccessGrants'
%% permission to use this operation.
%%
%%
list_access_grants(Client, AccountId)
when is_map(Client) ->
list_access_grants(Client, AccountId, #{}, #{}).
list_access_grants(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
list_access_grants(Client, AccountId, QueryMap, HeadersMap, []).
list_access_grants(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accessgrantsinstance/grants"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query0_ =
[
{<<"application_arn">>, maps:get(<<"application_arn">>, QueryMap, undefined)},
{<<"grantscope">>, maps:get(<<"grantscope">>, QueryMap, undefined)},
{<<"granteeidentifier">>, maps:get(<<"granteeidentifier">>, QueryMap, undefined)},
{<<"granteetype">>, maps:get(<<"granteetype">>, QueryMap, undefined)},
{<<"maxResults">>, maps:get(<<"maxResults">>, QueryMap, undefined)},
{<<"nextToken">>, maps:get(<<"nextToken">>, QueryMap, undefined)},
{<<"permission">>, maps:get(<<"permission">>, QueryMap, undefined)}
],
Query_ = [H || {_, V} = H <- Query0_, V =/= undefined],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Returns a list of S3 Access Grants instances.
%%
%% An S3 Access Grants instance serves as a logical grouping for your
%% individual access grants. You can only have one S3 Access Grants instance
%% per Region per account.
%%
%% - Permissions
- You must have the
%% `s3:ListAccessGrantsInstances' permission to use this operation.
%%
%%
list_access_grants_instances(Client, AccountId)
when is_map(Client) ->
list_access_grants_instances(Client, AccountId, #{}, #{}).
list_access_grants_instances(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
list_access_grants_instances(Client, AccountId, QueryMap, HeadersMap, []).
list_access_grants_instances(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accessgrantsinstances"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query0_ =
[
{<<"maxResults">>, maps:get(<<"maxResults">>, QueryMap, undefined)},
{<<"nextToken">>, maps:get(<<"nextToken">>, QueryMap, undefined)}
],
Query_ = [H || {_, V} = H <- Query0_, V =/= undefined],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Returns a list of the locations registered in your S3 Access Grants
%% instance.
%%
%% - Permissions
- You must have the
%% `s3:ListAccessGrantsLocations' permission to use this operation.
%%
%%
list_access_grants_locations(Client, AccountId)
when is_map(Client) ->
list_access_grants_locations(Client, AccountId, #{}, #{}).
list_access_grants_locations(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
list_access_grants_locations(Client, AccountId, QueryMap, HeadersMap, []).
list_access_grants_locations(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accessgrantsinstance/locations"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query0_ =
[
{<<"locationscope">>, maps:get(<<"locationscope">>, QueryMap, undefined)},
{<<"maxResults">>, maps:get(<<"maxResults">>, QueryMap, undefined)},
{<<"nextToken">>, maps:get(<<"nextToken">>, QueryMap, undefined)}
],
Query_ = [H || {_, V} = H <- Query0_, V =/= undefined],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns a list of the access points that are owned by the current account
%% that's associated with the specified bucket. You can retrieve up to
%% 1000 access points per call. If the specified bucket has more than 1,000
%% access points (or the number specified in `maxResults', whichever is
%% less), the response will include a continuation token that you can use to
%% list the additional access points.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following actions are related to `ListAccessPoints':
%%
%% - CreateAccessPoint
%%
%%
- DeleteAccessPoint
%%
%%
- GetAccessPoint
%%
%%
list_access_points(Client, AccountId)
when is_map(Client) ->
list_access_points(Client, AccountId, #{}, #{}).
list_access_points(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
list_access_points(Client, AccountId, QueryMap, HeadersMap, []).
list_access_points(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accesspoint"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query0_ =
[
{<<"bucket">>, maps:get(<<"bucket">>, QueryMap, undefined)},
{<<"maxResults">>, maps:get(<<"maxResults">>, QueryMap, undefined)},
{<<"nextToken">>, maps:get(<<"nextToken">>, QueryMap, undefined)}
],
Query_ = [H || {_, V} = H <- Query0_, V =/= undefined],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns some or all (up to 1,000) access points associated with the Object
%% Lambda Access Point per call. If there are more access points than what
%% can be returned in one call, the response will include a continuation
%% token that you can use to list the additional access points.
%%
%% The following actions are related to
%% `ListAccessPointsForObjectLambda':
%%
%% - CreateAccessPointForObjectLambda
%%
%%
- DeleteAccessPointForObjectLambda
%%
%%
- GetAccessPointForObjectLambda
%%
%%
list_access_points_for_object_lambda(Client, AccountId)
when is_map(Client) ->
list_access_points_for_object_lambda(Client, AccountId, #{}, #{}).
list_access_points_for_object_lambda(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
list_access_points_for_object_lambda(Client, AccountId, QueryMap, HeadersMap, []).
list_access_points_for_object_lambda(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/accesspointforobjectlambda"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query0_ =
[
{<<"maxResults">>, maps:get(<<"maxResults">>, QueryMap, undefined)},
{<<"nextToken">>, maps:get(<<"nextToken">>, QueryMap, undefined)}
],
Query_ = [H || {_, V} = H <- Query0_, V =/= undefined],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Lists current S3 Batch Operations jobs as well as the jobs that have
%% ended within the last 30 days for the Amazon Web Services account making
%% the request.
%%
%% For more information, see S3 Batch Operations in the Amazon S3 User Guide.
%%
%% - Permissions
- To use the `ListJobs' operation, you
%% must have permission to perform the `s3:ListJobs' action.
%%
%%
Related actions include:
%%
%% - CreateJob
%%
%%
- DescribeJob
%%
%%
- UpdateJobPriority
%%
%%
- UpdateJobStatus
%%
%%
list_jobs(Client, AccountId)
when is_map(Client) ->
list_jobs(Client, AccountId, #{}, #{}).
list_jobs(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
list_jobs(Client, AccountId, QueryMap, HeadersMap, []).
list_jobs(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/jobs"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query0_ =
[
{<<"jobStatuses">>, maps:get(<<"jobStatuses">>, QueryMap, undefined)},
{<<"maxResults">>, maps:get(<<"maxResults">>, QueryMap, undefined)},
{<<"nextToken">>, maps:get(<<"nextToken">>, QueryMap, undefined)}
],
Query_ = [H || {_, V} = H <- Query0_, V =/= undefined],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns a list of the Multi-Region Access Points currently associated with
%% the specified Amazon Web Services account. Each call can return up to 100
%% Multi-Region Access Points, the maximum number of Multi-Region Access
%% Points that can be associated with a single account.
%%
%% This action will always be routed to the US West (Oregon) Region. For more
%% information about the restrictions around managing Multi-Region Access
%% Points, see Managing Multi-Region Access Points in the Amazon S3 User
%% Guide.
%%
%% The following actions are related to `ListMultiRegionAccessPoint':
%%
%% - CreateMultiRegionAccessPoint
%%
%%
- DeleteMultiRegionAccessPoint
%%
%%
- DescribeMultiRegionAccessPointOperation
%%
%%
- GetMultiRegionAccessPoint
%%
%%
list_multi_region_access_points(Client, AccountId)
when is_map(Client) ->
list_multi_region_access_points(Client, AccountId, #{}, #{}).
list_multi_region_access_points(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
list_multi_region_access_points(Client, AccountId, QueryMap, HeadersMap, []).
list_multi_region_access_points(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/mrap/instances"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query0_ =
[
{<<"maxResults">>, maps:get(<<"maxResults">>, QueryMap, undefined)},
{<<"nextToken">>, maps:get(<<"nextToken">>, QueryMap, undefined)}
],
Query_ = [H || {_, V} = H <- Query0_, V =/= undefined],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Returns a list of all Outposts buckets in an Outpost that are owned by the
%% authenticated sender of the request. For more information, see Using
%% Amazon S3 on Outposts in the Amazon S3 User Guide.
%%
%% For an example of the request syntax for Amazon S3 on Outposts that uses
%% the S3 on Outposts endpoint hostname prefix and `x-amz-outpost-id' in
%% your request, see the Examples section.
list_regional_buckets(Client, AccountId)
when is_map(Client) ->
list_regional_buckets(Client, AccountId, #{}, #{}).
list_regional_buckets(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
list_regional_buckets(Client, AccountId, QueryMap, HeadersMap, []).
list_regional_buckets(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/bucket"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId},
{<<"x-amz-outpost-id">>, maps:get(<<"x-amz-outpost-id">>, HeadersMap, undefined)}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query0_ =
[
{<<"maxResults">>, maps:get(<<"maxResults">>, QueryMap, undefined)},
{<<"nextToken">>, maps:get(<<"nextToken">>, QueryMap, undefined)}
],
Query_ = [H || {_, V} = H <- Query0_, V =/= undefined],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Gets a list of Amazon S3 Storage Lens configurations. For more information
%% about S3 Storage Lens, see Assessing your storage activity and usage with
%% Amazon S3 Storage Lens in the Amazon S3 User Guide.
%%
%% To use this action, you must have permission to perform the
%% `s3:ListStorageLensConfigurations' action. For more information, see
%% Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User
%% Guide.
list_storage_lens_configurations(Client, AccountId)
when is_map(Client) ->
list_storage_lens_configurations(Client, AccountId, #{}, #{}).
list_storage_lens_configurations(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
list_storage_lens_configurations(Client, AccountId, QueryMap, HeadersMap, []).
list_storage_lens_configurations(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/storagelens"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query0_ =
[
{<<"nextToken">>, maps:get(<<"nextToken">>, QueryMap, undefined)}
],
Query_ = [H || {_, V} = H <- Query0_, V =/= undefined],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Lists all the Storage Lens groups in the specified home Region.
%%
%% To use this operation, you must have the permission to perform the
%% `s3:ListStorageLensGroups' action. For more information about the
%% required Storage Lens Groups permissions, see Setting account permissions
%% to use S3 Storage Lens groups.
%%
%% For information about Storage Lens groups errors, see List of Amazon S3
%% Storage Lens error codes.
list_storage_lens_groups(Client, AccountId)
when is_map(Client) ->
list_storage_lens_groups(Client, AccountId, #{}, #{}).
list_storage_lens_groups(Client, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
list_storage_lens_groups(Client, AccountId, QueryMap, HeadersMap, []).
list_storage_lens_groups(Client, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/storagelensgroup"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query0_ =
[
{<<"nextToken">>, maps:get(<<"nextToken">>, QueryMap, undefined)}
],
Query_ = [H || {_, V} = H <- Query0_, V =/= undefined],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc This operation allows you to list all the Amazon Web Services
%% resource tags for a specified resource.
%%
%% Each tag is a label consisting of a user-defined key and value. Tags can
%% help you manage, identify, organize, search for, and filter resources.
%%
%% - Permissions
- You must have the
%% `s3:ListTagsForResource' permission to use this operation.
%%
%%
This operation is only supported for S3 Storage Lens groups
%% and for S3 Access Grants. The tagged resource can be an S3 Storage Lens
%% group or S3 Access Grants instance, registered location, or grant.
%%
%% For more information about the required Storage Lens Groups permissions,
%% see Setting account permissions to use S3 Storage Lens groups.
%%
%% For information about S3 Tagging errors, see List of Amazon S3 Tagging
%% error codes.
list_tags_for_resource(Client, ResourceArn, AccountId)
when is_map(Client) ->
list_tags_for_resource(Client, ResourceArn, AccountId, #{}, #{}).
list_tags_for_resource(Client, ResourceArn, AccountId, QueryMap, HeadersMap)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap) ->
list_tags_for_resource(Client, ResourceArn, AccountId, QueryMap, HeadersMap, []).
list_tags_for_resource(Client, ResourceArn, AccountId, QueryMap, HeadersMap, Options0)
when is_map(Client), is_map(QueryMap), is_map(HeadersMap), is_list(Options0) ->
Path = ["/v20180820/tags/", aws_util:encode_multi_segment_uri(ResourceArn), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false}
| Options0],
Headers0 =
[
{<<"x-amz-account-id">>, AccountId}
],
Headers = [H || {_, V} = H <- Headers0, V =/= undefined],
Query_ = [],
request(Client, get, Path, Query_, Headers, undefined, Options, SuccessStatusCode).
%% @doc Updates the resource policy of the S3 Access Grants instance.
%%
%% - Permissions
- You must have the
%% `s3:PutAccessGrantsInstanceResourcePolicy' permission to use this
%% operation.
%%
%%
put_access_grants_instance_resource_policy(Client, Input) ->
put_access_grants_instance_resource_policy(Client, Input, []).
put_access_grants_instance_resource_policy(Client, Input0, Options0) ->
Method = put,
Path = ["/v20180820/accessgrantsinstance/resourcepolicy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Replaces configuration for an Object Lambda Access Point.
%%
%% The following actions are related to
%% `PutAccessPointConfigurationForObjectLambda':
%%
%% - GetAccessPointConfigurationForObjectLambda
%%
%%
put_access_point_configuration_for_object_lambda(Client, Name, Input) ->
put_access_point_configuration_for_object_lambda(Client, Name, Input, []).
put_access_point_configuration_for_object_lambda(Client, Name, Input0, Options0) ->
Method = put,
Path = ["/v20180820/accesspointforobjectlambda/", aws_util:encode_uri(Name), "/configuration"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Associates an access policy with the specified access point. Each access
%% point can have only one policy, so a request made to this API replaces any
%% existing policy associated with the specified access point.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following actions are related to `PutAccessPointPolicy':
%%
%% - GetAccessPointPolicy
%%
%%
- DeleteAccessPointPolicy
%%
%%
put_access_point_policy(Client, Name, Input) ->
put_access_point_policy(Client, Name, Input, []).
put_access_point_policy(Client, Name, Input0, Options0) ->
Method = put,
Path = ["/v20180820/accesspoint/", aws_util:encode_uri(Name), "/policy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Creates or replaces resource policy for an Object Lambda Access Point. For
%% an example policy, see Creating Object Lambda Access Points in the Amazon
%% S3 User Guide.
%%
%% The following actions are related to
%% `PutAccessPointPolicyForObjectLambda':
%%
%% - DeleteAccessPointPolicyForObjectLambda
%%
%%
- GetAccessPointPolicyForObjectLambda
%%
%%
put_access_point_policy_for_object_lambda(Client, Name, Input) ->
put_access_point_policy_for_object_lambda(Client, Name, Input, []).
put_access_point_policy_for_object_lambda(Client, Name, Input0, Options0) ->
Method = put,
Path = ["/v20180820/accesspointforobjectlambda/", aws_util:encode_uri(Name), "/policy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This action puts a lifecycle configuration to an Amazon S3 on
%% Outposts bucket.
%%
%% To put a lifecycle configuration to an S3 bucket, see
%% PutBucketLifecycleConfiguration in the Amazon S3 API Reference.
%%
%% Creates a new lifecycle configuration for the S3 on Outposts bucket or
%% replaces an existing lifecycle configuration. Outposts buckets only
%% support lifecycle configurations that delete/expire objects after a
%% certain period of time and abort incomplete multipart uploads.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following actions are related to
%% `PutBucketLifecycleConfiguration':
%%
%% - GetBucketLifecycleConfiguration
%%
%%
- DeleteBucketLifecycleConfiguration
%%
%%
put_bucket_lifecycle_configuration(Client, Bucket, Input) ->
put_bucket_lifecycle_configuration(Client, Bucket, Input, []).
put_bucket_lifecycle_configuration(Client, Bucket, Input0, Options0) ->
Method = put,
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/lifecycleconfiguration"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This action puts a bucket policy to an Amazon S3 on Outposts bucket.
%%
%% To put a policy on an S3 bucket, see PutBucketPolicy in the Amazon S3 API
%% Reference.
%%
%% Applies an Amazon S3 bucket policy to an Outposts bucket. For more
%% information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.
%%
%% If you are using an identity other than the root user of the Amazon Web
%% Services account that owns the Outposts bucket, the calling identity must
%% have the `PutBucketPolicy' permissions on the specified Outposts
%% bucket and belong to the bucket owner's account in order to use this
%% action.
%%
%% If you don't have `PutBucketPolicy' permissions, Amazon S3 returns
%% a `403 Access Denied' error. If you have the correct permissions, but
%% you're not using an identity that belongs to the bucket owner's
%% account, Amazon S3 returns a `405 Method Not Allowed' error.
%%
%% As a security precaution, the root user of the Amazon Web Services account
%% that owns a bucket can always use this action, even if the policy
%% explicitly denies the root user the ability to perform this action.
%%
%% For more information about bucket policies, see Using Bucket Policies and
%% User Policies.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following actions are related to `PutBucketPolicy':
%%
%% - GetBucketPolicy
%%
%%
- DeleteBucketPolicy
%%
%%
put_bucket_policy(Client, Bucket, Input) ->
put_bucket_policy(Client, Bucket, Input, []).
put_bucket_policy(Client, Bucket, Input0, Options0) ->
Method = put,
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/policy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>},
{<<"x-amz-confirm-remove-self-bucket-access">>, <<"ConfirmRemoveSelfBucketAccess">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This action creates an Amazon S3 on Outposts bucket's replication
%% configuration.
%%
%% To create an S3 bucket's replication configuration, see
%% PutBucketReplication in the Amazon S3 API Reference.
%%
%% Creates a replication configuration or replaces an existing one. For
%% information about S3 replication on Outposts configuration, see
%% Replicating objects for S3 on Outposts in the Amazon S3 User Guide.
%%
%% It can take a while to propagate `PUT' or `DELETE' requests for a
%% replication configuration to all S3 on Outposts systems. Therefore, the
%% replication configuration that's returned by a `GET' request soon
%% after a `PUT' or `DELETE' request might return a more recent
%% result than what's on the Outpost. If an Outpost is offline, the delay
%% in updating the replication configuration on that Outpost can be
%% significant.
%%
%% Specify the replication configuration in the request body. In the
%% replication configuration, you provide the following information:
%%
%% - The name of the destination bucket or buckets where you want S3
%% on Outposts to replicate objects
%%
%%
- The Identity and Access Management (IAM) role that S3 on
%% Outposts can assume to replicate objects on your behalf
%%
%%
- Other relevant information, such as replication rules
%%
%%
A replication configuration must include at least one rule and
%% can contain a maximum of 100. Each rule identifies a subset of objects to
%% replicate by filtering the objects in the source Outposts bucket. To
%% choose additional subsets of objects to replicate, add a rule for each
%% subset.
%%
%% To specify a subset of the objects in the source Outposts bucket to apply
%% a replication rule to, add the `Filter' element as a child of the
%% `Rule' element. You can filter objects based on an object key prefix,
%% one or more object tags, or both. When you add the `Filter' element in
%% the configuration, you must also add the following elements:
%% `DeleteMarkerReplication', `Status', and `Priority'.
%%
%% Using `PutBucketReplication' on Outposts requires that both the source
%% and destination buckets must have versioning enabled. For information
%% about enabling versioning on a bucket, see Managing S3 Versioning for your
%% S3 on Outposts bucket.
%%
%% For information about S3 on Outposts replication failure reasons, see
%% Replication failure reasons in the Amazon S3 User Guide.
%%
%% Handling Replication of Encrypted Objects
%%
%% Outposts buckets are encrypted at all times. All the objects in the source
%% Outposts bucket are encrypted and can be replicated. Also, all the
%% replicas in the destination Outposts bucket are encrypted with the same
%% encryption key as the objects in the source Outposts bucket.
%%
%% Permissions
%%
%% To create a `PutBucketReplication' request, you must have
%% `s3-outposts:PutReplicationConfiguration' permissions for the bucket.
%% The Outposts bucket owner has this permission by default and can grant it
%% to others. For more information about permissions, see Setting up IAM with
%% S3 on Outposts and Managing access to S3 on Outposts buckets.
%%
%% To perform this operation, the user or role must also have the
%% `iam:CreateRole' and `iam:PassRole' permissions. For more
%% information, see Granting a user permissions to pass a role to an Amazon
%% Web Services service.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following operations are related to `PutBucketReplication':
%%
%% - GetBucketReplication
%%
%%
- DeleteBucketReplication
%%
%%
put_bucket_replication(Client, Bucket, Input) ->
put_bucket_replication(Client, Bucket, Input, []).
put_bucket_replication(Client, Bucket, Input0, Options0) ->
Method = put,
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/replication"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This action puts tags on an Amazon S3 on Outposts bucket.
%%
%% To put tags on an S3 bucket, see PutBucketTagging in the Amazon S3 API
%% Reference.
%%
%% Sets the tags for an S3 on Outposts bucket. For more information, see
%% Using Amazon S3 on Outposts in the Amazon S3 User Guide.
%%
%% Use tags to organize your Amazon Web Services bill to reflect your own
%% cost structure. To do this, sign up to get your Amazon Web Services
%% account bill with tag key values included. Then, to see the cost of
%% combined resources, organize your billing information according to
%% resources with the same tag key values. For example, you can tag several
%% resources with a specific application name, and then organize your billing
%% information to see the total cost of that application across several
%% services. For more information, see Cost allocation and tagging.
%%
%% Within a bucket, if you add a tag that has the same key as an existing
%% tag, the new value overwrites the old value. For more information, see
%% Using cost allocation in Amazon S3 bucket tags.
%%
%% To use this action, you must have permissions to perform the
%% `s3-outposts:PutBucketTagging' action. The Outposts bucket owner has
%% this permission by default and can grant this permission to others. For
%% more information about permissions, see Permissions Related to Bucket
%% Subresource Operations and Managing access permissions to your Amazon S3
%% resources.
%%
%% `PutBucketTagging' has the following special errors:
%%
%% - Error code: `InvalidTagError'
%%
%%
- Description: The tag provided was not a valid tag. This error
%% can occur if the tag did not pass input validation. For information about
%% tag restrictions, see User-Defined Tag Restrictions and Amazon Web
%% Services-Generated Cost Allocation Tag Restrictions.
%%
%%
- Error code: `MalformedXMLError'
%%
%%
- Description: The XML provided does not match the schema.
%%
%%
- Error code: `OperationAbortedError '
%%
%%
- Description: A conflicting conditional action is currently in
%% progress against this resource. Try again.
%%
%%
- Error code: `InternalError'
%%
%%
- Description: The service was unable to apply the provided tag to
%% the bucket.
%%
%%
All Amazon S3 on Outposts REST API requests for
%% this action require an additional parameter of `x-amz-outpost-id' to
%% be passed with the request. In addition, you must use an S3 on Outposts
%% endpoint hostname prefix instead of `s3-control'. For an example of
%% the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
%% endpoint hostname prefix and the `x-amz-outpost-id' derived by using
%% the access point ARN, see the Examples section.
%%
%% The following actions are related to `PutBucketTagging':
%%
%% - GetBucketTagging
%%
%%
- DeleteBucketTagging
%%
%%
put_bucket_tagging(Client, Bucket, Input) ->
put_bucket_tagging(Client, Bucket, Input, []).
put_bucket_tagging(Client, Bucket, Input0, Options0) ->
Method = put,
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/tagging"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, true}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation sets the versioning state for S3 on Outposts buckets
%% only.
%%
%% To set the versioning state for an S3 bucket, see PutBucketVersioning in
%% the Amazon S3 API Reference.
%%
%% Sets the versioning state for an S3 on Outposts bucket. With S3
%% Versioning, you can save multiple distinct copies of your objects and
%% recover from unintended user actions and application failures.
%%
%% You can set the versioning state to one of the following:
%%
%% - Enabled - Enables versioning for the objects in the bucket. All
%% objects added to the bucket receive a unique version ID.
%%
%%
- Suspended - Suspends versioning for the objects in the bucket.
%% All objects added to the bucket receive the version ID `null'.
%%
%%
If you've never set versioning on your bucket, it has no
%% versioning state. In that case, a GetBucketVersioning request does not
%% return a versioning state value.
%%
%% When you enable S3 Versioning, for each object in your bucket, you have a
%% current version and zero or more noncurrent versions. You can configure
%% your bucket S3 Lifecycle rules to expire noncurrent versions after a
%% specified time period. For more information, see Creating and managing a
%% lifecycle configuration for your S3 on Outposts bucket in the Amazon S3
%% User Guide.
%%
%% If you have an object expiration lifecycle configuration in your
%% non-versioned bucket and you want to maintain the same permanent delete
%% behavior when you enable versioning, you must add a noncurrent expiration
%% policy. The noncurrent expiration lifecycle configuration will manage the
%% deletes of the noncurrent object versions in the version-enabled bucket.
%% For more information, see Versioning in the Amazon S3 User Guide.
%%
%% All Amazon S3 on Outposts REST API requests for this action require an
%% additional parameter of `x-amz-outpost-id' to be passed with the
%% request. In addition, you must use an S3 on Outposts endpoint hostname
%% prefix instead of `s3-control'. For an example of the request syntax
%% for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname
%% prefix and the `x-amz-outpost-id' derived by using the access point
%% ARN, see the Examples section.
%%
%% The following operations are related to `PutBucketVersioning' for S3
%% on Outposts.
%%
%% - GetBucketVersioning
%%
%%
- PutBucketLifecycleConfiguration
%%
%%
- GetBucketLifecycleConfiguration
%%
%%
put_bucket_versioning(Client, Bucket, Input) ->
put_bucket_versioning(Client, Bucket, Input, []).
put_bucket_versioning(Client, Bucket, Input0, Options0) ->
Method = put,
Path = ["/v20180820/bucket/", aws_util:encode_uri(Bucket), "/versioning"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>},
{<<"x-amz-mfa">>, <<"MFA">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Sets the supplied tag-set on an S3 Batch Operations job.
%%
%% A tag is a key-value pair. You can associate S3 Batch Operations tags with
%% any job by sending a PUT request against the tagging subresource that is
%% associated with the job. To modify the existing tag set, you can either
%% replace the existing tag set entirely, or make changes within the existing
%% tag set by retrieving the existing tag set using GetJobTagging, modify
%% that tag set, and use this operation to replace the tag set with the one
%% you modified. For more information, see Controlling access and labeling
%% jobs using tags in the Amazon S3 User Guide.
%%
%% If you send this request with an empty tag set, Amazon S3 deletes the
%% existing tag set on the Batch Operations job. If you use this method, you
%% are charged for a Tier 1 Request (PUT). For more information, see Amazon
%% S3 pricing.
%%
%% For deleting existing tags for your Batch Operations job, a
%% DeleteJobTagging request is preferred because it achieves the same result
%% without incurring charges.
%%
%% A few things to consider about using tags:
%%
%% Amazon S3 limits the maximum number of tags to 50 tags per job.
%%
%% You can associate up to 50 tags with a job as long as they have unique tag
%% keys.
%%
%% A tag key can be up to 128 Unicode characters in length, and tag values
%% can be up to 256 Unicode characters in length.
%%
%% The key and values are case sensitive.
%%
%% For tagging-related restrictions related to characters and encodings, see
%% User-Defined Tag Restrictions in the Billing and Cost Management User
%% Guide.
%%
%% - Permissions
- To use the `PutJobTagging' operation,
%% you must have permission to perform the `s3:PutJobTagging' action.
%%
%%
Related actions include:
%%
%% - CreateJob
%%
%%
- GetJobTagging
%%
%%
- DeleteJobTagging
%%
%%
put_job_tagging(Client, JobId, Input) ->
put_job_tagging(Client, JobId, Input, []).
put_job_tagging(Client, JobId, Input0, Options0) ->
Method = put,
Path = ["/v20180820/jobs/", aws_util:encode_uri(JobId), "/tagging"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Associates an access control policy with the specified Multi-Region Access
%% Point. Each Multi-Region Access Point can have only one policy, so a
%% request made to this action replaces any existing policy that is
%% associated with the specified Multi-Region Access Point.
%%
%% This action will always be routed to the US West (Oregon) Region. For more
%% information about the restrictions around managing Multi-Region Access
%% Points, see Managing Multi-Region Access Points in the Amazon S3 User
%% Guide.
%%
%% The following actions are related to
%% `PutMultiRegionAccessPointPolicy':
%%
%% - GetMultiRegionAccessPointPolicy
%%
%%
- GetMultiRegionAccessPointPolicyStatus
%%
%%
put_multi_region_access_point_policy(Client, Input) ->
put_multi_region_access_point_policy(Client, Input, []).
put_multi_region_access_point_policy(Client, Input0, Options0) ->
Method = post,
Path = ["/v20180820/async-requests/mrap/put-policy"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Creates or modifies the `PublicAccessBlock' configuration for an
%% Amazon Web Services account. For this operation, users must have the
%% `s3:PutAccountPublicAccessBlock' permission. For more information, see
%% Using Amazon S3 block public access.
%%
%% Related actions include:
%%
%% - GetPublicAccessBlock
%%
%%
- DeletePublicAccessBlock
%%
%%
put_public_access_block(Client, Input) ->
put_public_access_block(Client, Input, []).
put_public_access_block(Client, Input0, Options0) ->
Method = put,
Path = ["/v20180820/configuration/publicAccessBlock"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Puts an Amazon S3 Storage Lens configuration. For more information about
%% S3 Storage Lens, see Working with Amazon S3 Storage Lens in the Amazon S3
%% User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage
%% Lens metrics glossary in the Amazon S3 User Guide.
%%
%% To use this action, you must have permission to perform the
%% `s3:PutStorageLensConfiguration' action. For more information, see
%% Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User
%% Guide.
put_storage_lens_configuration(Client, ConfigId, Input) ->
put_storage_lens_configuration(Client, ConfigId, Input, []).
put_storage_lens_configuration(Client, ConfigId, Input0, Options0) ->
Method = put,
Path = ["/v20180820/storagelens/", aws_util:encode_uri(ConfigId), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Put or replace tags on an existing Amazon S3 Storage Lens configuration.
%% For more information about S3 Storage Lens, see Assessing your storage
%% activity and usage with Amazon S3 Storage Lens in the Amazon S3 User
%% Guide.
%%
%% To use this action, you must have permission to perform the
%% `s3:PutStorageLensConfigurationTagging' action. For more information,
%% see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3
%% User Guide.
put_storage_lens_configuration_tagging(Client, ConfigId, Input) ->
put_storage_lens_configuration_tagging(Client, ConfigId, Input, []).
put_storage_lens_configuration_tagging(Client, ConfigId, Input0, Options0) ->
Method = put,
Path = ["/v20180820/storagelens/", aws_util:encode_uri(ConfigId), "/tagging"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation is not supported by directory buckets.
%%
%% Submits an updated route configuration for a Multi-Region Access Point.
%% This API operation updates the routing status for the specified Regions
%% from active to passive, or from passive to active. A value of `0'
%% indicates a passive status, which means that traffic won't be routed
%% to the specified Region. A value of `100' indicates an active status,
%% which means that traffic will be routed to the specified Region. At least
%% one Region must be active at all times.
%%
%% When the routing configuration is changed, any in-progress operations
%% (uploads, copies, deletes, and so on) to formerly active Regions will
%% continue to run to their final completion state (success or failure). The
%% routing configurations of any Regions that aren’t specified remain
%% unchanged.
%%
%% Updated routing configurations might not be immediately applied. It can
%% take up to 2 minutes for your changes to take effect.
%%
%% To submit routing control changes and failover requests, use the Amazon S3
%% failover control infrastructure endpoints in these five Amazon Web
%% Services Regions:
%%
%% - `us-east-1'
%%
%%
- `us-west-2'
%%
%%
- `ap-southeast-2'
%%
%%
- `ap-northeast-1'
%%
%%
- `eu-west-1'
%%
%%
Your Amazon S3 bucket does not need to be in these five
%% Regions.
submit_multi_region_access_point_routes(Client, Mrap, Input) ->
submit_multi_region_access_point_routes(Client, Mrap, Input, []).
submit_multi_region_access_point_routes(Client, Mrap, Input0, Options0) ->
Method = patch,
Path = ["/v20180820/mrap/instances/", aws_util:encode_multi_segment_uri(Mrap), "/routes"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Creates a new Amazon Web Services resource tag or updates an existing
%% resource tag.
%%
%% Each tag is a label consisting of a user-defined key and value. Tags can
%% help you manage, identify, organize, search for, and filter resources. You
%% can add up to 50 Amazon Web Services resource tags for each S3 resource.
%%
%% This operation is only supported for S3 Storage Lens groups and for S3
%% Access Grants. The tagged resource can be an S3 Storage Lens group or S3
%% Access Grants instance, registered location, or grant.
%%
%% - Permissions
- You must have the `s3:TagResource'
%% permission to use this operation.
%%
%%
For more information about the required Storage Lens Groups
%% permissions, see Setting account permissions to use S3 Storage Lens
%% groups.
%%
%% For information about S3 Tagging errors, see List of Amazon S3 Tagging
%% error codes.
tag_resource(Client, ResourceArn, Input) ->
tag_resource(Client, ResourceArn, Input, []).
tag_resource(Client, ResourceArn, Input0, Options0) ->
Method = post,
Path = ["/v20180820/tags/", aws_util:encode_multi_segment_uri(ResourceArn), ""],
SuccessStatusCode = 204,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc This operation removes the specified Amazon Web Services resource
%% tags from an S3 resource.
%%
%% Each tag is a label consisting of a user-defined key and value. Tags can
%% help you manage, identify, organize, search for, and filter resources.
%%
%% This operation is only supported for S3 Storage Lens groups and for S3
%% Access Grants. The tagged resource can be an S3 Storage Lens group or S3
%% Access Grants instance, registered location, or grant.
%%
%% - Permissions
- You must have the `s3:UntagResource'
%% permission to use this operation.
%%
%%
For more information about the required Storage Lens Groups
%% permissions, see Setting account permissions to use S3 Storage Lens
%% groups.
%%
%% For information about S3 Tagging errors, see List of Amazon S3 Tagging
%% error codes.
untag_resource(Client, ResourceArn, Input) ->
untag_resource(Client, ResourceArn, Input, []).
untag_resource(Client, ResourceArn, Input0, Options0) ->
Method = delete,
Path = ["/v20180820/tags/", aws_util:encode_multi_segment_uri(ResourceArn), ""],
SuccessStatusCode = 204,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
QueryMapping = [
{<<"tagKeys">>, <<"TagKeys">>}
],
{Query_, Input} = aws_request:build_headers(QueryMapping, Input2),
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Updates the IAM role of a registered location in your S3 Access
%% Grants instance.
%%
%% - Permissions
- You must have the
%% `s3:UpdateAccessGrantsLocation' permission to use this operation.
%%
%%
- Additional Permissions
- You must also have the
%% following permission: `iam:PassRole'
%%
%%
update_access_grants_location(Client, AccessGrantsLocationId, Input) ->
update_access_grants_location(Client, AccessGrantsLocationId, Input, []).
update_access_grants_location(Client, AccessGrantsLocationId, Input0, Options0) ->
Method = put,
Path = ["/v20180820/accessgrantsinstance/location/", aws_util:encode_uri(AccessGrantsLocationId), ""],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Updates an existing S3 Batch Operations job's priority.
%%
%% For more information, see S3 Batch Operations in the Amazon S3 User Guide.
%%
%% - Permissions
- To use the `UpdateJobPriority'
%% operation, you must have permission to perform the
%% `s3:UpdateJobPriority' action.
%%
%%
Related actions include:
%%
%% - CreateJob
%%
%%
- ListJobs
%%
%%
- DescribeJob
%%
%%
- UpdateJobStatus
%%
%%
update_job_priority(Client, JobId, Input) ->
update_job_priority(Client, JobId, Input, []).
update_job_priority(Client, JobId, Input0, Options0) ->
Method = post,
Path = ["/v20180820/jobs/", aws_util:encode_uri(JobId), "/priority"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
QueryMapping = [
{<<"priority">>, <<"Priority">>}
],
{Query_, Input} = aws_request:build_headers(QueryMapping, Input2),
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Updates the status for the specified job.
%%
%% Use this operation to confirm that you want to run a job or to cancel an
%% existing job. For more information, see S3 Batch Operations in the Amazon
%% S3 User Guide.
%%
%% - Permissions
- To use the `UpdateJobStatus' operation,
%% you must have permission to perform the `s3:UpdateJobStatus' action.
%%
%%
Related actions include:
%%
%% - CreateJob
%%
%%
- ListJobs
%%
%%
- DescribeJob
%%
%%
- UpdateJobStatus
%%
%%
update_job_status(Client, JobId, Input) ->
update_job_status(Client, JobId, Input, []).
update_job_status(Client, JobId, Input0, Options0) ->
Method = post,
Path = ["/v20180820/jobs/", aws_util:encode_uri(JobId), "/status"],
SuccessStatusCode = undefined,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
QueryMapping = [
{<<"requestedJobStatus">>, <<"RequestedJobStatus">>},
{<<"statusUpdateReason">>, <<"StatusUpdateReason">>}
],
{Query_, Input} = aws_request:build_headers(QueryMapping, Input2),
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%% @doc Updates the existing Storage Lens group.
%%
%% To use this operation, you must have the permission to perform the
%% `s3:UpdateStorageLensGroup' action. For more information about the
%% required Storage Lens Groups permissions, see Setting account permissions
%% to use S3 Storage Lens groups.
%%
%% For information about Storage Lens groups errors, see List of Amazon S3
%% Storage Lens error codes.
update_storage_lens_group(Client, Name, Input) ->
update_storage_lens_group(Client, Name, Input, []).
update_storage_lens_group(Client, Name, Input0, Options0) ->
Method = put,
Path = ["/v20180820/storagelensgroup/", aws_util:encode_uri(Name), ""],
SuccessStatusCode = 204,
Options = [{send_body_as_binary, false},
{receive_body_as_binary, false},
{append_sha256_content_hash, false}
| Options0],
HeadersMapping = [
{<<"x-amz-account-id">>, <<"AccountId">>}
],
{Headers, Input1} = aws_request:build_headers(HeadersMapping, Input0),
CustomHeaders = [],
Input2 = Input1,
Query_ = [],
Input = Input2,
request(Client, Method, Path, Query_, CustomHeaders ++ Headers, Input, Options, SuccessStatusCode).
%%====================================================================
%% Internal functions
%%====================================================================
-spec request(aws_client:aws_client(), atom(), iolist(), list(),
list(), map() | undefined, list(), pos_integer() | undefined) ->
{ok, {integer(), list()}} |
{ok, Result, {integer(), list(), hackney:client()}} |
{error, Error, {integer(), list(), hackney:client()}} |
{error, term()} when
Result :: map(),
Error :: map().
request(Client, Method, Path, Query, Headers0, Input, Options, SuccessStatusCode) ->
RequestFun = fun() -> do_request(Client, Method, Path, Query, Headers0, Input, Options, SuccessStatusCode) end,
aws_request:request(RequestFun, Options).
do_request(Client, Method, Path, Query, Headers0, Input, Options, SuccessStatusCode) ->
Client1 = Client#{service => <<"s3">>},
AccountId = proplists:get_value(<<"x-amz-account-id">>, Headers0),
Host = build_host(AccountId, <<"s3-control">>, Client1),
URL0 = build_url(Host, Path, Client1),
URL = aws_request:add_query(URL0, Query),
AdditionalHeaders1 = [ {<<"Host">>, Host}
, {<<"Content-Type">>, <<"text/xml">>}
],
Payload =
case proplists:get_value(send_body_as_binary, Options) of
true ->
maps:get(<<"Body">>, Input, <<"">>);
false ->
encode_payload(Input)
end,
AdditionalHeaders = case proplists:get_value(append_sha256_content_hash, Options, false) of
true ->
add_checksum_hash_header(AdditionalHeaders1, Payload);
false ->
AdditionalHeaders1
end,
Headers1 = aws_request:add_headers(AdditionalHeaders, Headers0),
MethodBin = aws_request:method_to_binary(Method),
SignedHeaders = aws_request:sign_request(Client1, MethodBin, URL, Headers1, Payload),
Response = hackney:request(Method, URL, SignedHeaders, Payload, Options),
DecodeBody = not proplists:get_value(receive_body_as_binary, Options),
handle_response(Response, SuccessStatusCode, DecodeBody).
add_checksum_hash_header(Headers, Body) ->
[ {<<"X-Amz-CheckSum-SHA256">>, base64:encode(crypto:hash(sha256, Body))}
| Headers
].
handle_response({ok, StatusCode, ResponseHeaders}, SuccessStatusCode, _DecodeBody)
when StatusCode =:= 200;
StatusCode =:= 202;
StatusCode =:= 204;
StatusCode =:= 206;
StatusCode =:= SuccessStatusCode ->
{ok, {StatusCode, ResponseHeaders}};
handle_response({ok, StatusCode, ResponseHeaders}, _, _DecodeBody) ->
{error, {StatusCode, ResponseHeaders}};
handle_response({ok, StatusCode, ResponseHeaders, Client}, SuccessStatusCode, DecodeBody)
when StatusCode =:= 200;
StatusCode =:= 202;
StatusCode =:= 204;
StatusCode =:= 206;
StatusCode =:= SuccessStatusCode ->
case hackney:body(Client) of
{ok, <<>>} when StatusCode =:= 200;
StatusCode =:= SuccessStatusCode ->
{ok, #{}, {StatusCode, ResponseHeaders, Client}};
{ok, Body} ->
Result = case DecodeBody of
true ->
try
aws_util:decode_xml(Body)
catch
Error:Reason:Stack ->
erlang:raise(error, {body_decode_failed, Error, Reason, StatusCode, Body}, Stack)
end;
false -> #{<<"Body">> => Body}
end,
{ok, Result, {StatusCode, ResponseHeaders, Client}}
end;
handle_response({ok, StatusCode, _ResponseHeaders, _Client}, _, _DecodeBody)
when StatusCode =:= 503 ->
%% Retriable error if retries are enabled
{error, service_unavailable};
handle_response({ok, StatusCode, ResponseHeaders, Client}, _, _DecodeBody) ->
{ok, Body} = hackney:body(Client),
try
DecodedError = aws_util:decode_xml(Body),
{error, DecodedError, {StatusCode, ResponseHeaders, Client}}
catch
Error:Reason:Stack ->
erlang:raise(error, {body_decode_failed, Error, Reason, StatusCode, Body}, Stack)
end;
handle_response({error, Reason}, _, _DecodeBody) ->
{error, Reason}.
build_host(_AccountId, _EndpointPrefix, #{region := <<"local">>, endpoint := Endpoint}) ->
Endpoint;
build_host(_AccountId, _EndpointPrefix, #{region := <<"local">>}) ->
<<"localhost">>;
build_host(undefined, _EndpointPrefix, _Client) ->
error(missing_account_id);
build_host(AccountId, EndpointPrefix, #{region := Region, endpoint := Endpoint}) ->
aws_util:binary_join([AccountId, EndpointPrefix, Region, Endpoint],
<<".">>).
build_url(Host, Path0, Client) ->
Proto = aws_client:proto(Client),
Path = erlang:iolist_to_binary(Path0),
Port = aws_client:port(Client),
aws_util:binary_join([Proto, <<"://">>, Host, <<":">>, Port, Path], <<"">>).
-spec encode_payload(undefined | map()) -> binary().
encode_payload(undefined) ->
<<>>;
encode_payload(Input) ->
aws_util:encode_xml(Input).