Current section

Files

Jump to
aws_erlang src aws_secrets_manager.erl
Raw

src/aws_secrets_manager.erl

%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
%% See https://github.com/aws-beam/aws-codegen for more details.
%% @doc Amazon Web Services Secrets Manager
%%
%% Amazon Web Services Secrets Manager provides a service to enable you to
%% store, manage, and retrieve, secrets.
%%
%% This guide provides descriptions of the Secrets Manager API. For more
%% information about using this
%% service, see the Amazon Web Services Secrets Manager User Guide:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/introduction.html.
%%
%% API Version
%%
%% This version of the Secrets Manager API Reference documents the Secrets
%% Manager API version 2017-10-17.
%%
%% For a list of endpoints, see Amazon Web Services Secrets Manager
%% endpoints:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/asm_access.html#endpoints.
%%
%% Support and Feedback for Amazon Web Services Secrets Manager
%%
%% We welcome your feedback. Send your comments to
%% awssecretsmanager-feedback@amazon.com:
%% mailto:awssecretsmanager-feedback@amazon.com, or post your feedback and
%% questions in the Amazon Web Services Secrets Manager Discussion Forum:
%% http://forums.aws.amazon.com/forum.jspa?forumID=296. For more
%% information about the Amazon Web Services Discussion Forums, see Forums
%% Help: http://forums.aws.amazon.com/help.jspa.
%%
%% Logging API Requests
%%
%% Amazon Web Services Secrets Manager supports Amazon Web Services
%% CloudTrail, a service that records Amazon Web Services API calls for your
%% Amazon Web Services
%% account and delivers log files to an Amazon S3 bucket. By using
%% information that's collected
%% by Amazon Web Services CloudTrail, you can determine the requests
%% successfully made to Secrets Manager, who made the
%% request, when it was made, and so on. For more about Amazon Web Services
%% Secrets Manager and support for Amazon Web Services
%% CloudTrail, see Logging
%% Amazon Web Services Secrets Manager Events with Amazon Web Services
%% CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/monitoring.html#monitoring_cloudtrail
%% in the Amazon Web Services Secrets Manager User Guide.
%% To learn more about CloudTrail, including enabling it and find your log
%% files, see the Amazon Web Services CloudTrail User Guide:
%% https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html.
-module(aws_secrets_manager).
-export([batch_get_secret_value/2,
batch_get_secret_value/3,
cancel_rotate_secret/2,
cancel_rotate_secret/3,
create_secret/2,
create_secret/3,
delete_resource_policy/2,
delete_resource_policy/3,
delete_secret/2,
delete_secret/3,
describe_secret/2,
describe_secret/3,
get_random_password/2,
get_random_password/3,
get_resource_policy/2,
get_resource_policy/3,
get_secret_value/2,
get_secret_value/3,
list_secret_version_ids/2,
list_secret_version_ids/3,
list_secrets/2,
list_secrets/3,
put_resource_policy/2,
put_resource_policy/3,
put_secret_value/2,
put_secret_value/3,
remove_regions_from_replication/2,
remove_regions_from_replication/3,
replicate_secret_to_regions/2,
replicate_secret_to_regions/3,
restore_secret/2,
restore_secret/3,
rotate_secret/2,
rotate_secret/3,
stop_replication_to_replica/2,
stop_replication_to_replica/3,
tag_resource/2,
tag_resource/3,
untag_resource/2,
untag_resource/3,
update_secret/2,
update_secret/3,
update_secret_version_stage/2,
update_secret_version_stage/3,
validate_resource_policy/2,
validate_resource_policy/3]).
-include_lib("hackney/include/hackney_lib.hrl").
%% Example:
%% describe_secret_response() :: #{
%% <<"ARN">> => string(),
%% <<"CreatedDate">> => non_neg_integer(),
%% <<"DeletedDate">> => non_neg_integer(),
%% <<"Description">> => string(),
%% <<"KmsKeyId">> => string(),
%% <<"LastAccessedDate">> => non_neg_integer(),
%% <<"LastChangedDate">> => non_neg_integer(),
%% <<"LastRotatedDate">> => non_neg_integer(),
%% <<"Name">> => string(),
%% <<"NextRotationDate">> => non_neg_integer(),
%% <<"OwningService">> => string(),
%% <<"PrimaryRegion">> => string(),
%% <<"ReplicationStatus">> => list(replication_status_type()),
%% <<"RotationEnabled">> => boolean(),
%% <<"RotationLambdaARN">> => string(),
%% <<"RotationRules">> => rotation_rules_type(),
%% <<"Tags">> => list(tag()),
%% <<"VersionIdsToStages">> => map()
%% }
-type describe_secret_response() :: #{binary() => any()}.
%% Example:
%% validation_errors_entry() :: #{
%% <<"CheckName">> => string(),
%% <<"ErrorMessage">> => string()
%% }
-type validation_errors_entry() :: #{binary() => any()}.
%% Example:
%% tag_resource_request() :: #{
%% <<"SecretId">> := string(),
%% <<"Tags">> := list(tag())
%% }
-type tag_resource_request() :: #{binary() => any()}.
%% Example:
%% delete_resource_policy_response() :: #{
%% <<"ARN">> => string(),
%% <<"Name">> => string()
%% }
-type delete_resource_policy_response() :: #{binary() => any()}.
%% Example:
%% remove_regions_from_replication_response() :: #{
%% <<"ARN">> => string(),
%% <<"ReplicationStatus">> => list(replication_status_type())
%% }
-type remove_regions_from_replication_response() :: #{binary() => any()}.
%% Example:
%% update_secret_version_stage_request() :: #{
%% <<"MoveToVersionId">> => string(),
%% <<"RemoveFromVersionId">> => string(),
%% <<"SecretId">> := string(),
%% <<"VersionStage">> := string()
%% }
-type update_secret_version_stage_request() :: #{binary() => any()}.
%% Example:
%% delete_secret_request() :: #{
%% <<"ForceDeleteWithoutRecovery">> => boolean(),
%% <<"RecoveryWindowInDays">> => float(),
%% <<"SecretId">> := string()
%% }
-type delete_secret_request() :: #{binary() => any()}.
%% Example:
%% decryption_failure() :: #{
%% <<"Message">> => string()
%% }
-type decryption_failure() :: #{binary() => any()}.
%% Example:
%% cancel_rotate_secret_response() :: #{
%% <<"ARN">> => string(),
%% <<"Name">> => string(),
%% <<"VersionId">> => string()
%% }
-type cancel_rotate_secret_response() :: #{binary() => any()}.
%% Example:
%% encryption_failure() :: #{
%% <<"Message">> => string()
%% }
-type encryption_failure() :: #{binary() => any()}.
%% Example:
%% list_secrets_request() :: #{
%% <<"Filters">> => list(filter()),
%% <<"IncludePlannedDeletion">> => boolean(),
%% <<"MaxResults">> => integer(),
%% <<"NextToken">> => string(),
%% <<"SortOrder">> => list(any())
%% }
-type list_secrets_request() :: #{binary() => any()}.
%% Example:
%% get_resource_policy_response() :: #{
%% <<"ARN">> => string(),
%% <<"Name">> => string(),
%% <<"ResourcePolicy">> => string()
%% }
-type get_resource_policy_response() :: #{binary() => any()}.
%% Example:
%% update_secret_version_stage_response() :: #{
%% <<"ARN">> => string(),
%% <<"Name">> => string()
%% }
-type update_secret_version_stage_response() :: #{binary() => any()}.
%% Example:
%% list_secrets_response() :: #{
%% <<"NextToken">> => string(),
%% <<"SecretList">> => list(secret_list_entry())
%% }
-type list_secrets_response() :: #{binary() => any()}.
%% Example:
%% get_random_password_response() :: #{
%% <<"RandomPassword">> => string()
%% }
-type get_random_password_response() :: #{binary() => any()}.
%% Example:
%% untag_resource_request() :: #{
%% <<"SecretId">> := string(),
%% <<"TagKeys">> := list(string())
%% }
-type untag_resource_request() :: #{binary() => any()}.
%% Example:
%% validate_resource_policy_request() :: #{
%% <<"ResourcePolicy">> := string(),
%% <<"SecretId">> => string()
%% }
-type validate_resource_policy_request() :: #{binary() => any()}.
%% Example:
%% delete_secret_response() :: #{
%% <<"ARN">> => string(),
%% <<"DeletionDate">> => non_neg_integer(),
%% <<"Name">> => string()
%% }
-type delete_secret_response() :: #{binary() => any()}.
%% Example:
%% batch_get_secret_value_request() :: #{
%% <<"Filters">> => list(filter()),
%% <<"MaxResults">> => integer(),
%% <<"NextToken">> => string(),
%% <<"SecretIdList">> => list(string())
%% }
-type batch_get_secret_value_request() :: #{binary() => any()}.
%% Example:
%% validate_resource_policy_response() :: #{
%% <<"PolicyValidationPassed">> => boolean(),
%% <<"ValidationErrors">> => list(validation_errors_entry())
%% }
-type validate_resource_policy_response() :: #{binary() => any()}.
%% Example:
%% restore_secret_response() :: #{
%% <<"ARN">> => string(),
%% <<"Name">> => string()
%% }
-type restore_secret_response() :: #{binary() => any()}.
%% Example:
%% cancel_rotate_secret_request() :: #{
%% <<"SecretId">> := string()
%% }
-type cancel_rotate_secret_request() :: #{binary() => any()}.
%% Example:
%% resource_not_found_exception() :: #{
%% <<"Message">> => string()
%% }
-type resource_not_found_exception() :: #{binary() => any()}.
%% Example:
%% tag() :: #{
%% <<"Key">> => string(),
%% <<"Value">> => string()
%% }
-type tag() :: #{binary() => any()}.
%% Example:
%% invalid_request_exception() :: #{
%% <<"Message">> => string()
%% }
-type invalid_request_exception() :: #{binary() => any()}.
%% Example:
%% rotate_secret_request() :: #{
%% <<"ClientRequestToken">> => string(),
%% <<"RotateImmediately">> => boolean(),
%% <<"RotationLambdaARN">> => string(),
%% <<"RotationRules">> => rotation_rules_type(),
%% <<"SecretId">> := string()
%% }
-type rotate_secret_request() :: #{binary() => any()}.
%% Example:
%% put_secret_value_response() :: #{
%% <<"ARN">> => string(),
%% <<"Name">> => string(),
%% <<"VersionId">> => string(),
%% <<"VersionStages">> => list(string())
%% }
-type put_secret_value_response() :: #{binary() => any()}.
%% Example:
%% invalid_next_token_exception() :: #{
%% <<"Message">> => string()
%% }
-type invalid_next_token_exception() :: #{binary() => any()}.
%% Example:
%% remove_regions_from_replication_request() :: #{
%% <<"RemoveReplicaRegions">> := list(string()),
%% <<"SecretId">> := string()
%% }
-type remove_regions_from_replication_request() :: #{binary() => any()}.
%% Example:
%% stop_replication_to_replica_request() :: #{
%% <<"SecretId">> := string()
%% }
-type stop_replication_to_replica_request() :: #{binary() => any()}.
%% Example:
%% describe_secret_request() :: #{
%% <<"SecretId">> := string()
%% }
-type describe_secret_request() :: #{binary() => any()}.
%% Example:
%% list_secret_version_ids_response() :: #{
%% <<"ARN">> => string(),
%% <<"Name">> => string(),
%% <<"NextToken">> => string(),
%% <<"Versions">> => list(secret_versions_list_entry())
%% }
-type list_secret_version_ids_response() :: #{binary() => any()}.
%% Example:
%% batch_get_secret_value_response() :: #{
%% <<"Errors">> => list(api_error_type()),
%% <<"NextToken">> => string(),
%% <<"SecretValues">> => list(secret_value_entry())
%% }
-type batch_get_secret_value_response() :: #{binary() => any()}.
%% Example:
%% update_secret_response() :: #{
%% <<"ARN">> => string(),
%% <<"Name">> => string(),
%% <<"VersionId">> => string()
%% }
-type update_secret_response() :: #{binary() => any()}.
%% Example:
%% get_resource_policy_request() :: #{
%% <<"SecretId">> := string()
%% }
-type get_resource_policy_request() :: #{binary() => any()}.
%% Example:
%% update_secret_request() :: #{
%% <<"ClientRequestToken">> => string(),
%% <<"Description">> => string(),
%% <<"KmsKeyId">> => string(),
%% <<"SecretBinary">> => binary(),
%% <<"SecretId">> := string(),
%% <<"SecretString">> => string()
%% }
-type update_secret_request() :: #{binary() => any()}.
%% Example:
%% replicate_secret_to_regions_response() :: #{
%% <<"ARN">> => string(),
%% <<"ReplicationStatus">> => list(replication_status_type())
%% }
-type replicate_secret_to_regions_response() :: #{binary() => any()}.
%% Example:
%% filter() :: #{
%% <<"Key">> => list(any()),
%% <<"Values">> => list(string())
%% }
-type filter() :: #{binary() => any()}.
%% Example:
%% replication_status_type() :: #{
%% <<"KmsKeyId">> => string(),
%% <<"LastAccessedDate">> => non_neg_integer(),
%% <<"Region">> => string(),
%% <<"Status">> => list(any()),
%% <<"StatusMessage">> => string()
%% }
-type replication_status_type() :: #{binary() => any()}.
%% Example:
%% put_secret_value_request() :: #{
%% <<"ClientRequestToken">> => string(),
%% <<"RotationToken">> => string(),
%% <<"SecretBinary">> => binary(),
%% <<"SecretId">> := string(),
%% <<"SecretString">> => string(),
%% <<"VersionStages">> => list(string())
%% }
-type put_secret_value_request() :: #{binary() => any()}.
%% Example:
%% stop_replication_to_replica_response() :: #{
%% <<"ARN">> => string()
%% }
-type stop_replication_to_replica_response() :: #{binary() => any()}.
%% Example:
%% resource_exists_exception() :: #{
%% <<"Message">> => string()
%% }
-type resource_exists_exception() :: #{binary() => any()}.
%% Example:
%% put_resource_policy_request() :: #{
%% <<"BlockPublicPolicy">> => boolean(),
%% <<"ResourcePolicy">> := string(),
%% <<"SecretId">> := string()
%% }
-type put_resource_policy_request() :: #{binary() => any()}.
%% Example:
%% replica_region_type() :: #{
%% <<"KmsKeyId">> => string(),
%% <<"Region">> => string()
%% }
-type replica_region_type() :: #{binary() => any()}.
%% Example:
%% get_random_password_request() :: #{
%% <<"ExcludeCharacters">> => string(),
%% <<"ExcludeLowercase">> => boolean(),
%% <<"ExcludeNumbers">> => boolean(),
%% <<"ExcludePunctuation">> => boolean(),
%% <<"ExcludeUppercase">> => boolean(),
%% <<"IncludeSpace">> => boolean(),
%% <<"PasswordLength">> => float(),
%% <<"RequireEachIncludedType">> => boolean()
%% }
-type get_random_password_request() :: #{binary() => any()}.
%% Example:
%% invalid_parameter_exception() :: #{
%% <<"Message">> => string()
%% }
-type invalid_parameter_exception() :: #{binary() => any()}.
%% Example:
%% get_secret_value_request() :: #{
%% <<"SecretId">> := string(),
%% <<"VersionId">> => string(),
%% <<"VersionStage">> => string()
%% }
-type get_secret_value_request() :: #{binary() => any()}.
%% Example:
%% get_secret_value_response() :: #{
%% <<"ARN">> => string(),
%% <<"CreatedDate">> => non_neg_integer(),
%% <<"Name">> => string(),
%% <<"SecretBinary">> => binary(),
%% <<"SecretString">> => string(),
%% <<"VersionId">> => string(),
%% <<"VersionStages">> => list(string())
%% }
-type get_secret_value_response() :: #{binary() => any()}.
%% Example:
%% api_error_type() :: #{
%% <<"ErrorCode">> => string(),
%% <<"Message">> => string(),
%% <<"SecretId">> => string()
%% }
-type api_error_type() :: #{binary() => any()}.
%% Example:
%% internal_service_error() :: #{
%% <<"Message">> => string()
%% }
-type internal_service_error() :: #{binary() => any()}.
%% Example:
%% secret_value_entry() :: #{
%% <<"ARN">> => string(),
%% <<"CreatedDate">> => non_neg_integer(),
%% <<"Name">> => string(),
%% <<"SecretBinary">> => binary(),
%% <<"SecretString">> => string(),
%% <<"VersionId">> => string(),
%% <<"VersionStages">> => list(string())
%% }
-type secret_value_entry() :: #{binary() => any()}.
%% Example:
%% create_secret_response() :: #{
%% <<"ARN">> => string(),
%% <<"Name">> => string(),
%% <<"ReplicationStatus">> => list(replication_status_type()),
%% <<"VersionId">> => string()
%% }
-type create_secret_response() :: #{binary() => any()}.
%% Example:
%% malformed_policy_document_exception() :: #{
%% <<"Message">> => string()
%% }
-type malformed_policy_document_exception() :: #{binary() => any()}.
%% Example:
%% list_secret_version_ids_request() :: #{
%% <<"IncludeDeprecated">> => boolean(),
%% <<"MaxResults">> => integer(),
%% <<"NextToken">> => string(),
%% <<"SecretId">> := string()
%% }
-type list_secret_version_ids_request() :: #{binary() => any()}.
%% Example:
%% secret_list_entry() :: #{
%% <<"ARN">> => string(),
%% <<"CreatedDate">> => non_neg_integer(),
%% <<"DeletedDate">> => non_neg_integer(),
%% <<"Description">> => string(),
%% <<"KmsKeyId">> => string(),
%% <<"LastAccessedDate">> => non_neg_integer(),
%% <<"LastChangedDate">> => non_neg_integer(),
%% <<"LastRotatedDate">> => non_neg_integer(),
%% <<"Name">> => string(),
%% <<"NextRotationDate">> => non_neg_integer(),
%% <<"OwningService">> => string(),
%% <<"PrimaryRegion">> => string(),
%% <<"RotationEnabled">> => boolean(),
%% <<"RotationLambdaARN">> => string(),
%% <<"RotationRules">> => rotation_rules_type(),
%% <<"SecretVersionsToStages">> => map(),
%% <<"Tags">> => list(tag())
%% }
-type secret_list_entry() :: #{binary() => any()}.
%% Example:
%% secret_versions_list_entry() :: #{
%% <<"CreatedDate">> => non_neg_integer(),
%% <<"KmsKeyIds">> => list(string()),
%% <<"LastAccessedDate">> => non_neg_integer(),
%% <<"VersionId">> => string(),
%% <<"VersionStages">> => list(string())
%% }
-type secret_versions_list_entry() :: #{binary() => any()}.
%% Example:
%% put_resource_policy_response() :: #{
%% <<"ARN">> => string(),
%% <<"Name">> => string()
%% }
-type put_resource_policy_response() :: #{binary() => any()}.
%% Example:
%% limit_exceeded_exception() :: #{
%% <<"Message">> => string()
%% }
-type limit_exceeded_exception() :: #{binary() => any()}.
%% Example:
%% rotation_rules_type() :: #{
%% <<"AutomaticallyAfterDays">> => float(),
%% <<"Duration">> => string(),
%% <<"ScheduleExpression">> => string()
%% }
-type rotation_rules_type() :: #{binary() => any()}.
%% Example:
%% public_policy_exception() :: #{
%% <<"Message">> => string()
%% }
-type public_policy_exception() :: #{binary() => any()}.
%% Example:
%% delete_resource_policy_request() :: #{
%% <<"SecretId">> := string()
%% }
-type delete_resource_policy_request() :: #{binary() => any()}.
%% Example:
%% restore_secret_request() :: #{
%% <<"SecretId">> := string()
%% }
-type restore_secret_request() :: #{binary() => any()}.
%% Example:
%% precondition_not_met_exception() :: #{
%% <<"Message">> => string()
%% }
-type precondition_not_met_exception() :: #{binary() => any()}.
%% Example:
%% rotate_secret_response() :: #{
%% <<"ARN">> => string(),
%% <<"Name">> => string(),
%% <<"VersionId">> => string()
%% }
-type rotate_secret_response() :: #{binary() => any()}.
%% Example:
%% replicate_secret_to_regions_request() :: #{
%% <<"AddReplicaRegions">> := list(replica_region_type()),
%% <<"ForceOverwriteReplicaSecret">> => boolean(),
%% <<"SecretId">> := string()
%% }
-type replicate_secret_to_regions_request() :: #{binary() => any()}.
%% Example:
%% create_secret_request() :: #{
%% <<"AddReplicaRegions">> => list(replica_region_type()),
%% <<"ClientRequestToken">> => string(),
%% <<"Description">> => string(),
%% <<"ForceOverwriteReplicaSecret">> => boolean(),
%% <<"KmsKeyId">> => string(),
%% <<"Name">> := string(),
%% <<"SecretBinary">> => binary(),
%% <<"SecretString">> => string(),
%% <<"Tags">> => list(tag())
%% }
-type create_secret_request() :: #{binary() => any()}.
-type batch_get_secret_value_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_next_token_exception() |
invalid_request_exception() |
resource_not_found_exception() |
decryption_failure().
-type cancel_rotate_secret_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type create_secret_errors() ::
precondition_not_met_exception() |
limit_exceeded_exception() |
malformed_policy_document_exception() |
internal_service_error() |
invalid_parameter_exception() |
resource_exists_exception() |
invalid_request_exception() |
resource_not_found_exception() |
encryption_failure() |
decryption_failure().
-type delete_resource_policy_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type delete_secret_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type describe_secret_errors() ::
internal_service_error() |
invalid_parameter_exception() |
resource_not_found_exception().
-type get_random_password_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception().
-type get_resource_policy_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type get_secret_value_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception() |
decryption_failure().
-type list_secret_version_ids_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_next_token_exception() |
resource_not_found_exception().
-type list_secrets_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_next_token_exception() |
invalid_request_exception().
-type put_resource_policy_errors() ::
public_policy_exception() |
malformed_policy_document_exception() |
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type put_secret_value_errors() ::
limit_exceeded_exception() |
internal_service_error() |
invalid_parameter_exception() |
resource_exists_exception() |
invalid_request_exception() |
resource_not_found_exception() |
encryption_failure() |
decryption_failure().
-type remove_regions_from_replication_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type replicate_secret_to_regions_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type restore_secret_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type rotate_secret_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type stop_replication_to_replica_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type tag_resource_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type untag_resource_errors() ::
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type update_secret_errors() ::
precondition_not_met_exception() |
limit_exceeded_exception() |
malformed_policy_document_exception() |
internal_service_error() |
invalid_parameter_exception() |
resource_exists_exception() |
invalid_request_exception() |
resource_not_found_exception() |
encryption_failure() |
decryption_failure().
-type update_secret_version_stage_errors() ::
limit_exceeded_exception() |
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
-type validate_resource_policy_errors() ::
malformed_policy_document_exception() |
internal_service_error() |
invalid_parameter_exception() |
invalid_request_exception() |
resource_not_found_exception().
%%====================================================================
%% API
%%====================================================================
%% @doc Retrieves the contents of the encrypted fields `SecretString' or
%% `SecretBinary' for up to 20 secrets.
%%
%% To retrieve a single secret, call `GetSecretValue'.
%%
%% To choose which secrets to retrieve, you can specify a list of secrets by
%% name or ARN, or you can use filters. If Secrets Manager encounters errors
%% such as `AccessDeniedException' while attempting to retrieve any of
%% the secrets, you can see the errors in `Errors' in the response.
%%
%% Secrets Manager generates CloudTrail `GetSecretValue' log entries for
%% each secret you request when you call this action. Do not include
%% sensitive information in request parameters because it might be logged.
%% For more information, see Logging Secrets Manager events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:BatchGetSecretValue', and you must have
%% `secretsmanager:GetSecretValue' for each secret. If you use filters,
%% you must also have `secretsmanager:ListSecrets'. If the secrets are
%% encrypted using customer-managed keys instead of the Amazon Web Services
%% managed key
%% `aws/secretsmanager', then you also need `kms:Decrypt' permissions
%% for the keys.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec batch_get_secret_value(aws_client:aws_client(), batch_get_secret_value_request()) ->
{ok, batch_get_secret_value_response(), tuple()} |
{error, any()} |
{error, batch_get_secret_value_errors(), tuple()}.
batch_get_secret_value(Client, Input)
when is_map(Client), is_map(Input) ->
batch_get_secret_value(Client, Input, []).
-spec batch_get_secret_value(aws_client:aws_client(), batch_get_secret_value_request(), proplists:proplist()) ->
{ok, batch_get_secret_value_response(), tuple()} |
{error, any()} |
{error, batch_get_secret_value_errors(), tuple()}.
batch_get_secret_value(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"BatchGetSecretValue">>, Input, Options).
%% @doc Turns off automatic rotation, and if a rotation is currently in
%% progress, cancels the rotation.
%%
%% If you cancel a rotation in progress, it can leave the `VersionStage'
%% labels in an unexpected state. You might
%% need to remove the staging label `AWSPENDING' from the partially
%% created version.
%% You also need to determine whether to roll back to the previous version of
%% the secret
%% by moving the staging label `AWSCURRENT' to the version that has
%% `AWSPENDING'.
%% To determine
%% which version has a specific staging label, call
%% `ListSecretVersionIds'. Then use
%% `UpdateSecretVersionStage' to change staging labels.
%% For more information, see How rotation works:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html.
%%
%% To turn on automatic rotation again, call `RotateSecret'.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:CancelRotateSecret'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec cancel_rotate_secret(aws_client:aws_client(), cancel_rotate_secret_request()) ->
{ok, cancel_rotate_secret_response(), tuple()} |
{error, any()} |
{error, cancel_rotate_secret_errors(), tuple()}.
cancel_rotate_secret(Client, Input)
when is_map(Client), is_map(Input) ->
cancel_rotate_secret(Client, Input, []).
-spec cancel_rotate_secret(aws_client:aws_client(), cancel_rotate_secret_request(), proplists:proplist()) ->
{ok, cancel_rotate_secret_response(), tuple()} |
{error, any()} |
{error, cancel_rotate_secret_errors(), tuple()}.
cancel_rotate_secret(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CancelRotateSecret">>, Input, Options).
%% @doc Creates a new secret.
%%
%% A secret can be a password, a set of
%% credentials such as a user name and password, an OAuth token, or other
%% secret information
%% that you store in an encrypted form in Secrets Manager. The secret also
%% includes the connection information to access a database or other service,
%% which Secrets Manager
%% doesn't encrypt. A secret in Secrets Manager consists of both the
%% protected secret data and the
%% important information needed to manage the secret.
%%
%% For secrets that use managed rotation, you need to create the secret
%% through the managing service. For more information, see Secrets Manager
%% secrets managed by other Amazon Web Services services:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html.
%%
%% For information about creating a secret in the console, see Create a
%% secret:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html.
%%
%% To create a secret, you can provide the secret value to be encrypted in
%% either the
%% `SecretString' parameter or the `SecretBinary' parameter, but not
%% both.
%% If you include `SecretString' or `SecretBinary'
%% then Secrets Manager creates an initial secret version and automatically
%% attaches the staging
%% label `AWSCURRENT' to it.
%%
%% For database credentials you want to rotate, for Secrets Manager to be
%% able to rotate the secret,
%% you must make sure the JSON you store in the `SecretString' matches
%% the JSON structure of
%% a database secret:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html.
%%
%% If you don't specify an KMS encryption key, Secrets Manager uses the
%% Amazon Web Services managed key
%% `aws/secretsmanager'. If this key
%% doesn't already exist in your account, then Secrets Manager creates it
%% for you automatically. All
%% users and roles in the Amazon Web Services account automatically have
%% access to use `aws/secretsmanager'.
%% Creating `aws/secretsmanager' can result in a one-time significant
%% delay in returning the
%% result.
%%
%% If the secret is in a different Amazon Web Services account from the
%% credentials calling the API, then
%% you can't use `aws/secretsmanager' to encrypt the secret, and you
%% must create
%% and use a customer managed KMS key.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters except
%% `SecretBinary' or `SecretString' because it might be logged. For
%% more information, see Logging Secrets Manager events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:CreateSecret'. If you
%% include tags in the secret, you also need
%% `secretsmanager:TagResource'. To add replica Regions, you must also
%% have `secretsmanager:ReplicateSecretToRegions'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
%%
%% To encrypt the secret with a KMS key other than `aws/secretsmanager',
%% you need `kms:GenerateDataKey' and `kms:Decrypt' permission to the
%% key.
%%
%% When you enter commands in a command shell, there is a risk of the command
%% history being accessed or utilities having access to your command
%% parameters. This is a concern if the command includes the value of a
%% secret. Learn how to Mitigate the risks of using command-line tools to
%% store Secrets Manager secrets:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/security_cli-exposure-risks.html.
-spec create_secret(aws_client:aws_client(), create_secret_request()) ->
{ok, create_secret_response(), tuple()} |
{error, any()} |
{error, create_secret_errors(), tuple()}.
create_secret(Client, Input)
when is_map(Client), is_map(Input) ->
create_secret(Client, Input, []).
-spec create_secret(aws_client:aws_client(), create_secret_request(), proplists:proplist()) ->
{ok, create_secret_response(), tuple()} |
{error, any()} |
{error, create_secret_errors(), tuple()}.
create_secret(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateSecret">>, Input, Options).
%% @doc Deletes the resource-based permission policy attached to the secret.
%%
%% To attach a policy to
%% a secret, use `PutResourcePolicy'.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:DeleteResourcePolicy'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec delete_resource_policy(aws_client:aws_client(), delete_resource_policy_request()) ->
{ok, delete_resource_policy_response(), tuple()} |
{error, any()} |
{error, delete_resource_policy_errors(), tuple()}.
delete_resource_policy(Client, Input)
when is_map(Client), is_map(Input) ->
delete_resource_policy(Client, Input, []).
-spec delete_resource_policy(aws_client:aws_client(), delete_resource_policy_request(), proplists:proplist()) ->
{ok, delete_resource_policy_response(), tuple()} |
{error, any()} |
{error, delete_resource_policy_errors(), tuple()}.
delete_resource_policy(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteResourcePolicy">>, Input, Options).
%% @doc Deletes a secret and all of its versions.
%%
%% You can specify a recovery
%% window during which you can restore the secret. The minimum recovery
%% window is 7 days.
%% The default recovery window is 30 days. Secrets Manager attaches a
%% `DeletionDate' stamp to
%% the secret that specifies the end of the recovery window. At the end of
%% the recovery window,
%% Secrets Manager deletes the secret permanently.
%%
%% You can't delete a primary secret that is replicated to other Regions.
%% You must first delete the
%% replicas using `RemoveRegionsFromReplication', and then delete the
%% primary secret.
%% When you delete a replica, it is deleted immediately.
%%
%% You can't directly delete a version of a secret. Instead, you remove
%% all staging labels
%% from the version using `UpdateSecretVersionStage'. This marks the
%% version as deprecated,
%% and then Secrets Manager can automatically delete the version in the
%% background.
%%
%% To determine whether an application still uses a secret, you can create an
%% Amazon CloudWatch alarm
%% to alert you to any attempts to access a secret during the recovery
%% window. For more information,
%% see
%% Monitor secrets scheduled for deletion:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/monitoring_cloudwatch_deleted-secrets.html.
%%
%% Secrets Manager performs the permanent secret deletion at the end of the
%% waiting period as a
%% background task with low priority. There is no guarantee of a specific
%% time after the
%% recovery window for the permanent delete to occur.
%%
%% At any time before recovery window ends, you can use `RestoreSecret'
%% to
%% remove the `DeletionDate' and cancel the deletion of the secret.
%%
%% When a secret is scheduled for deletion, you cannot retrieve the secret
%% value.
%% You must first cancel the deletion with `RestoreSecret' and then you
%% can retrieve the secret.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:DeleteSecret'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec delete_secret(aws_client:aws_client(), delete_secret_request()) ->
{ok, delete_secret_response(), tuple()} |
{error, any()} |
{error, delete_secret_errors(), tuple()}.
delete_secret(Client, Input)
when is_map(Client), is_map(Input) ->
delete_secret(Client, Input, []).
-spec delete_secret(aws_client:aws_client(), delete_secret_request(), proplists:proplist()) ->
{ok, delete_secret_response(), tuple()} |
{error, any()} |
{error, delete_secret_errors(), tuple()}.
delete_secret(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteSecret">>, Input, Options).
%% @doc Retrieves the details of a secret.
%%
%% It does not include the encrypted secret value. Secrets Manager
%% only returns fields that have a value in the response.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:DescribeSecret'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec describe_secret(aws_client:aws_client(), describe_secret_request()) ->
{ok, describe_secret_response(), tuple()} |
{error, any()} |
{error, describe_secret_errors(), tuple()}.
describe_secret(Client, Input)
when is_map(Client), is_map(Input) ->
describe_secret(Client, Input, []).
-spec describe_secret(aws_client:aws_client(), describe_secret_request(), proplists:proplist()) ->
{ok, describe_secret_response(), tuple()} |
{error, any()} |
{error, describe_secret_errors(), tuple()}.
describe_secret(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeSecret">>, Input, Options).
%% @doc Generates a random password.
%%
%% We recommend that you specify the
%% maximum length and include every character type that the system you are
%% generating a password
%% for can support. By default, Secrets Manager uses uppercase and lowercase
%% letters, numbers, and the following characters in passwords:
%% `!\&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?@[\\]^_`{|}~'
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action.
%%
%% Required permissions:
%% `secretsmanager:GetRandomPassword'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec get_random_password(aws_client:aws_client(), get_random_password_request()) ->
{ok, get_random_password_response(), tuple()} |
{error, any()} |
{error, get_random_password_errors(), tuple()}.
get_random_password(Client, Input)
when is_map(Client), is_map(Input) ->
get_random_password(Client, Input, []).
-spec get_random_password(aws_client:aws_client(), get_random_password_request(), proplists:proplist()) ->
{ok, get_random_password_response(), tuple()} |
{error, any()} |
{error, get_random_password_errors(), tuple()}.
get_random_password(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetRandomPassword">>, Input, Options).
%% @doc Retrieves the JSON text of the resource-based policy document
%% attached to the
%% secret.
%%
%% For more information about permissions policies attached to a secret, see
%% Permissions
%% policies attached to a secret:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:GetResourcePolicy'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec get_resource_policy(aws_client:aws_client(), get_resource_policy_request()) ->
{ok, get_resource_policy_response(), tuple()} |
{error, any()} |
{error, get_resource_policy_errors(), tuple()}.
get_resource_policy(Client, Input)
when is_map(Client), is_map(Input) ->
get_resource_policy(Client, Input, []).
-spec get_resource_policy(aws_client:aws_client(), get_resource_policy_request(), proplists:proplist()) ->
{ok, get_resource_policy_response(), tuple()} |
{error, any()} |
{error, get_resource_policy_errors(), tuple()}.
get_resource_policy(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetResourcePolicy">>, Input, Options).
%% @doc Retrieves the contents of the encrypted fields `SecretString' or
%% `SecretBinary' from the specified version of a secret, whichever
%% contains
%% content.
%%
%% To retrieve the values for a group of secrets, call
%% `BatchGetSecretValue'.
%%
%% We recommend that you cache your secret values by using client-side
%% caching.
%% Caching secrets improves speed and reduces your costs. For more
%% information, see Cache secrets for
%% your applications:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html.
%%
%% To retrieve the previous version of a secret, use `VersionStage' and
%% specify
%% AWSPREVIOUS. To revert to the previous version of a secret, call
%% UpdateSecretVersionStage:
%% https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/update-secret-version-stage.html.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:GetSecretValue'.
%% If the secret is encrypted using a customer-managed key instead of the
%% Amazon Web Services managed key
%% `aws/secretsmanager', then you also need `kms:Decrypt' permissions
%% for that key.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec get_secret_value(aws_client:aws_client(), get_secret_value_request()) ->
{ok, get_secret_value_response(), tuple()} |
{error, any()} |
{error, get_secret_value_errors(), tuple()}.
get_secret_value(Client, Input)
when is_map(Client), is_map(Input) ->
get_secret_value(Client, Input, []).
-spec get_secret_value(aws_client:aws_client(), get_secret_value_request(), proplists:proplist()) ->
{ok, get_secret_value_response(), tuple()} |
{error, any()} |
{error, get_secret_value_errors(), tuple()}.
get_secret_value(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetSecretValue">>, Input, Options).
%% @doc Lists the versions of a secret.
%%
%% Secrets Manager uses staging labels to indicate the different versions
%% of a secret. For more information, see
%% Secrets Manager concepts: Versions:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html#term_version.
%%
%% To list the secrets in the account, use `ListSecrets'.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:ListSecretVersionIds'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec list_secret_version_ids(aws_client:aws_client(), list_secret_version_ids_request()) ->
{ok, list_secret_version_ids_response(), tuple()} |
{error, any()} |
{error, list_secret_version_ids_errors(), tuple()}.
list_secret_version_ids(Client, Input)
when is_map(Client), is_map(Input) ->
list_secret_version_ids(Client, Input, []).
-spec list_secret_version_ids(aws_client:aws_client(), list_secret_version_ids_request(), proplists:proplist()) ->
{ok, list_secret_version_ids_response(), tuple()} |
{error, any()} |
{error, list_secret_version_ids_errors(), tuple()}.
list_secret_version_ids(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListSecretVersionIds">>, Input, Options).
%% @doc Lists the secrets that are stored by Secrets Manager in the Amazon
%% Web Services account, not including secrets
%% that are marked for deletion.
%%
%% To see secrets marked for deletion, use the Secrets Manager console.
%%
%% All Secrets Manager operations are eventually consistent. ListSecrets
%% might not reflect changes from the last five minutes. You can get more
%% recent information for a specific secret by calling `DescribeSecret'.
%%
%% To list the versions of a secret, use `ListSecretVersionIds'.
%%
%% To retrieve the values for the secrets, call `BatchGetSecretValue' or
%% `GetSecretValue'.
%%
%% For information about finding secrets in the console, see Find secrets in
%% Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_search-secret.html.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:ListSecrets'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec list_secrets(aws_client:aws_client(), list_secrets_request()) ->
{ok, list_secrets_response(), tuple()} |
{error, any()} |
{error, list_secrets_errors(), tuple()}.
list_secrets(Client, Input)
when is_map(Client), is_map(Input) ->
list_secrets(Client, Input, []).
-spec list_secrets(aws_client:aws_client(), list_secrets_request(), proplists:proplist()) ->
{ok, list_secrets_response(), tuple()} |
{error, any()} |
{error, list_secrets_errors(), tuple()}.
list_secrets(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListSecrets">>, Input, Options).
%% @doc Attaches a resource-based permission policy to a secret.
%%
%% A resource-based policy is
%% optional. For more information, see Authentication and access control for
%% Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html
%%
%% For information about attaching a policy in the console, see Attach a
%% permissions policy to a secret:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-based-policies.html.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:PutResourcePolicy'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec put_resource_policy(aws_client:aws_client(), put_resource_policy_request()) ->
{ok, put_resource_policy_response(), tuple()} |
{error, any()} |
{error, put_resource_policy_errors(), tuple()}.
put_resource_policy(Client, Input)
when is_map(Client), is_map(Input) ->
put_resource_policy(Client, Input, []).
-spec put_resource_policy(aws_client:aws_client(), put_resource_policy_request(), proplists:proplist()) ->
{ok, put_resource_policy_response(), tuple()} |
{error, any()} |
{error, put_resource_policy_errors(), tuple()}.
put_resource_policy(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PutResourcePolicy">>, Input, Options).
%% @doc Creates a new version with a new encrypted secret value and attaches
%% it to the secret.
%%
%% The
%% version can contain a new `SecretString' value or a new
%% `SecretBinary' value.
%%
%% We recommend you avoid calling `PutSecretValue' at a sustained rate of
%% more than
%% once every 10 minutes. When you update the secret value, Secrets Manager
%% creates a new version
%% of the secret. Secrets Manager removes outdated versions when there are
%% more than 100, but it does not
%% remove versions created less than 24 hours ago. If you call
%% `PutSecretValue' more
%% than once every 10 minutes, you create more versions than Secrets Manager
%% removes, and you will reach
%% the quota for secret versions.
%%
%% You can specify the staging labels to attach to the new version in
%% `VersionStages'.
%% If you don't include `VersionStages', then Secrets Manager
%% automatically
%% moves the staging label `AWSCURRENT' to this version. If this
%% operation creates
%% the first version for the secret, then Secrets Manager
%% automatically attaches the staging label `AWSCURRENT' to it.
%% If this operation moves the staging label `AWSCURRENT' from another
%% version to this
%% version, then Secrets Manager also automatically moves the staging label
%% `AWSPREVIOUS' to
%% the version that `AWSCURRENT' was removed from.
%%
%% This operation is idempotent. If you call this operation with a
%% `ClientRequestToken'
%% that matches an existing version's VersionId, and you specify the
%% same secret data, the operation succeeds but does nothing. However, if the
%% secret data is
%% different, then the operation fails because you can't modify an
%% existing version; you can
%% only create new ones.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters except
%% `SecretBinary', `SecretString', or `RotationToken' because it
%% might be logged. For more information, see Logging Secrets Manager events
%% with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:PutSecretValue'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
%%
%% When you enter commands in a command shell, there is a risk of the command
%% history being accessed or utilities having access to your command
%% parameters. This is a concern if the command includes the value of a
%% secret. Learn how to Mitigate the risks of using command-line tools to
%% store Secrets Manager secrets:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/security_cli-exposure-risks.html.
-spec put_secret_value(aws_client:aws_client(), put_secret_value_request()) ->
{ok, put_secret_value_response(), tuple()} |
{error, any()} |
{error, put_secret_value_errors(), tuple()}.
put_secret_value(Client, Input)
when is_map(Client), is_map(Input) ->
put_secret_value(Client, Input, []).
-spec put_secret_value(aws_client:aws_client(), put_secret_value_request(), proplists:proplist()) ->
{ok, put_secret_value_response(), tuple()} |
{error, any()} |
{error, put_secret_value_errors(), tuple()}.
put_secret_value(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PutSecretValue">>, Input, Options).
%% @doc For a secret that is replicated to other Regions, deletes the secret
%% replicas from the Regions you specify.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:RemoveRegionsFromReplication'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec remove_regions_from_replication(aws_client:aws_client(), remove_regions_from_replication_request()) ->
{ok, remove_regions_from_replication_response(), tuple()} |
{error, any()} |
{error, remove_regions_from_replication_errors(), tuple()}.
remove_regions_from_replication(Client, Input)
when is_map(Client), is_map(Input) ->
remove_regions_from_replication(Client, Input, []).
-spec remove_regions_from_replication(aws_client:aws_client(), remove_regions_from_replication_request(), proplists:proplist()) ->
{ok, remove_regions_from_replication_response(), tuple()} |
{error, any()} |
{error, remove_regions_from_replication_errors(), tuple()}.
remove_regions_from_replication(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RemoveRegionsFromReplication">>, Input, Options).
%% @doc Replicates the secret to a new Regions.
%%
%% See Multi-Region secrets:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/create-manage-multi-region-secrets.html.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:ReplicateSecretToRegions'.
%% If the primary secret is encrypted with a KMS key other than
%% `aws/secretsmanager', you also need `kms:Decrypt' permission to
%% the key. To encrypt the replicated secret with a KMS key other than
%% `aws/secretsmanager', you need `kms:GenerateDataKey' and
%% `kms:Encrypt' to the key. For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec replicate_secret_to_regions(aws_client:aws_client(), replicate_secret_to_regions_request()) ->
{ok, replicate_secret_to_regions_response(), tuple()} |
{error, any()} |
{error, replicate_secret_to_regions_errors(), tuple()}.
replicate_secret_to_regions(Client, Input)
when is_map(Client), is_map(Input) ->
replicate_secret_to_regions(Client, Input, []).
-spec replicate_secret_to_regions(aws_client:aws_client(), replicate_secret_to_regions_request(), proplists:proplist()) ->
{ok, replicate_secret_to_regions_response(), tuple()} |
{error, any()} |
{error, replicate_secret_to_regions_errors(), tuple()}.
replicate_secret_to_regions(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ReplicateSecretToRegions">>, Input, Options).
%% @doc Cancels the scheduled deletion of a secret by removing the
%% `DeletedDate' time
%% stamp.
%%
%% You can access a secret again after it has been restored.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:RestoreSecret'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec restore_secret(aws_client:aws_client(), restore_secret_request()) ->
{ok, restore_secret_response(), tuple()} |
{error, any()} |
{error, restore_secret_errors(), tuple()}.
restore_secret(Client, Input)
when is_map(Client), is_map(Input) ->
restore_secret(Client, Input, []).
-spec restore_secret(aws_client:aws_client(), restore_secret_request(), proplists:proplist()) ->
{ok, restore_secret_response(), tuple()} |
{error, any()} |
{error, restore_secret_errors(), tuple()}.
restore_secret(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RestoreSecret">>, Input, Options).
%% @doc Configures and starts the asynchronous process of rotating the
%% secret.
%%
%% For information about rotation,
%% see Rotate secrets:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html
%% in the Secrets Manager User Guide. If you include the configuration
%% parameters, the operation sets the values for the secret and then
%% immediately starts a rotation. If you don't include the configuration
%% parameters, the operation starts a rotation with the values already stored
%% in the secret.
%%
%% When rotation is successful, the `AWSPENDING' staging label might be
%% attached
%% to the same version as the `AWSCURRENT' version, or it might not be
%% attached to any
%% version. If the `AWSPENDING' staging label is present but not attached
%% to the same
%% version as `AWSCURRENT', then any later invocation of
%% `RotateSecret'
%% assumes that a previous rotation request is still in progress and returns
%% an error. When rotation is unsuccessful, the `AWSPENDING' staging
%% label might be attached to an empty secret version. For more information,
%% see Troubleshoot rotation:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot_rotation.html
%% in the Secrets Manager User Guide.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:RotateSecret'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
%% You also need `lambda:InvokeFunction' permissions on the rotation
%% function.
%% For more information, see
%% Permissions for rotation:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html.
-spec rotate_secret(aws_client:aws_client(), rotate_secret_request()) ->
{ok, rotate_secret_response(), tuple()} |
{error, any()} |
{error, rotate_secret_errors(), tuple()}.
rotate_secret(Client, Input)
when is_map(Client), is_map(Input) ->
rotate_secret(Client, Input, []).
-spec rotate_secret(aws_client:aws_client(), rotate_secret_request(), proplists:proplist()) ->
{ok, rotate_secret_response(), tuple()} |
{error, any()} |
{error, rotate_secret_errors(), tuple()}.
rotate_secret(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RotateSecret">>, Input, Options).
%% @doc Removes the link between the replica secret and the primary secret
%% and promotes the replica to a primary secret in the replica Region.
%%
%% You must call this operation from the Region in which you want to promote
%% the replica to a primary secret.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:StopReplicationToReplica'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec stop_replication_to_replica(aws_client:aws_client(), stop_replication_to_replica_request()) ->
{ok, stop_replication_to_replica_response(), tuple()} |
{error, any()} |
{error, stop_replication_to_replica_errors(), tuple()}.
stop_replication_to_replica(Client, Input)
when is_map(Client), is_map(Input) ->
stop_replication_to_replica(Client, Input, []).
-spec stop_replication_to_replica(aws_client:aws_client(), stop_replication_to_replica_request(), proplists:proplist()) ->
{ok, stop_replication_to_replica_response(), tuple()} |
{error, any()} |
{error, stop_replication_to_replica_errors(), tuple()}.
stop_replication_to_replica(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"StopReplicationToReplica">>, Input, Options).
%% @doc Attaches tags to a secret.
%%
%% Tags consist of a key name and a value. Tags are part of the
%% secret's metadata. They are not associated with specific versions of
%% the secret. This operation appends tags to the existing list of tags.
%%
%% For tag quotas and naming restrictions, see Service quotas for Tagging:
%% https://docs.aws.amazon.com/general/latest/gr/arg.html#taged-reference-quotas
%% in the Amazon Web Services General
%% Reference guide.
%%
%% If you use tags as part of your security strategy, then adding or removing
%% a tag can
%% change permissions. If successfully completing this operation would result
%% in you losing
%% your permissions for this secret, then the operation is blocked and
%% returns an Access Denied
%% error.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:TagResource'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec tag_resource(aws_client:aws_client(), tag_resource_request()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, tag_resource_errors(), tuple()}.
tag_resource(Client, Input)
when is_map(Client), is_map(Input) ->
tag_resource(Client, Input, []).
-spec tag_resource(aws_client:aws_client(), tag_resource_request(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, tag_resource_errors(), tuple()}.
tag_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"TagResource">>, Input, Options).
%% @doc Removes specific tags from a secret.
%%
%% This operation is idempotent. If a requested tag is not attached to the
%% secret, no error
%% is returned and the secret metadata is unchanged.
%%
%% If you use tags as part of your security strategy, then removing a tag can
%% change
%% permissions. If successfully completing this operation would result in you
%% losing your
%% permissions for this secret, then the operation is blocked and returns an
%% Access Denied
%% error.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:UntagResource'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec untag_resource(aws_client:aws_client(), untag_resource_request()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, untag_resource_errors(), tuple()}.
untag_resource(Client, Input)
when is_map(Client), is_map(Input) ->
untag_resource(Client, Input, []).
-spec untag_resource(aws_client:aws_client(), untag_resource_request(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, untag_resource_errors(), tuple()}.
untag_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UntagResource">>, Input, Options).
%% @doc Modifies the details of a secret, including metadata and the secret
%% value.
%%
%% To change the secret value, you can also use `PutSecretValue'.
%%
%% To change the rotation configuration of a secret, use `RotateSecret'
%% instead.
%%
%% To change a secret so that it is managed by another service, you need to
%% recreate the secret in that service. See Secrets Manager secrets managed
%% by other Amazon Web Services services:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html.
%%
%% We recommend you avoid calling `UpdateSecret' at a sustained rate of
%% more than
%% once every 10 minutes. When you call `UpdateSecret' to update the
%% secret value, Secrets Manager creates a new version
%% of the secret. Secrets Manager removes outdated versions when there are
%% more than 100, but it does not
%% remove versions created less than 24 hours ago. If you update the secret
%% value more
%% than once every 10 minutes, you create more versions than Secrets Manager
%% removes, and you will reach
%% the quota for secret versions.
%%
%% If you include `SecretString' or `SecretBinary' to create a new
%% secret version, Secrets Manager automatically moves the staging label
%% `AWSCURRENT' to the new
%% version. Then it attaches the label `AWSPREVIOUS'
%% to the version that `AWSCURRENT' was removed from.
%%
%% If you call this operation with a `ClientRequestToken' that matches an
%% existing version's
%% `VersionId', the operation results in an error. You can't modify
%% an existing
%% version, you can only create a new version. To remove a version, remove
%% all staging labels from it. See
%% `UpdateSecretVersionStage'.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters except
%% `SecretBinary' or `SecretString' because it might be logged. For
%% more information, see Logging Secrets Manager events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:UpdateSecret'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
%% If you use a customer managed key, you must also have
%% `kms:GenerateDataKey', `kms:Encrypt', and
%% `kms:Decrypt' permissions on the key. If you change the KMS key and
%% you don't have `kms:Encrypt' permission to the new key, Secrets
%% Manager does not re-encrypt existing secret versions with the new key. For
%% more information, see
%% Secret encryption and decryption:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html.
%%
%% When you enter commands in a command shell, there is a risk of the command
%% history being accessed or utilities having access to your command
%% parameters. This is a concern if the command includes the value of a
%% secret. Learn how to Mitigate the risks of using command-line tools to
%% store Secrets Manager secrets:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/security_cli-exposure-risks.html.
-spec update_secret(aws_client:aws_client(), update_secret_request()) ->
{ok, update_secret_response(), tuple()} |
{error, any()} |
{error, update_secret_errors(), tuple()}.
update_secret(Client, Input)
when is_map(Client), is_map(Input) ->
update_secret(Client, Input, []).
-spec update_secret(aws_client:aws_client(), update_secret_request(), proplists:proplist()) ->
{ok, update_secret_response(), tuple()} |
{error, any()} |
{error, update_secret_errors(), tuple()}.
update_secret(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateSecret">>, Input, Options).
%% @doc Modifies the staging labels attached to a version of a secret.
%%
%% Secrets Manager uses staging labels to
%% track a version as it progresses through the secret rotation process. Each
%% staging label can be
%% attached to only one version at a time. To add a staging label to a
%% version when it is already
%% attached to another version, Secrets Manager first removes it from the
%% other version first and
%% then attaches it to this one. For more information about versions and
%% staging labels, see Concepts: Version:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html#term_version.
%%
%% The staging labels that you specify in the `VersionStage' parameter
%% are added
%% to the existing list of staging labels for the version.
%%
%% You can move the `AWSCURRENT' staging label to this version by
%% including it in this
%% call.
%%
%% Whenever you move `AWSCURRENT', Secrets Manager automatically moves
%% the label `AWSPREVIOUS'
%% to the version that `AWSCURRENT' was removed from.
%%
%% If this action results in the last label being removed from a version,
%% then the version is
%% considered to be 'deprecated' and can be deleted by Secrets
%% Manager.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:UpdateSecretVersionStage'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec update_secret_version_stage(aws_client:aws_client(), update_secret_version_stage_request()) ->
{ok, update_secret_version_stage_response(), tuple()} |
{error, any()} |
{error, update_secret_version_stage_errors(), tuple()}.
update_secret_version_stage(Client, Input)
when is_map(Client), is_map(Input) ->
update_secret_version_stage(Client, Input, []).
-spec update_secret_version_stage(aws_client:aws_client(), update_secret_version_stage_request(), proplists:proplist()) ->
{ok, update_secret_version_stage_response(), tuple()} |
{error, any()} |
{error, update_secret_version_stage_errors(), tuple()}.
update_secret_version_stage(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateSecretVersionStage">>, Input, Options).
%% @doc Validates that a resource policy does not grant a wide range of
%% principals access to
%% your secret.
%%
%% A resource-based policy is optional for secrets.
%%
%% The API performs three checks when validating the policy:
%%
%% Sends a call to Zelkova:
%% https://aws.amazon.com/blogs/security/protect-sensitive-data-in-the-cloud-with-automated-reasoning-zelkova/,
%% an automated reasoning engine, to ensure your resource policy does not
%% allow broad access to your secret, for example policies that use a
%% wildcard for the principal.
%%
%% Checks for correct syntax in a policy.
%%
%% Verifies the policy does not lock out a caller.
%%
%% Secrets Manager generates a CloudTrail log entry when you call this
%% action. Do not include sensitive information in request parameters because
%% it might be logged. For more information, see Logging Secrets Manager
%% events with CloudTrail:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html.
%%
%% Required permissions:
%% `secretsmanager:ValidateResourcePolicy' and
%% `secretsmanager:PutResourcePolicy'.
%% For more information, see
%% IAM policy actions for Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions
%% and Authentication
%% and access control in Secrets Manager:
%% https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html.
-spec validate_resource_policy(aws_client:aws_client(), validate_resource_policy_request()) ->
{ok, validate_resource_policy_response(), tuple()} |
{error, any()} |
{error, validate_resource_policy_errors(), tuple()}.
validate_resource_policy(Client, Input)
when is_map(Client), is_map(Input) ->
validate_resource_policy(Client, Input, []).
-spec validate_resource_policy(aws_client:aws_client(), validate_resource_policy_request(), proplists:proplist()) ->
{ok, validate_resource_policy_response(), tuple()} |
{error, any()} |
{error, validate_resource_policy_errors(), tuple()}.
validate_resource_policy(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ValidateResourcePolicy">>, Input, Options).
%%====================================================================
%% Internal functions
%%====================================================================
-spec request(aws_client:aws_client(), binary(), map(), list()) ->
{ok, Result, {integer(), list(), hackney:client()}} |
{error, Error, {integer(), list(), hackney:client()}} |
{error, term()} when
Result :: map() | undefined,
Error :: map().
request(Client, Action, Input, Options) ->
RequestFun = fun() -> do_request(Client, Action, Input, Options) end,
aws_request:request(RequestFun, Options).
do_request(Client, Action, Input0, Options) ->
Client1 = Client#{service => <<"secretsmanager">>},
Host = build_host(<<"secretsmanager">>, Client1),
URL = build_url(Host, Client1),
Headers = [
{<<"Host">>, Host},
{<<"Content-Type">>, <<"application/x-amz-json-1.1">>},
{<<"X-Amz-Target">>, <<"secretsmanager.", Action/binary>>}
],
Input = Input0,
Payload = jsx:encode(Input),
SignedHeaders = aws_request:sign_request(Client1, <<"POST">>, URL, Headers, Payload),
Response = hackney:request(post, URL, SignedHeaders, Payload, Options),
handle_response(Response).
handle_response({ok, 200, ResponseHeaders, Client}) ->
case hackney:body(Client) of
{ok, <<>>} ->
{ok, undefined, {200, ResponseHeaders, Client}};
{ok, Body} ->
Result = jsx:decode(Body),
{ok, Result, {200, ResponseHeaders, Client}}
end;
handle_response({ok, StatusCode, ResponseHeaders, Client}) ->
{ok, Body} = hackney:body(Client),
Error = jsx:decode(Body),
{error, Error, {StatusCode, ResponseHeaders, Client}};
handle_response({error, Reason}) ->
{error, Reason}.
build_host(_EndpointPrefix, #{region := <<"local">>, endpoint := Endpoint}) ->
Endpoint;
build_host(_EndpointPrefix, #{region := <<"local">>}) ->
<<"localhost">>;
build_host(EndpointPrefix, #{region := Region, endpoint := Endpoint}) ->
aws_util:binary_join([EndpointPrefix, Region, Endpoint], <<".">>).
build_url(Host, Client) ->
Proto = aws_client:proto(Client),
Port = aws_client:port(Client),
aws_util:binary_join([Proto, <<"://">>, Host, <<":">>, Port, <<"/">>], <<"">>).